View Javadoc

1   /*
2    * $Id: UnauthorisedException.java 7963 2007-08-21 08:53:15Z dirk.olmes $
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.umo.security;
12  
13  import org.mule.config.i18n.CoreMessages;
14  import org.mule.config.i18n.Message;
15  import org.mule.impl.RequestContext;
16  import org.mule.umo.UMOMessage;
17  import org.mule.umo.endpoint.UMOImmutableEndpoint;
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, UMOMessage umoMessage)
41      {
42          super(message, umoMessage);
43      }
44  
45      public UnauthorisedException(Message message, UMOMessage umoMessage, Throwable cause)
46      {
47          super(message, umoMessage, cause);
48      }
49  
50      public UnauthorisedException(UMOMessage umoMessage,
51                                   UMOSecurityContext context,
52                                   UMOImmutableEndpoint endpoint,
53                                   UMOEndpointSecurityFilter filter)
54      {
55          super(constructMessage(context, endpoint, filter), umoMessage);
56      }
57  
58      private static Message constructMessage(UMOSecurityContext context,
59                                              UMOImmutableEndpoint endpoint,
60                                              UMOEndpointSecurityFilter 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  }