KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > security > jaas > DirectConfigurationEntry


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. 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 org.apache.geronimo.gbean.GBeanInfo;
20 import org.apache.geronimo.gbean.GBeanInfoBuilder;
21 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
22 import org.apache.geronimo.security.jaas.server.JaasLoginModuleConfiguration;
23
24
25 /**
26  * Exposes a LoginModule directly to JAAS clients, without any particular
27  * wrapping by Geronimo. You do still need to declare the login module as a
28  * GBean, but it's not like it will be run through the login service or
29  * anything.
30  *
31  * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
32  */

33 public class DirectConfigurationEntry implements ConfigurationEntryFactory {
34     private final String JavaDoc applicationConfigName;
35     private final LoginModuleControlFlag controlFlag;
36     private final LoginModuleSettings module;
37
38     public DirectConfigurationEntry() {
39         this.applicationConfigName = null;
40         this.controlFlag = null;
41         this.module = null;
42     }
43
44     public DirectConfigurationEntry(String JavaDoc applicationConfigName, LoginModuleControlFlag controlFlag, LoginModuleSettings module) {
45         this.applicationConfigName = applicationConfigName;
46         this.controlFlag = controlFlag;
47         this.module = module;
48     }
49
50     public String JavaDoc getConfigurationName() {
51         return applicationConfigName;
52     }
53
54     public JaasLoginModuleConfiguration generateConfiguration() {
55         return new JaasLoginModuleConfiguration(module.getLoginModuleClass(), controlFlag, module.getOptions(), module.isServerSide(), applicationConfigName, false, module.getClassLoader());
56     }
57
58     public static final GBeanInfo GBEAN_INFO;
59
60     static {
61         GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(DirectConfigurationEntry.class, NameFactory.CONFIGURATION_ENTRY);
62         infoFactory.addInterface(ConfigurationEntryFactory.class);
63         infoFactory.addAttribute("applicationConfigName", String JavaDoc.class, true);
64         infoFactory.addAttribute("controlFlag", LoginModuleControlFlag.class, true);
65
66         infoFactory.addReference("Module", LoginModuleSettings.class, NameFactory.LOGIN_MODULE);
67
68         infoFactory.setConstructor(new String JavaDoc[]{"applicationConfigName", "controlFlag", "Module"});
69         GBEAN_INFO = infoFactory.getBeanInfo();
70     }
71
72     public static GBeanInfo getGBeanInfo() {
73         return GBEAN_INFO;
74     }
75 }
76
Popular Tags