Author: kevinshen
Date: 2010-01-22 07:56:40 +0100 (Fri, 22 Jan 2010)
New Revision: 40683
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/SecureUtil.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 06:54:18 UTC (rev 40682)
+++
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecurePortalServlet.java
2010-01-22 06:56:40 UTC (rev 40683)
@@ -28,6 +28,10 @@
protected boolean doRender(HttpServletRequest request,
HttpServletResponse response, String path) throws
IOException {
+ String useSSO = SecureUtil.getEnvironment("useSSO");
+ if(useSSO == null || "false".equalsIgnoreCase(useSSO)) {
+ return super.doRender(request, response, path);
+ }
NavigationItem item =
SiteManagement.getNavigationItemFromPath(path);
if (SecureUtil.isAllowedToSee(item)) {
log.debug("Page: allowed to see");
Modified:
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecureUtil.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecureUtil.java
2010-01-22 06:54:18 UTC (rev 40682)
+++
CMSContainer/trunk/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/SecureUtil.java
2010-01-22 06:56:40 UTC (rev 40683)
@@ -1,7 +1,14 @@
package com.finalist.cmsc.portalImpl;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
+import org.apache.log4j.Logger;
import org.mmbase.bridge.Cloud;
import org.mmbase.bridge.Node;
import org.mmbase.bridge.NodeIterator;
@@ -11,15 +18,15 @@
import com.finalist.cmsc.services.community.Community;
public class SecureUtil {
-
+ private static final Logger log = Logger.getLogger(SecureUtil.class);
+
public static boolean isAllowedToSee(NavigationItem item) {
Cloud cloud =
CloudProviderFactory.getCloudProvider().getCloud();
Node node = cloud.getNode(item.getId());
NodeList groups = node.getRelatedNodes("pagegroup");
if(groups.size() == 0) {
return true;
- }
-
+ }
for(NodeIterator i = groups.nodeIterator(); i.hasNext(); ) {
Node group = i.nextNode();
if(Community.hasAuthority(group.getStringValue("name"))) {
@@ -28,4 +35,30 @@
}
return false;
}
+ public static String getEnvironment(String name) {
+ String value = null;
+ Context env = null;
+ Context context = null;
+ try {
+ context = new InitialContext();
+ env = (Context) context.lookup("java:comp/env");
+ }
+ catch (NamingException e) {
+ log.error("Get env error"+e);
+ }
+ try {
+ if(env != null) {
+ Map<?, ?> environment = env.getEnvironment();
+ if (environment != null) {
+ value = (String) environment.get(name);
+ }
+ if (value == null) {
+ value = (String) env.lookup(name);
+ }
+ }
+ } catch (NamingException e) {
+ log.error("Get environment "+name+" error :"+e);
+ }
+ return value;
+ }
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs