View Javadoc

1   /*
2    * $Id: AcegiSecurityContextFactory.java 19191 2010-08-25 21:05:23Z 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.module.acegi;
12  
13  import org.mule.api.security.Authentication;
14  import org.mule.api.security.SecurityContext;
15  import org.mule.api.security.SecurityContextFactory;
16  
17  import org.acegisecurity.context.SecurityContextHolder;
18  import org.acegisecurity.context.SecurityContextImpl;
19  
20  /**
21   * <code>AcegiSecurityContextFactory</code> creates an AcegiSecurityContext for an
22   * {@link Authentication} object
23   */
24  public class AcegiSecurityContextFactory implements SecurityContextFactory
25  {
26      public SecurityContext create(Authentication authentication)
27      {
28          org.acegisecurity.context.SecurityContext context = new SecurityContextImpl();
29          context.setAuthentication(((AcegiAuthenticationAdapter)authentication).getDelegate());
30  
31          if (authentication.getProperties() != null)
32          {
33              if ((authentication.getProperties().containsKey("securityMode")))
34              {
35                  SecurityContextHolder.setStrategyName((String)authentication.getProperties().get(
36                      "securityMode"));
37              }
38          }
39          SecurityContextHolder.setContext(context);
40          return new AcegiSecurityContext(context);
41      }
42  }