Author: kevinshen
Date: 2010-01-22 06:39:22 +0100 (Fri, 22 Jan 2010)
New Revision: 40679
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/servlet/CommunityLogoutServlet.java
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/LogLinkTag.java
Log:
CMSC-1617 SSO -- Error message, to many redirects add a default login url
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/servlet/CommunityLogoutServlet.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/servlet/CommunityLogoutServlet.java
2010-01-22 05:38:50 UTC (rev 40678)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/servlet/CommunityLogoutServlet.java
2010-01-22 05:39:22 UTC (rev 40679)
@@ -13,6 +13,8 @@
@SuppressWarnings("serial")
public class CommunityLogoutServlet extends HttpServlet {
+ private static final String CAS_SERVER_LOGOUT_URL = "casServerLogoutUrl";
+ private static final String CAS_LOGIN_LOCALE = "cas_login_locale";
private static final Logger log =
Logger.getLogger(CommunityLogoutServlet.class);
@Override
public void init(ServletConfig config) throws ServletException {
@@ -23,11 +25,11 @@
public void service(HttpServletRequest request, HttpServletResponse
response) throws IOException {
String locale = null;
- if (request.getSession().getAttribute("cas_login_locale") != null) {
- locale =
(String)request.getSession().getAttribute("cas_login_locale");
+ if (request.getSession().getAttribute(CAS_LOGIN_LOCALE) != null) {
+ locale = (String)request.getSession().getAttribute(CAS_LOGIN_LOCALE);
}
request.getSession().invalidate();
- String defaultLogoutUrl = "casServerLogoutUrl";
+ String defaultLogoutUrl = CAS_SERVER_LOGOUT_URL;
if (locale != null) {
defaultLogoutUrl += "_"+locale;
}
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/LogLinkTag.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/LogLinkTag.java
2010-01-22 05:38:50 UTC (rev 40678)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/LogLinkTag.java
2010-01-22 05:39:22 UTC (rev 40679)
@@ -5,10 +5,13 @@
import org.acegisecurity.context.SecurityContextHolder;
+import com.finalist.cmsc.beans.om.Site;
+import com.finalist.cmsc.services.sitemanagement.SiteManagement;
import com.finalist.cmsc.util.HttpUtil;
public class LogLinkTag extends AbstractSSOTag {
+ private static final String CAS_SERVER_LOGIN_URL = "casServerLoginUrl";
private static final String CAS_LOGIN_LOCALE = "cas_login_locale";
private String referurl;
@@ -38,12 +41,20 @@
}
org.acegisecurity.Authentication authentication =
SecurityContextHolder.getContext().getAuthentication();
if(authentication == null) {
- String defaultLoginUrl = "casServerLoginUrl";
+ String LoginUrl = CAS_SERVER_LOGIN_URL;
if(locale != null) {
- defaultLoginUrl += "_"+locale;
+ LoginUrl += "_"+locale;
+ req.getSession().setAttribute(CAS_LOGIN_LOCALE, locale);
}
- link = getParameter(defaultLoginUrl)+"?service="+backUrl;
- req.getSession().setAttribute(CAS_LOGIN_LOCALE, locale);
+ else {
+ String path = getPath();
+ Site site = SiteManagement.getSiteFromPath(path);
+ if(site != null && site.getLanguage() != null) {
+ LoginUrl += "_"+site.getLanguage();
+ req.getSession().setAttribute(CAS_LOGIN_LOCALE,
site.getLanguage());
+ }
+ }
+ link =
getParameter(LoginUrl)==null?getParameter(CAS_SERVER_LOGIN_URL):getParameter(LoginUrl)+"?service="+backUrl;
}
else {
link = HttpUtil.getWebappUri(req)+"LogoutServlet";
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs