0

私は2つのページを持っています:

@AuthorizeInstantiation(Roles.ADMIN)
public class AdminPage extends BasePage {
...

@AuthorizeInstantiation(Roles.USER)
public class UserPage extends BasePage {
...

ログインしているユーザーがいない場合、ログインページにリダイレクトされます。リダイレクトページを取得する方法はありますか? そのため、ユーザーが管理ページにアクセスすると、ログイン ページが println 管理ページになります。ユーザーがユーザー ページに移動した場合はログイン ページ println ユーザー ページに移動し、ユーザーがログイン ページに移動した場合はログイン ページ println null

アップデート:

保護されたページに移動するときの戦略

    getApplicationSettings().setAccessDeniedPage(LoginPage.class);

何が十分に明確ではないのですか?ユーザーが UserPage または AdminPage にアクセスしようとすると、LoginPage にリダイレクトされます。そして、loginPageでどのページだったかを印刷したい

4

3 に答える 3

0

はい、分かりました:

無許可のComponentInstantiationListenerを作成します:

    getSecuritySettings().setUnauthorizedComponentInstantiationListener(
            new IUnauthorizedComponentInstantiationListener() {
                public void onUnauthorizedInstantiation(final Component component) {
                    if (component instanceof Page) {
                        // Redirect to index
                        if (component instanceof AdminPage) {
                            redirectionPage = ((AdminPage) component);
                        } else if (component instanceof BalancerPage) {
                            redirectionPage = ((UserPage) component);
                        }
                        throw new RestartResponseAtInterceptPageException(LoginPage.class);
                        // Or you can just throw the original UnauthorizedInstantiationException
                    } else {
                        component.setVisible(false);
                    }
                }
            });

アプリケーションで変数を設定します。

次に、ログインページで私が呼び出すApplication.getRedirectionPage()ので、それがどのページであったかがわかります

于 2012-09-19T09:05:44.873 に答える
0

それがまさにあなたが探しているものかどうかはわかりませんが、見てみることができます

RestartResponseAtInterceptPageException.InterceptData.get();

InterceptData には、リダイレクトをトリガーしたページに関する情報が保持されます。

于 2012-09-17T15:25:53.783 に答える
0

ログインページへのリダイレクト方法については説明していません。IAuthorizationStrategy と IUnauthorizedComponentInstantiationListener を実装していると思いますか? onUnauthorizedInstantiation() の実装では、渡されたコンポーネント (別名、ページ) に存在する注釈を確認し、これに応じてパラメーターをログイン ページに渡すことができます。

于 2012-09-18T08:49:22.443 に答える