ate 2004/10/17 09:18:21
Modified: portal/src/java/org/apache/jetspeed/engine/servlet
ServletRequestImpl.java
Log:
Removed isUserInRole(roleName) because it is now provided by Pluto itself (in its
PortletRequestImpl, see issue: PLUTO-46) and is conflicting with
our own implementation.
Furthermore, our implementation did a roleName/roleLink lookup from portlet.xml
definition (to be able to handle
the fact Pluto initiall didn't do it yet) which was *not* according to the specs.
The specs says HttpServletRequest.isUserInRole(roleName) "must provide the
functionality defined by the Servlet Specification 2.3" (PLT.16.3.3, cxxxvi).
This means that roleName must *only* be checked against web.xml definition, which
should be done by the ServletContainer itself (hence the removal of this method).
A less nice consequence of this is that potentially different roleNames must be used
when mixing Portlet and Servlet functionality within a PortletApplication:
the abstraction of portlet.xml:roleName->roleLink->web.xml:roleName is not available
from the HttpServletRequest.isUserInRole(roleName).
Our Role Security Test portlet did indeed *misuse* this feature by checking the
same roleName against portlet and servlet request.
I also fixed that and the portlet now again correctly shows the roles of the logged
on user.
Revision Changes Path
1.30 +1 -48
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java
Index: ServletRequestImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- ServletRequestImpl.java 15 Oct 2004 21:44:32 -0000 1.29
+++ ServletRequestImpl.java 17 Oct 2004 16:18:20 -0000 1.30
@@ -33,14 +33,9 @@
import org.apache.jetspeed.container.url.PortalURL;
import org.apache.jetspeed.request.JetspeedRequestContext;
import org.apache.jetspeed.request.RequestContext;
-import org.apache.pluto.om.common.SecurityRole;
-import org.apache.pluto.om.common.SecurityRoleRef;
-import org.apache.pluto.om.common.SecurityRoleRefSet;
-import org.apache.pluto.om.common.SecurityRoleSet;
import org.apache.pluto.om.entity.PortletApplicationEntity;
import org.apache.pluto.om.entity.PortletEntity;
import org.apache.pluto.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.om.portlet.PortletDefinition;
import org.apache.pluto.om.window.PortletWindow;
import org.apache.pluto.util.Enumerator;
import org.apache.pluto.util.NamespaceMapper;
@@ -165,48 +160,6 @@
public String[] getParameterValues( String name )
{
return (String[]) this.getParameterMap().get(name);
- }
-
- /**
- * @see javax.servlet.http.HttpServletRequest#isUserInRole(java.lang.String)
- */
- public boolean isUserInRole( String roleName )
- {
- if (roleName == null)
- {
- return false;
- }
- if (roleName.length() > 0)
- {
- PortletDefinition portletDefinition =
portletWindow.getPortletEntity().getPortletDefinition();
- SecurityRoleRefSet roleRefSet =
portletDefinition.getInitSecurityRoleRefSet();
- SecurityRoleSet roleSet =
portletDefinition.getPortletApplicationDefinition().getWebApplicationDefinition()
- .getSecurityRoles();
-
- Iterator roleRefIter = roleRefSet.iterator();
- while (roleRefIter.hasNext())
- {
- SecurityRoleRef roleRef = (SecurityRoleRef) roleRefIter.next();
- if (roleName.equals(roleRef.getRoleName()))
- {
- String roleLinkName = roleRef.getRoleLink();
- if (roleLinkName == null || roleLinkName.length() == 0)
- {
- roleLinkName = roleName;
- }
- Iterator roleIter = roleSet.iterator();
- while (roleIter.hasNext())
- {
- SecurityRole role = (SecurityRole) roleIter.next();
- if (roleLinkName.equals(role.getRoleName()))
- return super.isUserInRole(roleLinkName);
- }
- return false;
- }
-
- }
- }
- return false;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]