此 Web 应用程序可与 Shiro 和 JSF 一起使用。我添加了 PrimeFaces,但我遇到了登录重定向问题。
预期行为:
- 导航到需要 authc 的 url
- 重定向到登录页面
- 登录重定向回原来的页面
primfaces 的行为
- 导航到需要 authc 的 url
- 重定向到登录页面
- 登录后重定向到 javax.faces.resource/theme.css?ln=primefaces-aristo
我通过在我的shiro.ini
文件中捕获请求参数来登录用户
# name of request parameter with username; if not present filter assumes 'username'
authc.usernameParam = login:username
# name of request parameter with password; if not present filter assumes 'password'
authc.passwordParam = login:password
# does the user wish to be remembered?; if not present filter assumes 'rememberMe'
authc.rememberMeParam = login:remembered
我将其修改为使用 aPassThruAuthenticationFilter
并且登录请求由 my 处理,Bean
但这仍然会产生相同的错误。bean登录方法
AuthenticationToken token = new UsernamePasswordToken(username, password);
Subject currentUser = SecurityUtils.getSubject();
currentUser.login(token);
ServletRequest request = (ServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
ServletResponse response = (ServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
WebUtils.redirectToSavedRequest(request, response, "index.xhtml");
我的登录 Bean 是@RequestScoped