From: <ssk...@re...> - 2005-01-13 19:59:15
|
Author: sskracic Date: 2005-01-13 20:49:28 +0100 (Thu, 13 Jan 2005) New Revision: 177 Modified: ccm-core/trunk/src/com/arsdigita/kernel/security/CookieManager.java ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig.java ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig_parameter.properties Log: Adding support for configurable cookie domain that Aplaws authorization cookie will be responsible for. The waf.cookie_domain parameter is optional, if it's not set the cookie will be valid only for the website that delivered it. Modified: ccm-core/trunk/src/com/arsdigita/kernel/security/CookieManager.java =================================================================== --- ccm-core/trunk/src/com/arsdigita/kernel/security/CookieManager.java 2005-01-13 18:52:13 UTC (rev 176) +++ ccm-core/trunk/src/com/arsdigita/kernel/security/CookieManager.java 2005-01-13 19:49:28 UTC (rev 177) @@ -18,14 +18,15 @@ */ package com.arsdigita.kernel.security; +import com.arsdigita.kernel.Kernel; import com.arsdigita.util.ServletUtils; +import com.arsdigita.util.UncheckedWrapperException; import java.util.Map; import javax.security.auth.Subject; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.login.LoginException; import javax.servlet.http.Cookie; import org.apache.log4j.Logger; -import com.arsdigita.util.UncheckedWrapperException; /** * Manages a string value stored in a cookie. @@ -155,6 +156,12 @@ cookie.setPath("/"); cookie.setSecure(getModule().isSecure()); getModule().getResponse().addCookie(cookie); + String domain = Kernel.getSecurityConfig().getCookieDomain(); + if (domain != null) { + cookie.setDomain(domain); + } + s_log.debug("Cookie set: domain - " + cookie.getDomain() + + " name - " + cookie.getName()); } /** Modified: ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig.java =================================================================== --- ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig.java 2005-01-13 18:52:13 UTC (rev 176) +++ ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig.java 2005-01-13 19:49:28 UTC (rev 177) @@ -59,6 +59,8 @@ ("waf.pagemap.permission", Parameter.REQUIRED, "permissions/"); private final Parameter m_permSinglePage = new StringParameter ("waf.pagemap.perm_single", Parameter.REQUIRED, "permissions/one"); + private final Parameter m_cookieDomain = new StringParameter + ("waf.cookie_domain", Parameter.OPTIONAL, null); private final Parameter m_loginConfig = new StringArrayParameter ("waf.login_config", Parameter.REQUIRED, new String[] { "Request:com.arsdigita.kernel.security.AdminLoginModule:sufficient", @@ -84,6 +86,7 @@ register(m_loginRedirectPage); register(m_permissionPage); register(m_permSinglePage); + register(m_cookieDomain); register(m_loginConfig); loadInfo(); } @@ -124,6 +127,9 @@ String getPermSinglePage() { return (String) get(m_permSinglePage); } + String getCookieDomain() { + return (String) get(m_cookieDomain); + } String[] getLoginConfig() { return (String[]) get(m_loginConfig); } Modified: ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig_parameter.properties =================================================================== --- ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig_parameter.properties 2005-01-13 18:52:13 UTC (rev 176) +++ ccm-core/trunk/src/com/arsdigita/kernel/security/SecurityConfig_parameter.properties 2005-01-13 19:49:28 UTC (rev 177) @@ -50,3 +50,7 @@ waf.login_config.purpose=Enter JAAS login configuration, using the syntax described in Javadoc for com.arsdigita.kernel.security.LoginConfig waf.login_config.example=Request:com.arsdigita.kernel.security.AdminLoginModule:sufficient,Register:com.arsdigita.kernel.security.LocalLoginModule:requisite waf.login_config.format=[string,string,...] +waf.cookie_domain.title=Cookie Domain +waf.cookie_domain.purpose=Enter the domain to which the Aplaws authentication cookie is presented +waf.cookie_domain.example=.example.com +waf.cookie_domain.format=[string] |