private boolean hasTransportOfType(Collection<Transport> transports, boolean secure) { boolean hasTransport = false; if(transports != null) { for (Transport transport : transports) { if (secure == transport.isSecure()) { hasTransport = true; break; } } } return hasTransport; }
private Registry createRmiRegistry(int jmxPortRegistryServer, boolean useCustomRmiRegistry) throws RemoteException { final RMIServerSocketFactory ssf = getRmiServerSocketFactory(useCustomRmiRegistry, new Action<Integer>() { @Override public void performAction(final Integer port) { _allocatedRmiPort = port; } }); Registry rmiRegistry = LocateRegistry.createRegistry(jmxPortRegistryServer, null, ssf); getEventLogger().message(ManagementConsoleMessages.LISTENING("RMI Registry", Transport.TCP.name(), _allocatedRmiPort)); return rmiRegistry; }
public static Transport valueOfObject(Object transportObject) { Transport transport; if (transportObject instanceof Transport) { transport = (Transport) transportObject; } else { try { transport = Transport.valueOf(String.valueOf(transportObject)); } catch (Exception e) { throw new IllegalArgumentException("Can't convert '" + transportObject + "' to one of the supported transports: " + EnumSet.allOf(Transport.class), e); } } return transport; } }
@Override public ProtocolEngine newProtocolEngine(Broker<?> broker, ServerNetworkConnection network, AmqpPort<?> port, Transport transport, long id, final AggregateTicker aggregateTicker) { final AuthenticationProvider<?> authenticationProvider = port.getAuthenticationProvider(); Set<String> supportedMechanisms = new HashSet<>(authenticationProvider.getMechanisms()); supportedMechanisms.removeAll(authenticationProvider.getDisabledMechanisms()); if(!transport.isSecure()) { supportedMechanisms.removeAll(authenticationProvider.getSecureOnlyMechanisms()); } if(supportedMechanisms.contains(AnonymousAuthenticationManager.MECHANISM_NAME) || (supportedMechanisms.contains(ExternalAuthenticationManagerImpl.MECHANISM_NAME) && network.getPeerPrincipal() != null)) { final AMQPConnection_1_0Impl amqpConnection_1_0 = new AMQPConnection_1_0Impl(broker, network, port, transport, id, aggregateTicker); amqpConnection_1_0.create(); return amqpConnection_1_0; } else { LOGGER.info( "Attempt to connect using AMQP 1.0 without using SASL authentication on a port which does not support ANONYMOUS or EXTERNAL by " + network.getRemoteAddress()); return null; } }
private void logOperationalListenMessages(final HttpPort<?> port, final int localPort) { Set<Transport> transports = port.getTransports(); for (Transport transport: transports) { getBroker().getEventLogger().message(ManagementConsoleMessages.LISTENING(Protocol.HTTP.name(), transport.name(), localPort)); } }
AMQPConnection_1_0Impl(final Broker<?> broker, final ServerNetworkConnection network, AmqpPort<?> port, Transport transport, long id, final AggregateTicker aggregateTicker) { super(broker, network, port, transport, Protocol.AMQP_1_0, id, aggregateTicker); _subjectCreator = port.getSubjectCreator(transport.isSecure(), network.getSelectedHost()); List<Symbol> offeredCapabilities = new ArrayList<>(); offeredCapabilities.add(ANONYMOUS_RELAY); offeredCapabilities.add(SHARED_SUBSCRIPTIONS); offeredCapabilities.add(SoleConnectionConnectionProperties.SOLE_CONNECTION_FOR_CONTAINER); setOfferedCapabilities(offeredCapabilities); setRemoteAddress(network.getRemoteAddress()); _incomingIdleTimeout = 1000L * port.getHeartbeatDelay(); _frameWriter = new FrameWriter(getDescribedTypeRegistry(), getSender()); }
for (Transport transport: connectorTransports) getEventLogger().message(ManagementConsoleMessages.LISTENING("JMX RMIConnectorServer", transport.name(), _allocatedConnectorPort));
private SubjectCreator getSubjectCreator() { return getPort().getSubjectCreator(getTransport().isSecure(), getNetwork().getSelectedHost()); }
@Override public Object run() { SocketAddress localAddress = _network.getLocalAddress(); final String localAddressStr; if (localAddress instanceof InetSocketAddress) { InetSocketAddress inetAddress = (InetSocketAddress) localAddress; localAddressStr = inetAddress.getAddress().getHostAddress() + ":" + inetAddress.getPort(); } else { localAddressStr = localAddress.toString(); } getEventLogger().message(ConnectionMessages.OPEN(getPort().getName(), localAddressStr, getProtocol().getProtocolVersion(), getClientId(), getClientVersion(), getClientProduct(), getTransport().isSecure(), getClientId() != null, getClientVersion() != null, getClientProduct() != null)); return null; } });
for(String mechanismName : getPort().getAuthenticationProvider().getAvailableMechanisms(getTransport().isSecure()))
@Override public void receiveSaslInit(final SaslInit saslInit) { assertState(ConnectionState.AWAIT_SASL_INIT); if(saslInit.getHostname() != null && !"".equals(saslInit.getHostname().trim())) { _localHostname = saslInit.getHostname(); } else if(getNetwork().getSelectedHost() != null) { _localHostname = getNetwork().getSelectedHost(); } String mechanism = saslInit.getMechanism().toString(); final Binary initialResponse = saslInit.getInitialResponse(); byte[] response = initialResponse == null ? new byte[0] : initialResponse.getArray(); List<String> availableMechanisms = _subjectCreator.getAuthenticationProvider().getAvailableMechanisms(getTransport().isSecure()); if (!availableMechanisms.contains(mechanism)) { handleSaslError(); } else { _saslNegotiator = _subjectCreator.createSaslNegotiator(mechanism, this); processSaslResponse(response); } }
public AMQPConnection_0_10Impl(final Broker<?> broker, ServerNetworkConnection network, final AmqpPort<?> port, final Transport transport, final long id, final AggregateTicker aggregateTicker) { super(broker, network, port, transport, Protocol.AMQP_0_10, id, aggregateTicker); _connection = new ServerConnection(id, broker, port, transport, this); ServerConnectionDelegate connDelegate = new ServerConnectionDelegate(port, transport.isSecure(), network.getSelectedHost()); _connection.setConnectionDelegate(connDelegate); _connection.setRemoteAddress(network.getRemoteAddress()); _inputHandler = new ServerInputHandler(new ServerAssembler(_connection)); _connection.addFrameSizeObserver(_inputHandler); AccessController.doPrivileged((PrivilegedAction<Object>) () -> { _connection.setNetworkConnection(getNetwork()); _disassembler = new ServerDisassembler(wrapSender(getNetwork().getSender()), Constant.MIN_MAX_FRAME_SIZE); _connection.setSender(_disassembler); _connection.addFrameSizeObserver(_disassembler); return null; }, getAccessControllerContext()); }