1
22
23 package com.liferay.portal.security.jaas;
24
25 import com.liferay.portal.kernel.log.Log;
26 import com.liferay.portal.kernel.log.LogFactoryUtil;
27 import com.liferay.portal.kernel.util.ServerDetector;
28 import com.liferay.portal.kernel.util.Validator;
29 import com.liferay.portal.util.PropsValues;
30
31 import java.util.Map;
32
33 import javax.security.auth.Subject;
34 import javax.security.auth.callback.CallbackHandler;
35 import javax.security.auth.login.LoginException;
36 import javax.security.auth.spi.LoginModule;
37
38
44 public class PortalLoginModule implements LoginModule {
45
46 public PortalLoginModule() {
47 if (Validator.isNotNull(PropsValues.PORTAL_JAAS_IMPL)) {
48 try {
49 _loginModule = (LoginModule)Class.forName(
50 PropsValues.PORTAL_JAAS_IMPL).newInstance();
51 }
52 catch (Exception e) {
53 _log.error(e);
54 }
55 }
56
57 if (_loginModule == null) {
58
59
61 if (ServerDetector.isJBoss()) {
62 _loginModule =
63 new com.liferay.portal.security.jaas.ext.jboss.PortalLoginModule();
64 }
65 else if (ServerDetector.isJOnAS()) {
66 _loginModule =
67 new com.liferay.portal.security.jaas.ext.jonas.PortalLoginModule();
68 }
69 else if (ServerDetector.isResin()) {
70 _loginModule =
71 new com.liferay.portal.security.jaas.ext.resin.PortalLoginModule();
72 }
73 else if (ServerDetector.isWebLogic()) {
74 _loginModule =
75 new com.liferay.portal.security.jaas.ext.weblogic.PortalLoginModule();
76 }
77
78
80 else if (ServerDetector.isJetty()) {
81 _loginModule =
82 new com.liferay.portal.security.jaas.ext.jetty.PortalLoginModule();
83 }
84 else if (ServerDetector.isTomcat()) {
85 _loginModule =
86 new com.liferay.portal.security.jaas.ext.tomcat.PortalLoginModule();
87 }
88 }
89
90 if (_log.isDebugEnabled()) {
91 _log.debug(_loginModule.getClass().getName());
92 }
93 }
94
95 public boolean abort() throws LoginException {
96 return _loginModule.abort();
97 }
98
99 public boolean commit() throws LoginException {
100 return _loginModule.commit();
101 }
102
103 public void initialize(
104 Subject subject, CallbackHandler callbackHandler,
105 Map<String, ?> sharedState, Map<String, ?> options) {
106
107 _loginModule.initialize(subject, callbackHandler, sharedState, options);
108 }
109
110 public boolean login() throws LoginException {
111 return _loginModule.login();
112 }
113
114 public boolean logout() throws LoginException {
115 return _loginModule.logout();
116 }
117
118 private static Log _log = LogFactoryUtil.getLog(PortalLoginModule.class);
119
120 private LoginModule _loginModule;
121
122 }