3

私は WS ポータルに少し慣れていないので、特定のシナリオで、ユーザーをログアウトしてデフォルトのポータル ログイン ページにリダイレクトする必要があります。セッションを無効にして Cookie をクリアし、response.sendRedirect("/wps/myportal/")のように response.sendRedirect を実行しようとしました。、しかし無駄に。ガイドしてください。

4

4 に答える 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 ポートレットを使用している場合は、次の行に沿って何かを実行できます。これにより、ユーザー セッションが実際にログアウトされ、デフォルトのログイン ページに戻るはずです。

実際には、ルックアップ コード ( 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
        }

    }
于 2013-05-21T08:32:48.353 に答える
0

Portal の標準構成では、ユーザーを/wps/portal...root の代わりに任意のページに誘導する/wps/myportal/...と、ユーザーは強制的にログアウトされ、セッションが終了します。したがって、ログイン ページのわかりやすい URL を作成して、ユーザーを次の URL にリダイレクトするだけです。/wps/portal/friendlyLoginUrl

于 2013-05-16T18:42:11.113 に答える