@Override protected boolean passesFormalVerification(final ResourceIdentifier linkTarget, final Message msg) { return CredentialsMessageFilter.verify(linkTarget, msg); }
@Override protected boolean passesFormalVerification(final ResourceIdentifier linkTarget, final Message msg) { return CredentialsMessageFilter.verify(linkTarget, msg); }
/** * Verifies that a message that has no body does not pass the filter. */ @Test public void testVerifyFailsForMissingBody() { // GIVEN a valid credentials GET message without an AMQP value final Message msg = givenAValidMessageWithoutBody(CredentialsConstants.CredentialsAction.get); // WHEN receiving the message via a link with any tenant final boolean filterResult = CredentialsMessageFilter.verify(target, msg); // THEN message validation fails assertFalse(filterResult); }
/** * Verifies that a message containing a subject that does not represent * a Credentials API operation does not pass the filter. */ @Test public void testVerifyFailsForUnknownAction() { // GIVEN a message with an unsupported subject final Message msg = givenAValidMessageWithoutBody(CredentialsConstants.CredentialsAction.unknown); msg.setBody(new AmqpValue(BILLIE_HASHED_PASSWORD)); msg.setContentType("application/json"); // WHEN receiving the message via a link with any tenant final boolean filterResult = CredentialsMessageFilter.verify(target, msg); // THEN message validation fails assertFalse(filterResult); }
/** * Verifies that a message containing a non Data section body * does not pass the filter. */ @Test public void testVerifyFailsForNonDataSectionBody() { // GIVEN a message with an unsupported subject final Message msg = givenAValidMessageWithoutBody(CredentialsConstants.CredentialsAction.get); msg.setBody(new AmqpValue(BILLIE_HASHED_PASSWORD.encode())); msg.setContentType("application/json"); // WHEN receiving the message via a link with any tenant final boolean filterResult = CredentialsMessageFilter.verify(target, msg); // THEN message validation fails assertFalse(filterResult); }
/** * Verifies that a message that does not contain a message-id nor correlation-id * does not pass the filter. */ @Test public void testVerifyFailsForMissingCorrelationId() { // GIVEN a message with an unsupported subject final Message msg = ProtonHelper.message(); msg.setReplyTo("reply"); msg.setBody(new AmqpValue(BILLIE_HASHED_PASSWORD)); msg.setContentType("application/json"); // WHEN receiving the message via a link with any tenant final boolean filterResult = CredentialsMessageFilter.verify(target, msg); // THEN message validation fails assertFalse(filterResult); }
/** * Verifies that a valid message passes the filter. */ @Test public void testVerifySucceedsForValidGetAction() { // GIVEN a credentials message for user billie final Message msg = givenAValidMessageWithoutBody(CredentialsConstants.CredentialsAction.get); msg.setBody(new Data(new Binary(BILLIE_HASHED_PASSWORD.toBuffer().getBytes()))); msg.setContentType("application/json"); // WHEN receiving the message via a link with any tenant final boolean filterResult = CredentialsMessageFilter.verify(target, msg); // THEN message validation succeeds assertTrue(filterResult); }