【发布时间】:2011-05-29 06:14:53
【问题描述】:
我正在做一个增量 JSP --> Wicket 迁移。我保留了 JSP 应用程序并逐页迁移。我可以从 JSP wicket pages 返回并返回。但我的问题是在 JSP 中,我登录的用户凭据存储在 Bean (UserBean,scope:session) 中,并在每个页面上的 JSP 中检查登录用户豆子。
但是我怎样才能在检票口中获取这些信息?这样如果用户登录,从我的 JSP 页面,在检票页面加载时,它可以读取并设置用户信息,这样我的检票登录页面就不会出现。
我的检票口页面使用 wicket-auth-role 并检查:
@AuthorizeInstantiation("ADMIN") public class HomePage extends BasePage {.....}
我在检票口中有自己的 UserDetailsServcice 和 MyAuthenticationWebSession。
经过 Don Roby 的一些尝试和帮助,我在这里从检票口中的会话中获得了用户 ID:
final RequestCycle requestCycle = RequestCycle.get();
WebRequest wr=(WebRequest)requestCycle.getRequest();
HttpServletRequest hsr= wr.getHttpServletRequest();
AuthenticatedWebSession session = OrbitWebSession.get();
String username = (String)hsr.getSession().getAttribute("SessionUser");
现在,我究竟可以在哪里设置用户名、密码和调用身份验证,以便我的页面不会重定向到登录页面?谁调用 authenticate() 方法以及如何调用?我在我的安全页面上尝试了 onBeforeRender() 方法,但它不起作用。 :(
【问题讨论】: