View Javadoc

1   /*
2    * $Id: UnauthorisedException.java 19739 2010-09-27 14:28:40Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.api.security;
12  
13  import org.mule.RequestContext;
14  import org.mule.api.MuleEvent;
15  import org.mule.api.endpoint.ImmutableEndpoint;
16  import org.mule.config.i18n.CoreMessages;
17  import org.mule.config.i18n.Message;
18  
19  /**
20   * <code>UnauthorisedException</code> is thrown if authentication fails
21   */
22  
23  public class UnauthorisedException extends SecurityException
24  {
25      /**
26       * Serial version
27       */
28      private static final long serialVersionUID = -6664384216189042673L;
29  
30      public UnauthorisedException(Message message)
31      {
32          super(message, RequestContext.getEvent());
33      }
34  
35      public UnauthorisedException(Message message, Throwable cause)
36      {
37          super(message, RequestContext.getEvent(), cause);
38      }
39  
40      public UnauthorisedException(Message message, MuleEvent event)
41      {
42          super(message, event);
43      }
44  
45      public UnauthorisedException(Message message, MuleEvent event, Throwable cause)
46      {
47          super(message, event, cause);
48      }
49  
50      public UnauthorisedException(MuleEvent event, SecurityContext context, 
51          ImmutableEndpoint endpoint, EndpointSecurityFilter filter)
52      {
53          super(constructMessage(context, endpoint, filter), event);
54      }
55  
56      private static Message constructMessage(SecurityContext context, ImmutableEndpoint endpoint,
57          EndpointSecurityFilter filter)
58      {
59  
60          Message m;
61          if (context == null)
62          {
63              m = CoreMessages.authSetButNoContext(filter.getClass().getName());
64          }
65          else
66          {
67              m = CoreMessages.authFailedForUser(context.getAuthentication().getPrincipal());
68          }
69          m.setNextMessage(CoreMessages.authDeniedOnEndpoint(endpoint.getEndpointURI()));
70          return m;
71      }
72  }