You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Francesco Chicchiricco (JIRA)" <ji...@apache.org> on 2010/02/20 15:58:28 UTC
[jira] Updated: (COCOON-2072) JSR.168 Portlet-aware CookieModule
[ https://issues.apache.org/jira/browse/COCOON-2072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Francesco Chicchiricco updated COCOON-2072:
-------------------------------------------
Attachment: PortletAwareCookieModule.java
> JSR.168 Portlet-aware CookieModule
> ----------------------------------
>
> Key: COCOON-2072
> URL: https://issues.apache.org/jira/browse/COCOON-2072
> Project: Cocoon
> Issue Type: Improvement
> Components: Blocks: Portal
> Affects Versions: 2.1.11
> Reporter: Francesco Chicchiricco
> Attachments: PortletAwareCookieModule.java
>
>
> A FAQ here: http://wiki.java.net/bin/view/Portlet/JSR168FAQ#Is_there_a_hack_to_get_set_cooki says that some JSR-168 containers provide their javax.portlet.PortletRequest implementation with cookies, even thought embedded in a string.
> Looking at sources of Jakarta Pluto (org.apache.pluto.internal.impl.PortletRequestImpl) and Sun's Open Portal - free version of Sun JES Portal Server - (com.sun.portal.portlet.impl.PortletRequestImpl), I found that this is true for both.
> So, I wrote a simple org.apache.cocoon.components.modules.input.CookieModule extension that can handle all that above, providing cookie access to portlets:
> Here's the code:
> public class PortletAwareCookieModule extends CookieModule {
> final protected String COOKIE = "cookie";
> @Override
> protected Map getCookieMap(Map objectModel) {
> if (!objectModel.containsKey(PortletObjectModelHelper.PORTLET_REQUEST_OBJECT))
> return super.getCookieMap(objectModel);
> PortletRequest portletRequest =
> PortletObjectModelHelper.getPortletRequest(objectModel);
> String cookieList = portletRequest.getProperty(COOKIE);
> StringTokenizer cookieTok = new StringTokenizer(cookieList,
> ";");
> String[] cookieParts = null;
> Map<String, HttpCookie> cookieMap = new HashMap<String, HttpCookie>();
> while (cookieTok.hasMoreTokens()) {
> cookieParts = cookieTok.nextToken()
> .trim()
> .split("=");
> cookieMap.put(cookieParts[0],
> new HttpCookie(cookieParts[0],
> cookieParts[1]));
> }
> return cookieMap;
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.