return saslServer; } catch (SaslException e) { e.printStackTrace();
public void receiveSaslInit(final SaslInit saslInit) { _mechanism = saslInit.getMechanism(); try { _saslServer = Sasl.createSaslServer(_mechanism.toString(), "AMQP", "localhost", null, createServerCallbackHandler(_mechanism)); } catch (SaslException e) { e.printStackTrace(); //TODO } }
public synchronized void receiveSaslMechanisms(final SaslMechanisms saslMechanisms) { Symbol[] serverMechanisms = saslMechanisms.getSaslServerMechanisms(); for(Symbol mechanism : _mechanisms) { if(Arrays.asList(serverMechanisms).contains(mechanism)) { _mechanism = mechanism; break; } } // TODO - no matching mechanism try { _saslClient = Sasl.createSaslClient(new String[] { _mechanism.toString() }, null, "AMQP", "localhost", null, createClientCallbackHandler(_mechanism)); SaslInit init = new SaslInit(); init.setMechanism(_mechanism); init.setInitialResponse(_saslClient.hasInitialResponse() ? new Binary(_saslClient.evaluateChallenge(EMPTY_CHALLENGE)) : null); send(init); } catch (SaslException e) { e.printStackTrace(); //TODO } }
@Test public void testServerFirstMessageWithBinding() { SaslSCRAMPlus m = create("Ey6OJnGx7JEJAIJp", "5kLrhitKUHVoSOmzdR", "123456", new byte[]{'D', 'P', 'I'}); try { byte[] r = m.evaluateResponse("p=tls-unique,,n=bmalkow,r=SpiXKmhi57DBp5sdE5G3H3ms".getBytes()); Assert.assertEquals("r=SpiXKmhi57DBp5sdE5G3H3ms5kLrhitKUHVoSOmzdR,s=Ey6OJnGx7JEJAIJp,i=4096", new String(r)); r = m.evaluateResponse( "c=cD10bHMtdW5pcXVlLCxEUEk=,r=SpiXKmhi57DBp5sdE5G3H3ms5kLrhitKUHVoSOmzdR,p=+zQvUd4nQqo03thSCcc2K6gueD4=" .getBytes()); Assert.assertEquals("v=NQ/f8FjeMxUuRK9F88G8tMji4pk=", new String(r)); } catch (SaslException e) { e.printStackTrace(); fail(e.getMessage()); } assertTrue(m.isComplete()); assertEquals("user@domain.com", m.getAuthorizationID()); }