Non-compliance to Portlet Specification  PLT.16.3.3  cxxx and cxxxi 
(getContextPath)
------------------------------------------------------------------------------------

         Key: JS2-203
         URL: http://issues.apache.org/jira/browse/JS2-203
     Project: Jetspeed 2
        Type: Bug
  Components: Container  
    Versions: 2.0-dev/cvs, 2.0-a1, 2.0-M1    
 Environment: j2sdk.1.4.2_04, Tomcat 5.0.28
    Reporter: Ate Douma
     Fix For: 2.0-dev/cvs, 2.0-M2, 2.0-FINAL


PLT.16.3.3 Request and Response objects for Included Servlets/JSPs

cxxx:
The following methods of the HttpServletRequest must return the path and query
string information used to obtain the PortletRequestDispatcher object:
getPathInfo, getPathTranslated, getQueryString, getRequestURI and
getServletPath.

cxxxi:
The following methods of the HttpServletRequest must be equivalent to the 
methods
of the PortletRequest of similar name: getScheme, getServerName,
getServerPort, getAttribute, getAttributeNames, setAttribute,
removeAttribute, getLocale, getLocales, isSecure, getAuthType,
getContextPath, getRemoteUser, getUserPrincipal, getRequestedSessionId,
isRequestedSessionIdValid.

Of the above the cxxx as a whole and getContextPath of cxxxi are not 
implemented: 
they return information retrieved from the original HttpRequestContext of the 
Portal when run under Tomcat.

Especially for the contextPath this has a major consequence:
Within a Servlet (jsp, velocity et cetera) dispatched from a Portlet all 
relative resources and urls point
back to the Portal application.

The LoginPortlet and the ChangePasswordPortlet currently make "use" of this by 
providing href links to the user
for login and logout which point directly to Servlets within the portal (web) 
application.

Romain Bisse reported on the list having problems with this though when running 
Jetspeed-2 on WebLogic.
Initially I thought WebLogic was in violation of the specs, but after looking 
deeper at it, I discovered 
the above problem.

I'm going to implement the Portlet Specification requirements (of course) which 
also means the LoginPortlet and
ChangePasswordPortlet have to be changed to provide a correct href links for 
login and logout again.

Very important to understand for all developers is the change in behavior this 
will give (for the better I think):
- All (context) relative urls defined within a dispatched Servlet from a 
Portlet will now be relative to its real
  web application context.
- All (context) relative urls defined within such a Servlet which are expected 
to be relative to the Portal context
  will have to be redefined.

  An example for rendering an url relative to the portal context using jstl:

  <c_rt:set var="requestContext" 
value="<%=request.getAttribute(RequestContext.REQUEST_PORTALENV)%>"/>
  <c:url context="${requestContext.request.contextPath}" value="/login/logout"/>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to