View Javadoc

1   /*
2    * $Id: UnauthorisedException.java 10489 2008-01-23 17:53:38Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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.MuleMessage;
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 = -6664384216189042672L;
29  
30      public UnauthorisedException(Message message)
31      {
32          super(message, RequestContext.getEventContext().getMessage());
33      }
34  
35      public UnauthorisedException(Message message, Throwable cause)
36      {
37          super(message, RequestContext.getEventContext().getMessage(), cause);
38      }
39  
40      public UnauthorisedException(Message message, MuleMessage umoMessage)
41      {
42          super(message, umoMessage);
43      }
44  
45      public UnauthorisedException(Message message, MuleMessage umoMessage, Throwable cause)
46      {
47          super(message, umoMessage, cause);
48      }
49  
50      public UnauthorisedException(MuleMessage umoMessage,
51                                   SecurityContext context,
52                                   ImmutableEndpoint endpoint,
53                                   EndpointSecurityFilter filter)
54      {
55          super(constructMessage(context, endpoint, filter), umoMessage);
56      }
57  
58      private static Message constructMessage(SecurityContext context,
59                                              ImmutableEndpoint endpoint,
60                                              EndpointSecurityFilter filter)
61      {
62  
63          Message m = null;
64          if (context == null)
65          {
66              m = CoreMessages.authSetButNoContext(filter.getClass().getName());
67          }
68          else
69          {
70              m = CoreMessages.authFailedForUser(context.getAuthentication().getPrincipal());
71          }
72          m.setNextMessage(CoreMessages.authDeniedOnEndpoint(endpoint.getEndpointURI()));
73          return m;
74      }
75  }