[jboss-cvs] jboss-seam/src/main/org/jboss/seam/security ...

Gavin King gavin.king at jboss.com
Sun Jul 8 17:13:37 EDT 2007


  User: gavin   
  Date: 07/07/08 17:13:37

  Modified:    src/main/org/jboss/seam/security  Configuration.java
  Log:
  use @Factory instead of @Unwrap where that makes more sense
  
  Revision  Changes    Path
  1.4       +23 -19    jboss-seam/src/main/org/jboss/seam/security/Configuration.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Configuration.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/security/Configuration.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- Configuration.java	26 Jun 2007 00:09:04 -0000	1.3
  +++ Configuration.java	8 Jul 2007 21:13:37 -0000	1.4
  @@ -1,5 +1,7 @@
   package org.jboss.seam.security;
   
  +import static org.jboss.seam.ScopeType.APPLICATION;
  +
   import java.util.HashMap;
   
   import javax.security.auth.login.AppConfigurationEntry;
  @@ -7,54 +9,56 @@
   
   import org.jboss.seam.Component;
   import org.jboss.seam.ScopeType;
  -import org.jboss.seam.annotations.Create;
  +import org.jboss.seam.annotations.Factory;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Scope;
  -import org.jboss.seam.annotations.Unwrap;
   import org.jboss.seam.annotations.intercept.BypassInterceptors;
   import org.jboss.seam.contexts.Contexts;
   import org.jboss.seam.security.jaas.SeamLoginModule;
   
   /**
  - * Manager component for a JAAS Configuration used
  - * by Seam Security.
  + * Factory for the JAAS Configuration used by Seam Security.
    * 
    * @author Shane Bryzak
    *
    */
  - at Name("org.jboss.seam.security.configuration")
  + at Name("org.jboss.seam.security.configurationFactory")
   @BypassInterceptors
  - at Scope(ScopeType.APPLICATION)
  + at Scope(ScopeType.STATELESS)
   public class Configuration
   {
      static final String DEFAULT_JAAS_CONFIG_NAME = "default";   
   
  -   private javax.security.auth.login.Configuration configuration;
  -
  -   @Create
  -   public void init()
  +   protected javax.security.auth.login.Configuration createConfiguration()
      {
  -      configuration = new javax.security.auth.login.Configuration()
  +      return new javax.security.auth.login.Configuration()
         {
  -         private AppConfigurationEntry[] aces = { new AppConfigurationEntry( 
  -                  SeamLoginModule.class.getName(), 
  -                  LoginModuleControlFlag.REQUIRED, 
  -                  new HashMap<String,String>() 
  -               ) };
  +         private AppConfigurationEntry[] aces = { createAppConfigurationEntry() };
  +         
            @Override
            public AppConfigurationEntry[] getAppConfigurationEntry(String name)
            {
               return DEFAULT_JAAS_CONFIG_NAME.equals(name) ? aces : null;
            }
  +         
            @Override
            public void refresh() {}
         };
      }
      
  -   @Unwrap
  +   protected AppConfigurationEntry createAppConfigurationEntry()
  +   {
  +      return new AppConfigurationEntry( 
  +            SeamLoginModule.class.getName(), 
  +            LoginModuleControlFlag.REQUIRED, 
  +            new HashMap<String,String>() 
  +         );
  +   }
  +   
  +   @Factory(value="org.jboss.seam.security.configuration", autoCreate=true, scope=APPLICATION)
      public javax.security.auth.login.Configuration getConfiguration()
      {
  -      return configuration;
  +      return createConfiguration();
      }
   
      public static javax.security.auth.login.Configuration instance()
  @@ -63,6 +67,6 @@
         {
            throw new IllegalStateException("No active application scope");
         }
  -      return (javax.security.auth.login.Configuration) Component.getInstance(Configuration.class);
  +      return (javax.security.auth.login.Configuration) Component.getInstance("org.jboss.seam.security.configuration");
      }
   }
  
  
  



More information about the jboss-cvs-commits mailing list