You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2009/04/29 22:44:27 UTC

svn commit: r769919 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/login/filter/ components/jetspeed-portal/src/main/ja...

Author: ate
Date: Wed Apr 29 20:44:27 2009
New Revision: 769919

URL: http://svn.apache.org/viewvc?rev=769919&view=rev
Log:
JS2-984: Jetspeed 2.2 Validation on Websphere 6.1
Adding a new ContainerRequiredRequestResponseWrapper marker interface to protect against too aggressive request unwrapping as done before a Portlet is invoked.
This was causing authentication state (UserPrincipal) as setup by the PortalFilter with the PortalRequestWrapper to get "lost" for invoked portlets.

Added:
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java   (with props)
Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/login/filter/PortalRequestWrapper.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/PortalRequest.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java?rev=769919&r1=769918&r2=769919&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java Wed Apr 29 20:44:27 2009
@@ -34,7 +34,7 @@
     public ServletRequest unwrapContainerRequest(HttpServletRequest containerRequest)
     {
         ServletRequest request = containerRequest;
-        while (request instanceof HttpServletRequestWrapper)
+        while (request instanceof HttpServletRequestWrapper && !(request instanceof ContainerRequiredRequestResponseWrapper))
         {
             request = ((HttpServletRequestWrapper)request).getRequest();
         }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/login/filter/PortalRequestWrapper.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/login/filter/PortalRequestWrapper.java?rev=769919&r1=769918&r2=769919&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/login/filter/PortalRequestWrapper.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/login/filter/PortalRequestWrapper.java Wed Apr 29 20:44:27 2009
@@ -22,10 +22,11 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 
+import org.apache.jetspeed.container.invoker.ContainerRequiredRequestResponseWrapper;
 import org.apache.jetspeed.security.Role;
 import org.apache.jetspeed.security.SubjectHelper;
 
-public class PortalRequestWrapper extends HttpServletRequestWrapper
+public class PortalRequestWrapper extends HttpServletRequestWrapper implements ContainerRequiredRequestResponseWrapper
 {
     private Principal userPrincipal = null;
     private Subject subject ;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/PortalRequest.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/PortalRequest.java?rev=769919&r1=769918&r2=769919&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/PortalRequest.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/PortalRequest.java Wed Apr 29 20:44:27 2009
@@ -20,6 +20,8 @@
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpSession;
 
+import org.apache.jetspeed.container.invoker.ContainerRequiredRequestResponseWrapper;
+
 /**
  * PortalRequest wraps the original request to the portal and keeps local
  * references to properties like contextPath, servletPath and the Session
@@ -44,7 +46,7 @@
  * @author <a href="mailto:ate@douma.nu">Ate Douma</a>
  * @version $Id$
  */
-public class PortalRequest extends HttpServletRequestWrapper
+public class PortalRequest extends HttpServletRequestWrapper implements ContainerRequiredRequestResponseWrapper
 {
     private final String      contextPath;
     private final String      servletPath;

Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java?rev=769919&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java Wed Apr 29 20:44:27 2009
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.container.invoker;
+
+/**
+ * The PortalRequiredRequestWrapper is a marker interface to be implemented by
+ * a Portal specific HttpServletRequestWrapper or HttpServletResponseWrapper
+ * to protect against being "unwrapped" before a Portlet dispatch call
+ * 
+ * @see ContainerRequestResponseUnwrapperr
+ * @version $Id$
+ */
+public interface ContainerRequiredRequestResponseWrapper
+{
+}

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/invoker/ContainerRequiredRequestResponseWrapper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org