如何在Liferay portlet中设置Cookie?

如何在Liferay portlet中设置Cookie?,第1张

概述我在尝试在Liferay 6.0 portlet中设置会话cookie时遇到问题.我希望能够将cookie设置到客户端浏览器以存储用于linkedin身份验证的应用程序密钥,然后可以由其他portlet检索它. 我可以使用以下内容读取cookie: public void addLinkedInCV(ActionRequest request, ActionResponse response) 我在尝试在liferay 6.0 portlet中设置会话cookie时遇到问题.我希望能够将cookie设置到客户端浏览器以存储用于linkedin身份验证的应用程序密钥,然后可以由其他portlet检索它.

我可以使用以下内容读取cookie:

public voID addlinkedInCV(ActionRequest request,ActionResponse response)        throws PortalException,SystemException {    httpServletRequest convertReq = PortalUtil.gethttpServletRequest(request);    cookie[] cookies = convertReq.getcookies();    ...}

这是我尝试阅读一个失败的尝试.

@OverrIDepublic voID doVIEw(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException,PortletException {    httpServletResponse convertRes = PortalUtil.gethttpServletResponse(renderResponse);    httpServletResponse originalRes = (httpServletResponse) ((httpServletResponseWrapper) convertRes).getResponse();    cookie linkedIncookie = new cookie("linkedIn",util.getAppKey());    originalRes.addcookie(linkedIncookie);}
解决方法 在没有大量修改liferay门户本身的情况下,我发现设置portlet cookie的唯一方法是让portlet生成一个JavaScript,然后让客户端设置cookie.

所以我在doVIEw方法中添加了以下内容.

if (renderRequest.getPortletSession(true).getAttribute("set_cookie")!=null){    return;}String cookie_value = renderRequest.getPortletSession(true).getID();String cookie_hours = "6";StringBuffer buf = new StringBuffer();buf.append("\n <script>");buf.append("\n var today = new Date();");buf.append("\n var expires_date = new Date ( today.getTime() + (" + cookie_hours + "*1000*60*60) );");buf.append("\n document.cookie = \"linkedIn=" + util.getAppKey() + ";expires=\"+expires_date.toGMTString();");    buf.append("\n </script>");renderResponse.setContentType("text/HTML");PrintWriter out = renderResponse.getWriter();out.println(buf.toString());renderRequest.getPortletSession(true).setAttribute(SET_cookie,cookie_value);

虽然不是最佳的,但仍然是一种有效的解决方案;)

总结

以上是内存溢出为你收集整理的如何在Liferay portlet中设置Cookie?全部内容,希望文章能够帮你解决如何在Liferay portlet中设置Cookie?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1106755.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存