作为liferay/portal/portlet开发的新手段,您每天都会遇到问题。现在我试图从一个portlet注销,但还没有找到一种方法来实现它。你应该怎么做?我应该尝试发送某种注销事件还是什么?在Liferay资源中徘徊我发现了一个LogoutAction.java,看起来很有前途,但是如何触发它呢?从liferay portlet触发注销
最好问候安德斯奥姆
作为liferay/portal/portlet开发的新手段,您每天都会遇到问题。现在我试图从一个portlet注销,但还没有找到一种方法来实现它。你应该怎么做?我应该尝试发送某种注销事件还是什么?在Liferay资源中徘徊我发现了一个LogoutAction.java,看起来很有前途,但是如何触发它呢?从liferay portlet触发注销
最好问候安德斯奥姆
尝试actionResponse.sendRedirect( “/ C /门/注销”)
sendRedirect仅在ActionResponse上,而不在RenderResponse或ResourceResponse上。 – 2012-05-04 16:56:10
您可以创建一个注销链接到Liferay的内部注销功能像这样在你的JSP:
<%@page import="com.liferay.portal.util.PortalUtil"%>
.
.
<a href="<%= PortalUtil.getPortalURL(request) %>/c/portal/logout">Log Out</a>
2之后-3天的调查,我实现了与Ajax调用登录和注销。注销它并不像调用session.invalidate()那么简单,但只需要配置一点点。我会写我如何实现这一点:
首先编写portal-ext.properties并添加此行: session.enable.phishing.protection =假
然后在所有你的Portlet您必须设置private-session-attributes为false。订购是重要的,所以我会告诉你的地雷:
<portlet>
<portlet-name>home</portlet-name>
<icon>/icon.png</icon>
<instanceable>false</instanceable>
<private-session-attributes>false</private-session-attributes>
<header-portlet-css>/css/main.css</header-portlet-css>
<footer-portlet-javascript>/js/home.js</footer-portlet-javascript>
<css-class-wrapper>home-portlet</css-class-wrapper>
</portlet>
一旦这样做了,其余的很简单。对于日志中:
public static void login(ResourceRequest request,ResourceResponse response, String liferayUser, String liferayPassword) throws Exception{
MethodKey key = new MethodKey("com.liferay.portlet.login.util.LoginUtil", "login", HttpServletRequest.class, HttpServletResponse.class, String.class, String.class, boolean.class, String.class);
PortalClassInvoker.invoke(false, key, new Object[] { PortalUtil.getHttpServletRequest(request), PortalUtil.getHttpServletResponse(response), liferayUser, liferayPassword, false, null});
}
而对于注销:
public static void logout(ResourceRequest resourceRequest) throws Exception{
HttpServletRequest request = PortalUtil.getHttpServletRequest(resourceRequest);
request.getSession().invalidate();
}
我用ResourceRequest因为我是做Ajax调用。唯一的“问题”是,如果您登录并且想要注销&登录其他用户,您必须执行2次ajax调用(第二次从第一次调用返回)。
你为什么不呈现常规的注销链接? – ewernli 2010-06-18 12:52:26
我必须从我的一个bean中触发注销。 – Buzzzz 2010-06-18 14:35:46
但是你能从portlet bean获得这样的URL吗? – Buzzzz 2010-06-18 14:43:46