protected void closeAction() throws IOException { connectionHandler.closeAsync(); connectionHandler.addCloseHandler((closed, exception) -> closeComplete()); for (Auth auth : authMap) { auth.dispose(); } final ConnectionPeerIdentityContext peerIdentityContext = this.peerIdentityContext; if (peerIdentityContext != null) peerIdentityContext.connectionClosed(); }
ConnectionPeerIdentityContext(final ConnectionImpl connection, final Collection<String> offeredMechanisms, final String peerSaslServer, final String saslProtocol) { this.connection = connection; this.offeredMechanisms = offeredMechanisms == null ? Collections.emptySet() : offeredMechanisms; connectionIdentity = constructIdentity(conf -> new ConnectionPeerIdentity(conf, connection.getPrincipal(), 0, connection)); connectionIdentityFuture = new FinishedIoFuture<>(connectionIdentity); anonymousIdentity = constructIdentity(conf -> new ConnectionPeerIdentity(conf, AnonymousPrincipal.getInstance(), 1, connection)); anonymousIdentityFuture = new FinishedIoFuture<>(anonymousIdentity); this.factoryOperator = d -> new ServerNameSaslClientFactory(new ProtocolSaslClientFactory(d, saslProtocol), peerSaslServer); }
public ConnectionPeerIdentity getConnectionAnonymousIdentity() { return getPeerIdentityContext().getAnonymousIdentity(); }
mechanisms.remove(saslClient.getMechanismName()); triedMechs.put(saslClient.getMechanismName(), log.authenticationExceptionIo(e)); safeDispose(saslClient); continue; safeDispose(saslClient); futureResult.setException(log.authenticationExceptionClosed()); futureAuths.remove(configuration, futureResult.getIoFuture()); safeDispose(saslClient); futureResult.setException(log.authenticationExceptionIo(e)); futureAuths.remove(configuration, futureResult.getIoFuture()); mechanisms.remove(saslClient.getMechanismName()); triedMechs.put(saslClient.getMechanismName(), log.authenticationExceptionIo(e)); safeDispose(saslClient); break; connectionHandler.sendAuthResponse(id, response); if (! connectionHandler.isOpen()) { safeDispose(saslClient); futureResult.setException(log.authenticationExceptionClosed()); futureAuths.remove(configuration, futureResult.getIoFuture()); safeDispose(saslClient); futureResult.setException(log.authenticationExceptionIo(e)); futureAuths.remove(configuration, futureResult.getIoFuture()); mechanisms.remove(saslClient.getMechanismName());
public void receiveAuthDeleteAck(final int id) { if (id == 0 || id == 1) { // ignore return; } connection.getPeerIdentityContext().receiveDeleteAck(id); } }
ConnectionImpl(final EndpointImpl endpoint, final ConnectionHandlerFactory connectionHandlerFactory, final ConnectionProviderContext connectionProviderContext, final URI peerUri, final SaslAuthenticationFactory authenticationFactory, final AuthenticationConfiguration authenticationConfiguration, final String saslProtocol) { super(endpoint.getExecutor(), true); this.endpoint = endpoint; this.peerUri = peerUri; this.protocol = connectionProviderContext.getProtocol(); this.authenticationConfiguration = authenticationConfiguration; this.saslProtocol = saslProtocol; this.connectionHandler = connectionHandlerFactory.createInstance(endpoint.new LocalConnectionContext(connectionProviderContext, this)); this.authenticationFactory = authenticationFactory; this.peerIdentityContext = new ConnectionPeerIdentityContext(this, connectionHandler.getOfferedMechanisms(), getConnectionHandler().getPeerSaslServerName(), saslProtocol); }
public ConnectionPeerIdentity getConnectionPeerIdentity() throws SecurityException { final SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPermission(RemotingPermission.GET_CONNECTION_PEER_IDENTITY); } return getPeerIdentityContext().getConnectionIdentity(); }
public void receiveAuthChallenge(final int id, final byte[] challenge) { if (id == 0 || id == 1) { // ignore return; } connection.getPeerIdentityContext().receiveChallenge(id, challenge); }
public int getPeerIdentityId() { return getPeerIdentityContext().getCurrentIdentity().getIndex(); }
futureResult.setResult(authenticate(configuration)); } catch (AuthenticationException e) { futureResult.setException(e);
doAuthenticate(configuration, futureResult); } finally { threadRef.set(null);
mechanisms.remove(saslClient.getMechanismName()); triedMechs.put(saslClient.getMechanismName(), log.authenticationExceptionIo(e)); safeDispose(saslClient); continue; safeDispose(saslClient); futureResult.setException(log.authenticationExceptionClosed()); futureAuths.remove(configuration, futureResult.getIoFuture()); safeDispose(saslClient); futureResult.setException(log.authenticationExceptionIo(e)); futureAuths.remove(configuration, futureResult.getIoFuture()); mechanisms.remove(saslClient.getMechanismName()); triedMechs.put(saslClient.getMechanismName(), log.authenticationExceptionIo(e)); safeDispose(saslClient); break; connectionHandler.sendAuthResponse(id, response); if (! connectionHandler.isOpen()) { safeDispose(saslClient); futureResult.setException(log.authenticationExceptionClosed()); futureAuths.remove(configuration, futureResult.getIoFuture()); safeDispose(saslClient); futureResult.setException(log.authenticationExceptionIo(e)); futureAuths.remove(configuration, futureResult.getIoFuture()); mechanisms.remove(saslClient.getMechanismName());
public void receiveAuthDeleteAck(final int id) { if (id == 0 || id == 1) { // ignore return; } connection.getPeerIdentityContext().receiveDeleteAck(id); } }
ConnectionImpl(final EndpointImpl endpoint, final ConnectionHandlerFactory connectionHandlerFactory, final ConnectionProviderContext connectionProviderContext, final URI peerUri, final SaslAuthenticationFactory authenticationFactory, final AuthenticationConfiguration authenticationConfiguration, final String saslProtocol) { super(endpoint.getExecutor(), true); this.endpoint = endpoint; this.peerUri = peerUri; this.protocol = connectionProviderContext.getProtocol(); this.authenticationConfiguration = authenticationConfiguration; this.saslProtocol = saslProtocol; this.connectionHandler = connectionHandlerFactory.createInstance(endpoint.new LocalConnectionContext(connectionProviderContext, this)); this.authenticationFactory = authenticationFactory; this.peerIdentityContext = new ConnectionPeerIdentityContext(this, connectionHandler.getOfferedMechanisms(), getConnectionHandler().getPeerSaslServerName(), saslProtocol); }
public ConnectionPeerIdentity getConnectionPeerIdentity() throws SecurityException { final SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPermission(RemotingPermission.GET_CONNECTION_PEER_IDENTITY); } return getPeerIdentityContext().getConnectionIdentity(); }
public void receiveAuthChallenge(final int id, final byte[] challenge) { if (id == 0 || id == 1) { // ignore return; } connection.getPeerIdentityContext().receiveChallenge(id, challenge); }
public int getPeerIdentityId() { return getPeerIdentityContext().getCurrentIdentity().getIndex(); }
futureResult.setResult(authenticate(configuration)); } catch (AuthenticationException e) { futureResult.setException(e);
doAuthenticate(configuration, futureResult); } finally { threadRef.set(null);
ConnectionPeerIdentityContext(final ConnectionImpl connection, final Collection<String> offeredMechanisms, final String peerSaslServer, final String saslProtocol) { this.connection = connection; this.offeredMechanisms = offeredMechanisms == null ? Collections.emptySet() : offeredMechanisms; connectionIdentity = constructIdentity(conf -> new ConnectionPeerIdentity(conf, connection.getPrincipal(), 0, connection)); connectionIdentityFuture = new FinishedIoFuture<>(connectionIdentity); anonymousIdentity = constructIdentity(conf -> new ConnectionPeerIdentity(conf, AnonymousPrincipal.getInstance(), 1, connection)); anonymousIdentityFuture = new FinishedIoFuture<>(anonymousIdentity); this.factoryOperator = d -> new ServerNameSaslClientFactory(new ProtocolSaslClientFactory(d, saslProtocol), peerSaslServer); }