cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Francesco Chicchiricco (JIRA)" <j...@apache.org>
Subject [jira] Updated: (COCOON-2072) JSR.168 Portlet-aware CookieModule
Date Sat, 20 Feb 2010 14:58:28 GMT

     [ https://issues.apache.org/jira/browse/COCOON-2072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Francesco Chicchiricco updated COCOON-2072:
-------------------------------------------

          Description: 
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.

See attached a simple org.apache.cocoon.components.modules.input.CookieModule extension that
can handle all that above, providing cookie access to portlets.


  was:
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;
	}

}

    Affects Version/s: 2.1.11

> 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.
> See attached a simple org.apache.cocoon.components.modules.input.CookieModule extension
that can handle all that above, providing cookie access to portlets.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message