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

Reply via email to