この Web アプリケーションは、Shiro と JSF で動作します。PrimeFaces を追加しましたが、ログイン リダイレクトの問題が発生しています。
予想される動作:
- 認証が必要な URL に移動します
- ログインページにリダイレクト
- ログインは元のページにリダイレクトされました
primfaces での動作
- 認証が必要な 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
代わりに a を使用するようにこれを変更しPassThruAuthenticationFilter
、ログイン要求は 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