Почему [anon] фильтр Apache Shiro не работает правильно? - PullRequest
0 голосов
/ 23 сентября 2018

Я пытался использовать аутентификацию с Apache Shiro в моем проекте, но безуспешно.Я не могу понять, где проблема.Мне нужно только, чтобы тот, кто пользуется страницей /pages/principal/products.xhtml напрямую, выбирал продукт для покупки и затем перенаправлялся в /purchase.xhtml для завершения покупки, но в моем случае все запросы, которые я пробую, перенаправляются на/login.xhtml page.У кого-нибудь есть предложения?код ниже.спасибо!

shiro.ini    
[main]
authc.loginUrl = /login.xhtml
authc.successUrl = /index.xhtml

[users]
admin@faces.com = adminfaces, admin
user@faces.com = user, customer


[roles]
admin = *
customer = purchases

[urls]

/index.xhtml = anon
/pages/principal/products = anon
/login.xhtml = authc
/javax.faces.resource/** = anon
/logout = logout
/pages/purchase/** = authc
/protected/** = authc, roles[admin]

web.xml

...
<listener>
    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener
    </listener-class>
</listener>

<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
...

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Я смог решить мою проблему.Я использую сейчас Redhat решение PicketLink.Он использует свободный язык Java для настройки безопасных путей и имеет более низкую кривую обучения.Я считаю Apache Shiro отличным API для безопасности, но у меня есть немного времени, чтобы изучить его.спасибо за вашу помощь @Brian Demers.

0 голосов
/ 24 сентября 2018

Полагаю, вам нужно изменить строку: /pages/principal/products = anon на /pages/principal/products.xhtml = anon

Вы также можете использовать разрешающий фильтр тоже

...