我有两页:
@AuthorizeInstantiation(Roles.ADMIN)
public class AdminPage extends BasePage {
...
@AuthorizeInstantiation(Roles.USER)
public class UserPage extends BasePage {
...
当没有任何用户登录时,他被重定向到登录页面。有没有选项如何获取重定向页面?因此,如果用户转到管理页面,则登录页面println管理页面。如果用户转到用户页面然后登录页面打印用户页面,当用户只进入登录页面然后登录页面println null
更新:
转到受保护页面时的策略
getApplicationSettings().setAccessDeniedPage(LoginPage.class);
什么不清楚?当用户想要访问UserPage或AdminPage时,他被指定为LoginPage。我想在loginPage中打印哪个页面
答案 0 :(得分:0)
我不知道它是否正是您所寻找的,但您可以查看
RestartResponseAtInterceptPageException.InterceptData.get();
InterceptData包含有关触发重定向的页面的一些信息。
答案 1 :(得分:0)
您尚未描述如何重定向到登录页面。我猜你实现了IAuthorizationStrategy和IUnauthorizedComponentInstantiationListener?在onUnauthorizedInstantiation()的实现中,您可以检查传入的Component(也就是您的页面)中存在哪个注释,并根据此传递参数到登录页面。
答案 2 :(得分:0)
好的,我明白了:
我创建了unauthorizedComponentInstantiationListener:
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);
}
}
});
并在appliaction中设置变量。
然后在登录页面中我拨打Application.getRedirectionPage()
所以我知道它是哪个页面