0

У нас есть веб-приложение, основанное на Spring Framework 3.2.x (3.2.12-RELEASE в данный момент) и Spring Security 3.2.x (т.е. 3.2.5-RELEASE)Spring Session и Spring Security (3.2.X RELEASE)

Безопасность осуществляется с классический Весна подход. В web.xml мы загружаем ApplicationContext и springSecurityFilterChain

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     classpath*:META-INF/spring/applicationContext*.xml 
    </param-value> 
</context-param> 
... 
    <filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

С изменением требований, мы пытаемся исследовать о том, как разрешить различные HttpSessions за вкладку (или окно) в одном браузере: в этом случае один и тот же физический пользователь может войти в приложение, используя два отдельных приложения-пользователя.

Я могу понять, что это невозможно с использованием подхода JSESSIONID cookie. Я пытаюсь использовать Spring Session (Spring Session and Spring Security и Spring Session Multiple Session), но я не могу справиться с этим, столкнувшись с трудностями при смешивании моей конфигурации XML с подходом JavaConfig, показанным ранее в ссылках, Tomcat даже не запускается с большим количеством ошибок.

Я новичок в микшировании XML и JavaConfig, так что .. кто-нибудь может дать мне подсказку о том, как продолжить сеанс Spring?

Есть ли другие способы выполнить мое требование?

ответ

0

Проект Spring Session фактически содержит несколько sample projects, которые демонстрируют использование с конфигурацией Spring XML. Посмотрите на образцы с суффиксом -xml в имени образца.

Вообще говоря, вам необходимо вручную зарегистрировать @Configuration класс как @Bean. Например, если вы хотите использовать Spring Session, поддерживаемый Redis, зарегистрируйте RedisHttpSessionConfiguration. Вы найдете правильный класс @Configuration, который будет использоваться, посмотрев соответствующую аннотацию @Enable*HttpSession (в данном случае @EnableRedisHttpSession) и определяя, какой класс импортируется через аннотацию @Import.