我对 WS 门户有点陌生,并且有一个要求,在特定场景中,我们希望用户注销并将他重定向到默认的门户登录页面。我试图使会话无效,清除 cookie 并执行 response.sendRedirect,如response.sendRedirect("/wps/myportal/");,但徒劳无功。请指导。
问问题
4355 次
4 回答
2
您可以使用以下方式配置注销页面wp_configservice
:
redirect.logout=true
redirect.logout.ssl=false
redirect.logout.url=protocol://host_name/logout_page
配置完成后,单击标准注销会将您重定向到指定页面。
于 2013-06-09T06:19:04.783 回答
1
如果您正在使用 JSF portlet,您可以按照以下方式执行一些操作 - 这实际上应该将用户会话注销并将它们返回到默认登录页面。
实际上,您可能需要考虑通过移出查找代码来缓存初始上下文查找( Context ctx = new InitialContext(); PortletServiceHome stateMgrServiceHome = (PortletServiceHome) ctx.lookup("portletservice/com.ibm.portal.state.服务.PortletStateManagerService");)
public void doLogOut()
{
String logoutUrl = generateLogoutURL(getPortletRequest(), getPortletResponse());
redirectToUrl(logoutUrl);
}
public String generateLogoutURL(PortletRequest request, PortletResponse response) throws RpmPortalException {
final String methodName = "generateLogoutURL";
String logoutURL = "";
Context ctx = new InitialContext();
PortletServiceHome stateMgrServiceHome = (PortletServiceHome) ctx.lookup("portletservice/com.ibm.portal.state.service.PortletStateManagerService");
PortletStateManager stateMgr = null;
LogoutActionAccessorController logoutCtrl = null;
try {
stateMgr = stateMgrService.getPortletStateManager(request, response);
final URLFactory urlFactory = stateMgr.getURLFactory();
EngineURL url = urlFactory.newURL(null);
LogoutActionAccessorFactory logoutFct = (LogoutActionAccessorFactory) stateMgr.getAccessorFactory(LogoutActionAccessorFactory.class);
logoutCtrl = logoutFct.newLogoutActionController(url.getState());
logoutURL = url.writeDispose(new StringWriter()).toString();
} catch (StateException e) {
//do whatever you want
} catch (IOException e) {
//do whatever you want
} finally {
if (stateMgr != null) {
stateMgr.dispose();
}
if (logoutCtrl != null) {
logoutCtrl.dispose();
}
}
return logoutURL;
}
public void redirectToUrl(String url) {
try {
FacesContext context = getFacesContext();
if (context != null) {
context.getExternalContext().redirect(url);
context.responseComplete();
}
} catch (IOException e) {
//Do whatever you want
}
}
于 2013-05-21T08:32:48.353 回答
0
只是对zargarf所说的补充,默认情况下,单击注销时会执行以下js,如下所述:
javascript:if(stproxy && stproxy.isLoggedIn){stproxy.login.logout();}
于 2013-05-31T11:19:36.917 回答
0
在 Portal 的标准配置中,将用户定向到以/wps/portal...
root 身份而不是的任何页面/wps/myportal/...
将强制用户注销并结束会话。所以你可以为你的登录页面创建一个友好的 URL 并将用户重定向到/wps/portal/friendlyLoginUrl
于 2013-05-16T18:42:11.113 回答