View Javadoc

1   /**
2    *
3    * Copyright 2003-2004 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  package org.apache.geronimo.security.jaas;
18  
19  import java.util.Properties;
20  
21  import org.apache.geronimo.gbean.GBeanInfo;
22  import org.apache.geronimo.gbean.GBeanInfoBuilder;
23  import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
24  
25  
26  /**
27   * A GBean that wraps a LoginModule, plus options to configure the LoginModule.
28   * If you want to deploy the same LoginModule with different options, you need
29   * more than one of these GBeans.  But if you want two security realms to refer
30   * to exactly the same login module configuration, you can have both realms
31   * refer to a single login module GBean.
32   *
33   * @version $Rev: 406019 $ $Date: 2006-05-12 23:08:10 -0700 (Fri, 12 May 2006) $
34   */
35  public class LoginModuleGBean implements LoginModuleSettings {
36      private String loginDomainName;
37      private String loginModuleClass;
38      private Properties options;
39      private final String objectName;
40      private boolean serverSide;
41      private boolean wrapPrincipals;
42      private final ClassLoader classLoader;
43  
44      public LoginModuleGBean(String loginModuleClass, String objectName, boolean serverSide, boolean wrapPrincipals, ClassLoader classLoader) {
45          this.loginModuleClass = loginModuleClass;
46          this.objectName = objectName;
47          this.serverSide = serverSide;
48          this.wrapPrincipals = wrapPrincipals;
49          this.classLoader = classLoader;
50      }
51  
52      public String getLoginDomainName() {
53          return loginDomainName;
54      }
55  
56      public void setLoginDomainName(String loginDomainName) {
57          this.loginDomainName = loginDomainName;
58      }
59  
60      public Properties getOptions() {
61          return options;
62      }
63  
64      public void setOptions(Properties options) {
65          this.options = options;
66      }
67  
68      public String getLoginModuleClass() {
69          return loginModuleClass;
70      }
71  
72      public void setLoginModuleClass(String loginModuleClass) {
73          this.loginModuleClass = loginModuleClass;
74      }
75  
76      public String getObjectName() {
77          return objectName;
78      }
79  
80      public boolean isServerSide() {
81          return serverSide;
82      }
83  
84      public void setServerSide(boolean serverSide) {
85          this.serverSide = serverSide;
86      }
87  
88      public boolean isWrapPrincipals() {
89          return wrapPrincipals;
90      }
91  
92      public void setWrapPrincipals(boolean wrapPrincipals) {
93          this.wrapPrincipals = wrapPrincipals;
94      }
95  
96      public ClassLoader getClassLoader() {
97          return classLoader;
98      }
99  
100     public static final GBeanInfo GBEAN_INFO;
101 
102     static {
103         GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(LoginModuleGBean.class, NameFactory.LOGIN_MODULE);
104         infoFactory.addAttribute("classLoader", ClassLoader.class, false);
105         infoFactory.addInterface(LoginModuleSettings.class, new String[] {"options", "loginModuleClass", "serverSide", "loginDomainName", "wrapPrincipals"},
106         		                 new String[] {"options", "loginModuleClass", "serverSide", "wrapPrincipals"} );
107         infoFactory.setConstructor(new String[]{"loginModuleClass", "objectName", "serverSide", "wrapPrincipals", "classLoader"});
108 
109         GBEAN_INFO = infoFactory.getBeanInfo();
110     }
111 
112     public static GBeanInfo getGBeanInfo() {
113         return GBEAN_INFO;
114     }
115 }