Java Code Examples for org.apache.qpid.proton.engine.Sasl#client()
The following examples show how to use
org.apache.qpid.proton.engine.Sasl#client() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Driver.java From qpid-proton-j with Apache License 2.0 | 5 votes |
private static Transport makeTransport(Connection conn) { Transport transport = Transport.Factory.create(); Sasl sasl = transport.sasl(); sasl.setMechanisms("ANONYMOUS"); sasl.client(); transport.bind(conn); return transport; }
Example 2
Source File: IOHandler.java From qpid-proton-j with Apache License 2.0 | 5 votes |
private void handleOpen(Reactor reactor, Event event) { Connection connection = event.getConnection(); if (connection.getRemoteState() != EndpointState.UNINITIALIZED) { return; } // Outgoing Reactor connections set the virtual host automatically using the // following rules: String vhost = connection.getHostname(); if (vhost == null) { // setHostname never called, use the host from the connection's // socket address as the default virtual host: String conAddr = reactor.getConnectionAddress(connection); if (conAddr != null) { Address addr = new Address(conAddr); connection.setHostname(addr.getHost()); } } else if (vhost.isEmpty()) { // setHostname called explictly with a null string. This allows // the application to completely avoid sending a virtual host // name connection.setHostname(null); } else { // setHostname set by application - use it. } Transport transport = Proton.transport(); int maxFrameSizeOption = reactor.getOptions().getMaxFrameSize(); if (maxFrameSizeOption != 0) { transport.setMaxFrameSize(maxFrameSizeOption); } if (reactor.getOptions().isEnableSaslByDefault()) { Sasl sasl = transport.sasl(); sasl.client(); sasl.setMechanisms("ANONYMOUS"); } transport.bind(connection); }
Example 3
Source File: SaslTest.java From qpid-proton-j with Apache License 2.0 | 5 votes |
/** 5.3.2 SASL Negotiation. ...challenge/response step can occur zero or more times*/ @Test public void testOptionalChallengeResponseStepOmitted() throws Exception { getClient().transport = Proton.transport(); getServer().transport = Proton.transport(); Sasl clientSasl = getClient().transport.sasl(); clientSasl.client(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); Sasl serverSasl = getServer().transport.sasl(); serverSasl.server(); serverSasl.setMechanisms(TESTMECH1); assertEquals("Server should not yet know the remote's chosen mechanism.", 0, serverSasl.getRemoteMechanisms().length); pumpClientToServer(); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); clientSasl.setMechanisms(TESTMECH1); pumpClientToServer(); serverSasl.done(SaslOutcome.PN_SASL_OK); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_OK, clientSasl.getOutcome()); }
Example 4
Source File: SaslTest.java From qpid-proton-j with Apache License 2.0 | 5 votes |
/** * 5.3.3.6 Connection authentication failed due to an unspecified problem with the supplied credentials. */ @Test public void testAuthenticationFails() throws Exception { getClient().transport = Proton.transport(); getServer().transport = Proton.transport(); Sasl clientSasl = getClient().transport.sasl(); clientSasl.client(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); Sasl serverSasl = getServer().transport.sasl(); serverSasl.server(); serverSasl.setMechanisms(TESTMECH1); pumpClientToServer(); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); clientSasl.setMechanisms(TESTMECH1); pumpClientToServer(); serverSasl.done(SaslOutcome.PN_SASL_AUTH); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_AUTH, clientSasl.getOutcome()); }
Example 5
Source File: SaslTest.java From qpid-proton-j with Apache License 2.0 | 4 votes |
/** 5.3.2 SASL Negotiation. */ @Test public void testSaslNegotiation() throws Exception { getClient().transport = Proton.transport(); getServer().transport = Proton.transport(); Sasl clientSasl = getClient().transport.sasl(); clientSasl.client(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); Sasl serverSasl = getServer().transport.sasl(); serverSasl.server(); serverSasl.setMechanisms(TESTMECH1, TESTMECH2); assertEquals("Server should not yet know the remote's chosen mechanism.", 0, serverSasl.getRemoteMechanisms().length); pumpClientToServer(); pumpServerToClient(); assertArrayEquals("Client should now know the server's mechanisms.", new String[]{TESTMECH1, TESTMECH2}, clientSasl.getRemoteMechanisms()); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); clientSasl.setMechanisms(TESTMECH1); pumpClientToServer(); assertArrayEquals("Server should now know the client's chosen mechanism.", new String[]{TESTMECH1}, serverSasl.getRemoteMechanisms()); serverSasl.send(CHALLENGE_BYTES, 0, CHALLENGE_BYTES.length); pumpServerToClient(); byte[] clientReceivedChallengeBytes = new byte[clientSasl.pending()]; clientSasl.recv(clientReceivedChallengeBytes, 0, clientReceivedChallengeBytes.length); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); assertArrayEquals("Client should now know the server's challenge", CHALLENGE_BYTES, clientReceivedChallengeBytes); clientSasl.send(RESPONSE_BYTES, 0, RESPONSE_BYTES.length); pumpClientToServer(); byte[] serverReceivedResponseBytes = new byte[serverSasl.pending()]; serverSasl.recv(serverReceivedResponseBytes, 0, serverReceivedResponseBytes.length); assertArrayEquals("Server should now know the client's response", RESPONSE_BYTES, serverReceivedResponseBytes); serverSasl.done(SaslOutcome.PN_SASL_OK); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_OK, clientSasl.getOutcome()); }
Example 6
Source File: SaslTest.java From qpid-proton-j with Apache License 2.0 | 4 votes |
/** * 5.3.3.5 The additional-data field carries additional data on successful authentication outcome as specified * by the SASL specification [RFC4422]. */ @Test public void testOutcomeAdditionalData() throws Exception { getClient().transport = Proton.transport(); getServer().transport = Proton.transport(); Sasl clientSasl = getClient().transport.sasl(); clientSasl.client(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); Sasl serverSasl = getServer().transport.sasl(); serverSasl.server(); serverSasl.setMechanisms(TESTMECH1); pumpClientToServer(); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); clientSasl.setMechanisms(TESTMECH1); pumpClientToServer(); serverSasl.send(CHALLENGE_BYTES, 0, CHALLENGE_BYTES.length); pumpServerToClient(); byte[] clientReceivedChallengeBytes = new byte[clientSasl.pending()]; clientSasl.recv(clientReceivedChallengeBytes, 0, clientReceivedChallengeBytes.length); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); clientSasl.send(RESPONSE_BYTES, 0, RESPONSE_BYTES.length); pumpClientToServer(); byte[] serverReceivedResponseBytes = new byte[serverSasl.pending()]; serverSasl.recv(serverReceivedResponseBytes, 0, serverReceivedResponseBytes.length); serverSasl.send(ADDITIONAL_DATA_BYTES, 0, ADDITIONAL_DATA_BYTES.length); serverSasl.done(SaslOutcome.PN_SASL_OK); pumpServerToClient(); byte[] clientReceivedAdditionalDataBytes = new byte[clientSasl.pending()]; clientSasl.recv(clientReceivedAdditionalDataBytes, 0, clientReceivedAdditionalDataBytes.length); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_OK, clientSasl.getOutcome()); assertArrayEquals("Client should now know the serrver's additional-data", ADDITIONAL_DATA_BYTES, clientReceivedAdditionalDataBytes); }
Example 7
Source File: SaslTest.java From qpid-proton-j with Apache License 2.0 | 4 votes |
@Test public void testSaslNegotiationWithConfiguredLargerFrameSize() throws Exception { final byte[] largeInitialResponseBytesOrig = fillBytes("initialResponse", 1431); final byte[] largeChallengeBytesOrig = fillBytes("challenge", 1375); final byte[] largeResponseBytesOrig = fillBytes("response", 1282); final byte[] largeAdditionalBytesOrig = fillBytes("additionalData", 1529); getClient().transport = Proton.transport(); getServer().transport = Proton.transport(); // Configure transports to allow for larger initial frame sizes getClient().transport.setInitialRemoteMaxFrameSize(2048); getServer().transport.setInitialRemoteMaxFrameSize(2048); Sasl clientSasl = getClient().transport.sasl(); clientSasl.client(); Sasl serverSasl = getServer().transport.sasl(); serverSasl.server(); // Negotiate the mech serverSasl.setMechanisms(TESTMECH1, TESTMECH2); pumpClientToServer(); pumpServerToClient(); assertArrayEquals("Client should now know the server's mechanisms.", new String[] { TESTMECH1, TESTMECH2 }, clientSasl.getRemoteMechanisms()); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); // Select a mech, send large initial response along with it in sasl-init, verify server receives it clientSasl.setMechanisms(TESTMECH1); byte[] initialResponseBytes = Arrays.copyOf(largeInitialResponseBytesOrig, largeInitialResponseBytesOrig.length); clientSasl.send(initialResponseBytes, 0, initialResponseBytes.length); pumpClientToServer(); assertArrayEquals("Server should now know the client's chosen mechanism.", new String[] { TESTMECH1 }, serverSasl.getRemoteMechanisms()); byte[] serverReceivedInitialResponseBytes = new byte[serverSasl.pending()]; serverSasl.recv(serverReceivedInitialResponseBytes, 0, serverReceivedInitialResponseBytes.length); assertArrayEquals("Server should now know the clients initial response", largeInitialResponseBytesOrig, serverReceivedInitialResponseBytes); // Send a large challenge in a sasl-challenge, verify client receives it byte[] challengeBytes = Arrays.copyOf(largeChallengeBytesOrig, largeChallengeBytesOrig.length); serverSasl.send(challengeBytes, 0, challengeBytes.length); pumpServerToClient(); byte[] clientReceivedChallengeBytes = new byte[clientSasl.pending()]; clientSasl.recv(clientReceivedChallengeBytes, 0, clientReceivedChallengeBytes.length); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_NONE, clientSasl.getOutcome()); assertArrayEquals("Client should now know the server's challenge", largeChallengeBytesOrig, clientReceivedChallengeBytes); // Send a large response in a sasl-response, verify server receives it byte[] responseBytes = Arrays.copyOf(largeResponseBytesOrig, largeResponseBytesOrig.length); clientSasl.send(responseBytes, 0, responseBytes.length); pumpClientToServer(); byte[] serverReceivedResponseBytes = new byte[serverSasl.pending()]; serverSasl.recv(serverReceivedResponseBytes, 0, serverReceivedResponseBytes.length); assertArrayEquals("Server should now know the client's response", largeResponseBytesOrig, serverReceivedResponseBytes); // Send an outcome with large additional data in a sasl-outcome, verify client receives it byte[] additionalBytes = Arrays.copyOf(largeAdditionalBytesOrig, largeAdditionalBytesOrig.length); serverSasl.send(additionalBytes, 0, additionalBytes.length); serverSasl.done(SaslOutcome.PN_SASL_OK); pumpServerToClient(); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_OK, clientSasl.getOutcome()); byte[] clientReceivedAdditionalBytes = new byte[clientSasl.pending()]; clientSasl.recv(clientReceivedAdditionalBytes, 0, clientReceivedAdditionalBytes.length); assertArrayEquals("Client should now know the server's outcome additional data", largeAdditionalBytesOrig, clientReceivedAdditionalBytes); }
Example 8
Source File: SaslTest.java From qpid-proton-j with Apache License 2.0 | 4 votes |
@Test public void testSaslNegotiationUsingListener() throws Exception { getClient().transport = Proton.transport(); getServer().transport = Proton.transport(); AtomicBoolean mechanismsReceived = new AtomicBoolean(); AtomicBoolean challengeReceived = new AtomicBoolean(); AtomicBoolean outcomeReceived = new AtomicBoolean(); Sasl clientSasl = getClient().transport.sasl(); clientSasl.client(); clientSasl.setListener(new ClientSaslHandling(mechanismsReceived, challengeReceived, outcomeReceived)); AtomicBoolean initReceived = new AtomicBoolean(); AtomicBoolean responseReceived = new AtomicBoolean(); Sasl serverSasl = getServer().transport.sasl(); serverSasl.server(); serverSasl.setMechanisms(TESTMECH1, TESTMECH2); serverSasl.setListener(new ServerSaslHandling(initReceived, responseReceived)); pumpClientToServer(); pumpServerToClient(); assertTrue("mechanisms were not received by client", mechanismsReceived.get()); assertFalse("init was received by server", initReceived.get()); pumpClientToServer(); assertTrue("init was not received by server", initReceived.get()); assertFalse("challenge was received by client", challengeReceived.get()); pumpServerToClient(); assertTrue("challenge was not received by client", challengeReceived.get()); assertFalse("response was received by server", responseReceived.get()); pumpClientToServer(); assertTrue("response was received by server", responseReceived.get()); assertFalse("outcome was received by client", outcomeReceived.get()); pumpServerToClient(); assertTrue("outcome was received by client", outcomeReceived.get()); assertEquals("Unexpected SASL outcome at client", SaslOutcome.PN_SASL_OK, clientSasl.getOutcome()); }
Example 9
Source File: ProtonHandler.java From activemq-artemis with Apache License 2.0 | 4 votes |
public void createClientSASL() { Sasl sasl = transport.sasl(); sasl.client(); sasl.setListener(this); }