Я могу найти множество примеров, которые показывают, как настроить URL-адрес для использования фильтра authc, но я не могу найти примеры простой страницы входа, которая была бы уместна. Я использую интеграцию Spring с Shiro, но не думаю, что это как-то связано с моей проблемой.
После прочтения документации я настроил свою фабрику фильтров следующим образом:
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="loginUrl" value="/login.jsp" />
<property name="successUrl" value="/Reports.jsp" />
<property name="securityManager" ref="securityManager" />
<property name="filterChainDefinitionMap">
<map>
<entry key="/ws/**" value="authc" />
<entry key="/Reports.jsp" value="authc" />
<entry key="/**" value="anon" />
</map>
</property>
</bean>
Я избавлю вас от всего XML-файла. Я могу сказать, что он выбирает правильный фильтр, потому что, когда я делаю это:
> curl -v localhost:8080/factorlab-web/Reports.jsp
Я получаю этот ответ:
< HTTP/1.1 302 Found
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Set-Cookie: JSESSIONID=19gdgnmukynb3;Path=/factorlab-web
< Location: http://localhost:8080/factorlab-web/login.jsp;jsessionid=19gdgnmukynb3
< Content-Length: 0
< Server: Jetty(6.1.21)
<
Пока все хорошо, верно? Однако, если я отправлю имя пользователя и пароль, я должен получить содержимое Reports.jsp, верно? Я не. Если я сделаю это:
* curl -v -d "username = demo & password = demo & RememberMe = false" http://localhost:8080/factorlab-web/Reports.jsp
Я получаю тот же ответ, что и раньше:
< HTTP/1.1 302 Found
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Set-Cookie: JSESSIONID=qnidg37bqo9f;Path=/factorlab-web
< Location: http://localhost:8080/factorlab-web/login.jsp;jsessionid=qnidg37bqo9f
< Content-Length: 0
< Server: Jetty(6.1.21)
<
Очевидно, я запутался ни в конфигурации, ни в том, как она должна работать. Во-первых, кто-нибудь может сказать мне, что я должен ожидать от второй команды curl, или почему я не вижу того, что ожидаю?
Во-вторых, есть ли небольшой пример с login.jsp (или аналогичным), где я мог видеть, что происходит, когда пользователь:
* Заходит явно на страницу входа
* Направляется автоматически на страницу входа (например, вход в систему возвращает вас на исходную страницу попыток).
* Отправляет неверное имя пользователя и пароль со страницы входа.