View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.processor;
8   
9   import org.mule.MessageExchangePattern;
10  import org.mule.RequestContext;
11  import org.mule.api.MuleEvent;
12  import org.mule.api.endpoint.InboundEndpoint;
13  import org.mule.api.processor.InterceptingMessageProcessor;
14  import org.mule.endpoint.AbstractMessageProcessorTestCase;
15  import org.mule.tck.security.TestSecurityFilter;
16  
17  import org.junit.Test;
18  
19  import static org.junit.Assert.assertEquals;
20  import static org.junit.Assert.assertNotNull;
21  import static org.junit.Assert.assertNull;
22  import static org.junit.Assert.assertSame;
23  import static org.junit.Assert.assertTrue;
24  
25  public class SecurityFilterMessageProcessorTestCase extends AbstractMessageProcessorTestCase
26  {
27  
28      @Test
29      public void testFilterPass() throws Exception
30      {
31          TestSecurityFilter securityFilter = new TestSecurityFilter(true);
32          InboundEndpoint endpoint = createTestInboundEndpoint(null, securityFilter,
33              MessageExchangePattern.REQUEST_RESPONSE, null);
34          InterceptingMessageProcessor mp = new SecurityFilterMessageProcessor(securityFilter);
35          TestListener listner = new TestListener();
36          mp.setListener(listner);
37  
38          MuleEvent inEvent = createTestInboundEvent(endpoint);
39          MuleEvent resultEvent = mp.process(inEvent);
40          assertNotNull(listner.sensedEvent);
41          assertSame(inEvent, listner.sensedEvent);
42          assertEquals(inEvent, resultEvent);
43  
44      }
45  
46      @Test
47      public void testFilterFail() throws Exception
48      {
49          TestSecurityFilter securityFilter = new TestSecurityFilter(false);
50          InboundEndpoint endpoint = createTestInboundEndpoint(null, securityFilter,
51              MessageExchangePattern.REQUEST_RESPONSE, null);
52          InterceptingMessageProcessor mp = new SecurityFilterMessageProcessor(securityFilter);
53          TestListener listner = new TestListener();
54          mp.setListener(listner);
55  
56          MuleEvent inEvent = createTestInboundEvent(endpoint);
57  
58          // Need event in RequestContext :-(
59          RequestContext.setEvent(inEvent);
60  
61          MuleEvent resultEvent = mp.process(inEvent);
62          assertNull(listner.sensedEvent);
63  
64          assertNotNull(resultEvent);
65          assertEquals(TestSecurityFilter.SECURITY_EXCEPTION_MESSAGE, resultEvent.getMessageAsString());
66          assertNotNull(resultEvent.getMessage().getExceptionPayload());
67          assertTrue(resultEvent.getMessage().getExceptionPayload().getException() instanceof TestSecurityFilter.StaticMessageUnauthorisedException);
68      }
69  
70  }