commit 2b265ed18460c610ceb78c3b5f16cd3e6fec78b0 Author: Grégory Joseph Date: Tue Jun 25 15:18:03 2013 +0200 MAGNOLIA-5135 Moved the configurable jaasChain from FormLogin up to LoginHandlerBase so that it gets used with BasicLogin as well diff --git a/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/BasicLogin.java b/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/BasicLogin.java index 20cc4a2..1b22b4ad 100644 --- a/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/BasicLogin.java +++ b/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/BasicLogin.java @@ -55,7 +55,7 @@ public class BasicLogin extends LoginHandlerBase { if (StringUtils.isNotEmpty(credentials) && !credentials.startsWith("NTLM ") && !credentials.startsWith("Negotiate ") && !credentials.startsWith("Digest ") && !credentials.startsWith("Passport ")) { // its a basic authentication request CredentialsCallbackHandler callbackHandler = new Base64CallbackHandler(credentials); - return authenticate(callbackHandler, null); + return authenticate(callbackHandler); } return LoginResult.NOT_HANDLED; } diff --git a/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/FormLogin.java b/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/FormLogin.java index 16a2f48..e41e734 100644 --- a/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/FormLogin.java +++ b/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/FormLogin.java @@ -58,12 +58,6 @@ public class FormLogin extends LoginHandlerBase implements LoginHandler { public static final String PARAMETER_REALM = "mgnlRealm"; - /** - * The JAAS chain/module to use. - */ - - private String jaasChain = SecuritySupportBase.DEFAULT_JAAS_LOGIN_CHAIN; - @Override public LoginResult handle(HttpServletRequest request, HttpServletResponse response) { String userid = request.getParameter(PARAMETER_USER_ID); @@ -73,18 +67,10 @@ public class FormLogin extends LoginHandlerBase implements LoginHandler { String realm = StringUtils.defaultString(request.getParameter(PARAMETER_REALM)); CredentialsCallbackHandler callbackHandler = new PlainTextCallbackHandler(userid, pswd.toCharArray(), realm); - return authenticate(callbackHandler, getJaasChain()); + return authenticate(callbackHandler); } return LoginResult.NOT_HANDLED; } - public String getJaasChain() { - return this.jaasChain; - } - - - public void setJaasChain(String jaasChain) { - this.jaasChain = jaasChain; - } } diff --git a/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/LoginHandlerBase.java b/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/LoginHandlerBase.java index d3bcecf..1eb7274 100644 --- a/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/LoginHandlerBase.java +++ b/magnolia-core/src/main/java/info/magnolia/cms/security/auth/login/LoginHandlerBase.java @@ -34,6 +34,7 @@ package info.magnolia.cms.security.auth.login; import info.magnolia.cms.security.SecuritySupport; +import info.magnolia.cms.security.SecuritySupportBase; import info.magnolia.cms.security.auth.callback.CredentialsCallbackHandler; @@ -43,8 +44,27 @@ import info.magnolia.cms.security.auth.callback.CredentialsCallbackHandler; */ public abstract class LoginHandlerBase implements LoginHandler { + /** + * The JAAS chain/module to use. + */ + private String jaasChain = SecuritySupportBase.DEFAULT_JAAS_LOGIN_CHAIN; + + protected LoginResult authenticate(CredentialsCallbackHandler callbackHandler) { + return authenticate(callbackHandler, getJaasChain()); + } + + /** + * @deprecated use {@link #authenticate(info.magnolia.cms.security.auth.callback.CredentialsCallbackHandler)} instead; no need to pass the JAAS chain to use, it's configured here. + */ protected LoginResult authenticate(CredentialsCallbackHandler callbackHandler, String jaasModuleName) { return SecuritySupport.Factory.getInstance().authenticate(callbackHandler, jaasModuleName); } + public String getJaasChain() { + return this.jaasChain; + } + + public void setJaasChain(String jaasChain) { + this.jaasChain = jaasChain; + } }