Как использовать разные несанкционированные url для разных ролей в apache shiro
Я пытался назначить разные несанкционированные url-адреса для разных ролей в разделе url-адресов shiro.ini файл для веб-приложения, но, кажется, я не в состоянии сделать это.Ниже приведен код, который я пробовал.
Широ.ini-файл
[main]
authc1 = org.apache.shiro.web.filter.authc.FormAuthenticationFilter
authc2 = org.apache.shiro.web.filter.authc.FormAuthenticationFilter
authc1.loginUrl = /login.xhtml
authc2.loginUrl = /secLoginPage.xhtml
[urls]
/login.xhtml = authc1
/secLoginPage.xhtml = authc2
/testapp/** = authc1, roles[admin,unauthorizedUrl=/adminAuthPage.xhtml]
/userfld/**=authc2,roles[user,unauthorizedUrl=/abortPage.xhtml]
/** = authc1
/** = authc2
После входа в приложение его перенаправление на авторизованную страницу с ошибкой Error 401: SRVE0295E: Error reported: 401
.
Эта ошибка возникла после добавления unauthorizedUrl=/adminAuthPage.xhtml
.
Если есть какие-либо ошибки в коде, пожалуйста, предложите.
2 ответа:
Как насчет того, чтобы вы сделали единственную несанкционированную страницу, которая действует как точка входа, теперь на его странице перенаправление на требуемые страницы
[2]}403.jsp<shiro:hasRole name="admin"> <c:redirect url="adminAuthPage.xhtml"/> </shiro:hasRole> <shiro:hasRole name="user"> <c:redirect url="abortPage.xhtml"/> </shiro:hasRole>
Или лучше, если вы просто хотите, чтобы у администратора была другая страница, тогда
<shiro:hasRole name="admin"> <c:redirect url="adminAuthPage.xhtml"/> </shiro:hasRole> <shiro:lacksRole name="admin"> <c:redirect url="abortPage.xhtml"/> </shiro:lacksRole>
Я не думаю, что это так, как это должно быть сделано, вы в основном хотите добавить разрешение внутри ролей.
Http://shiro.apache.org/web.html
Это
/testapp/** = authc1, роли [admin, unauthorizedUrl= / adminAuthPage.xhtml]
Должно быть:
/testapp/* * = authc1, роли [admin], perms ["admin::"]