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