我对WS门户网站有点新手有一个要求,其中在特定场景中我们希望用户注销&将他重定向到默认门户登录页面。 我试图使会话无效清除Cookie&像 response.sendRedirect(“/ wps / myportal /”)一样执行response.sendRedirect; , 但是徒劳无功 请指导。
答案 0 :(得分:2)
您可以使用wp_configservice
配置注销页面:
redirect.logout=true
redirect.logout.ssl=false
redirect.logout.url=protocol://host_name/logout_page
配置完成后,单击标准注销会将您重定向到指定的页面。
答案 1 :(得分:1)
如果您正在使用JSF portlet,您可以按照以下方式执行某些操作 - 这实际上应该记录用户会话以及将它们返回到默认登录页面。
实际上,你可能想要考虑通过移出查找代码来缓存初始上下文查找(Context ctx = new InitialContext(); PortletServiceHome stateMgrServiceHome =(PortletServiceHome)ctx.lookup(“portletservice / com.ibm.portal.state.service.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
}
}
答案 2 :(得分:0)
在Portal的标准配置中,将用户定向到以/wps/portal...
作为根而不是/wps/myportal/...
的任何页面将强制用户注销并结束会话。因此,您只需为登录页面创建一个友好的URL,并将用户重定向到/wps/portal/friendlyLoginUrl
答案 3 :(得分:0)
只是zargarf所说的一个补充,默认情况下,点击退出时会执行以下js:
javascript:if(stproxy && stproxy.isLoggedIn){stproxy.login.logout();}