Я новичок в Spring Security, поэтому я сделал небольшой webapp, чтобы попробовать его и найти конфигурацию, которая будет полезна для проекта, над которым я работаю. Я принуждая мою страницу входа в систему, чтобы получить доступ через HTTPS, и мне нужно, чтобы вернуться к HTTP после входа в систему Другими словами.Spring Security 3.1.0 - Невозможно переключиться с HTTPS на HTTP
- Войти страница: HTTPS только
- Другие страницы: HTTP только
Я пробовал несколько способов, но я не могу заставить его работать, как я сказал выше. Я читал Spring Security FAQ, и я вижу, что нет «естественного» способа делать то, что я хочу, но меня попросили сделать это, поэтому мне нужно обходное решение, которое я не могу найти сам.
Я использую Spring Security 3.1.0. Мой веб-контейнер Tomcat 6.0.33.
Это моя конфигурация Spring Security:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sec="http://www.springframework.org/schema/security"
xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<sec:http auto-config="true" use-expressions="true">
<sec:intercept-url pattern="/log*.htm" access="anonymous"
requires-channel="https" />
<sec:intercept-url pattern="/admin/**" access="hasRole('admin')"
requires-channel="http" />
<sec:intercept-url pattern="/**"
requires-channel="http" access="hasRole('authenticated')" />
<sec:form-login login-page="/login.htm"
default-target-url="/index.htm" authentication-failure-url="/login.htm?error=true"
always-use-default-target="true" />
<sec:logout logout-url="/logout.htm" delete-cookies="JSESSIONID" invalidate-session="true" />
<sec:anonymous/>
<sec:remember-me use-secure-cookie="true" />
</sec:http>
<sec:authentication-manager>
<sec:authentication-provider>
<sec:user-service>
<sec:user name="johnny" password="johnny" authorities="authenticated, admin" />
<sec:user name="charlie" password="charlie"
authorities="authenticated" />
</sec:user-service>
</sec:authentication-provider>
</sec:authentication-manager>
</beans>
Любая помощь будет оценена. Спасибо заранее!
Считается, что это не рекомендуется; он позволяет украсть сессионный файл cookie, стиль Firesheep. –
Да, я знаю, что это не правильное решение, но я также думаю, что это зависит от типа приложения, которое вы строите, и от нагрузки на сервер, которую вы допустили бы. К сожалению, в этом случае меня попросили сделать это по некоторым (темным) причинам. В любом случае, спасибо за ваш комментарий, мы не должны забывать, что этот подход весьма уязвим. – nomusicnolife