svn commit: r579969 - in /lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache: lenya/ac/shibboleth/ShibbolethModule.java shibboleth/impl/AssertionConsumerServiceImpl.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Thu Sep 27 03:36:50 2007
New Revision: 579969

URL: http://svn.apache.org/viewvc?rev=579969&view=rev
Log:
Code cleanup, made methods more generic

Modified:
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/AssertionConsumerServiceImpl.java

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java?rev=579969&r1=579968&r2=579969&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java Thu Sep 27 03:36:50 2007
@@ -7,19 +7,10 @@
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
-import org.apache.lenya.ac.AccessControllerResolver;
-import org.apache.lenya.ac.Policy;
-import org.apache.lenya.ac.PolicyManager;
-import org.apache.lenya.ac.impl.DefaultAccessController;
 import org.apache.lenya.cms.cocoon.components.modules.input.AbstractPageEnvelopeModule;
-import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.PageEnvelope;
-import org.apache.lenya.cms.publication.Proxy;
-import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.util.OutgoingLinkRewriter;
 import org.apache.lenya.util.ServletHelper;
 

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/AssertionConsumerServiceImpl.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/AssertionConsumerServiceImpl.java?rev=579969&r1=579968&r2=579969&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/AssertionConsumerServiceImpl.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/AssertionConsumerServiceImpl.java Thu Sep 27 03:36:50 2007
@@ -27,12 +27,15 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
+import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.environment.http.HttpEnvironment;
-import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
 import org.apache.shibboleth.AssertionConsumerService;
 import org.apache.shibboleth.ShibbolethManager;
 import org.apache.shibboleth.ShibbolethModule;
@@ -51,7 +54,9 @@
  * Assertion consumer service.
  */
 public class AssertionConsumerServiceImpl extends AbstractLogEnabled implements
-        AssertionConsumerService, Serviceable {
+        AssertionConsumerService, Serviceable, Contextualizable {
+
+    protected static final String CHARSET = "UTF-8";
 
     /**
      * Authentication Assertion requests identifier.
@@ -64,10 +69,9 @@
     private static final String SHIB_ATTR_TIME = "time";
 
     private ShibbolethModule shibbolethModule;
-
     private ServiceManager manager;
-
     private ShibbolethManager shibManager;
+    private Context context;
 
     protected ShibbolethModule getShibbolethModule() {
         if (this.shibbolethModule == null) {
@@ -109,9 +113,8 @@
      */
     protected String getCompleteUrl(HttpServletRequest req) {
         String queryString = req.getQueryString();
-        String url = req.getRequestURL().toString()
-                + (queryString.length() == 0 ? "" : "?" + queryString);
-        return url;
+        String reqUrl = req.getRequestURL().toString();
+        return reqUrl + (queryString.length() == 0 ? "" : "?" + queryString);
     }
 
     private BrowserProfileRequest getBrowserProfileRequest(HttpServletRequest req) {
@@ -225,23 +228,23 @@
                 }
             }
 
-            buffer.append(SHIB_ATTR_TARGET).append("=olat");
+            buffer.append(SHIB_ATTR_TARGET).append("=").append(
+                    URLEncoder.encode(getTarget(), CHARSET));
 
             // shire
             buffer.append("&" + SHIB_ATTR_SHIRE + "=");
-            buffer.append(URLEncoder.encode(getShireUrl(), "UTF-8"));
+            buffer.append(URLEncoder.encode(getShireUrl(), CHARSET));
 
             // providerId (if any)
             String providerId = getShibbolethModule().getProviderId();
             if (providerId != null) {
                 buffer.append("&" + SHIB_ATTR_PROVIDERID + "=");
-                buffer.append(URLEncoder.encode(providerId, "UTF-8"));
+                buffer.append(URLEncoder.encode(providerId, CHARSET));
             }
 
             // time
             buffer.append("&" + SHIB_ATTR_TIME + "=");
             buffer.append(new Long(new Date().getTime() / 1000).toString()); // Unix
-            // Time
 
             // send redirect
             return buffer.toString();
@@ -263,29 +266,27 @@
      * new RedirectMediaResource(getRequestString)); }
      */
 
+    protected String getTarget() {
+        return getShireUrl();
+    }
+
     /**
      * Return the URL to the SHIRE (that's us)
      * @param shibbolethPath The shibboleth path.
      * @return The complete SHIRE URL
      */
-    private String getShireUrl() {
-        ContextUtility ctxUtil = null;
-        try {
-            ctxUtil = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
-            Map objectModel = ctxUtil.getObjectModel();
-            HttpServletRequest req = (HttpServletRequest) objectModel
-                    .get(HttpEnvironment.HTTP_REQUEST_OBJECT);
-            return getCompleteUrl(req);
-        } catch (ServiceException e) {
-            throw new RuntimeException(e);
-        } finally {
-            if (ctxUtil != null) {
-                this.manager.release(ctxUtil);
-            }
-        }
+    protected String getShireUrl() {
+        Map objectModel = ContextHelper.getObjectModel(this.context);
+        HttpServletRequest req = (HttpServletRequest) objectModel
+                .get(HttpEnvironment.HTTP_REQUEST_OBJECT);
+        return getCompleteUrl(req);
     }
 
     public void service(ServiceManager manager) throws ServiceException {
         this.manager = manager;
+    }
+
+    public void contextualize(Context context) throws ContextException {
+        this.context = context;
     }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.