Author: kevinshen
Date: 2010-01-22 06:38:50 +0100 (Fri, 22 Jan 2010)
New Revision: 40678
Modified:
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecurePortalServlet.java
Log:
CMSC-1617 SSO -- Error message, to many redirects add a default login url
Modified:
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecurePortalServlet.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecurePortalServlet.java
2010-01-22 02:48:19 UTC (rev 40677)
+++
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecurePortalServlet.java
2010-01-22 05:38:50 UTC (rev 40678)
@@ -12,6 +12,7 @@
import org.mmbase.bridge.util.CloudUtil;
import com.finalist.cmsc.beans.om.NavigationItem;
+import com.finalist.cmsc.beans.om.Site;
import com.finalist.cmsc.navigation.NavigationUtil;
import com.finalist.cmsc.security.SecurityUtil;
import com.finalist.cmsc.security.UserRole;
@@ -21,7 +22,8 @@
@SuppressWarnings("serial")
public class SecurePortalServlet extends PortalServlet {
-
+ private static final String CAS_LOGIN_LOCALE = "cas_login_locale";
+ private static final String DEFAULT_LOGIN_URL = "casServerLoginUrl";
private static Log log = LogFactory.getLog(SecurePortalServlet.class);
protected boolean doRender(HttpServletRequest request,
@@ -45,14 +47,21 @@
response.sendRedirect(HttpUtil.getWebappUri(request)+noRightPage);
}
String locale = null;
- if (request.getSession().getAttribute("cas_login_locale") != null) {
- locale =
(String)request.getSession().getAttribute("cas_login_locale");
- }
- String defaultLoginUrl = "casServerLoginUrl";
+ if (request.getSession().getAttribute(CAS_LOGIN_LOCALE) != null) {
+ locale = (String)request.getSession().getAttribute(CAS_LOGIN_LOCALE);
+ }
+ String loginUrl = DEFAULT_LOGIN_URL;
if (locale != null) {
- defaultLoginUrl += "_"+locale;
+ loginUrl += "_"+locale;
}
-
response.sendRedirect(getServletContext().getInitParameter(defaultLoginUrl)+"?service="+HttpUtil.getWebappUri(request)+path);
+ else {
+ Site site = SiteManagement.getSiteFromPath(path);
+ if(site != null && site.getLanguage() != null) {
+ loginUrl += "_"+site.getLanguage();
+ request.getSession().setAttribute(CAS_LOGIN_LOCALE,
site.getLanguage());
+ }
+ }
+
response.sendRedirect(getServletContext().getInitParameter(loginUrl)==null?getServletContext().getInitParameter(DEFAULT_LOGIN_URL):getServletContext().getInitParameter(loginUrl)+"?service="+HttpUtil.getWebappUri(request)+path);
log.warn("Page: not allowed to see, no login page found!");
return false;
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs