1
此Web應用程序與Shiro和JSF一起使用。我添加了PrimeFaces,並且遇到登錄重定向問題。使用PrimeFaces和JSF時Shiro重定向到錯誤的位置
預期的行爲:
- 導航到URL需要authc
- 重定向到登錄頁面
- 登錄重定向回到原來的頁面
行爲與primfaces
- 導航到網址tha T需要authc
- 重定向到登錄頁面
- 登錄重定向到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
我修改這改爲使用PassThruAuthenticationFilter
,登錄請求被我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
我覺得這是一個我問過shiro社區的bug http://shiro-user.582556.n2.nabble.com/Shiro-saves-wrong-request-when-redirecting-to-login-page-td7578098 .html –
shiro社區沒有迴應,創建了一個bug https://issues.apache.org/jira/browse/SHIRO-406 –