2016-03-29 17 views
0

Kullanıcı oturumunu uygulama seviyesinden bir Redis örneğine taşımayı düşünüyorum. Belgelere (http://docs.spring.io/spring-session/docs/current/reference/html5/#httpsession) göre doğru bir şekilde kurulmuş her şeye sahibim, ama beklediğim davranışları görmüyorum ve bir adımı atladığımı düşünüyorum.Spring Sessions HttpSession tamamen değiştirilemiyor JSESSIONID

uygulama şu anda HttpSession kullanır, bu yüzden sadece bağlamda aşağıdaki eklendi:

<context:annotation-config/> 
<util:constant static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/> 
<beans:bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/> 
<beans:bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="HOSTNAME" p:port="6379" /> 

Eklendi web.xml''deki için aşağıdaki:

<filter> 
    <filter-name>springSessionRepositoryFilter</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSessionRepositoryFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

uygulama oluşturur, dağıtır ve yükler sayfa iyi, ancak sayfadaki çerezlere baktığımda hem JSESSIONID hem de SESSION var. Bildiğim JSESSIONID, Spring Security tarafından kullanılıyor ve SESSION'un Spring Session tarafından kullanıldığı anlaşılıyor. Redis içine baktığımda, saklanmakta olan SESSION gibi görünüyor.

Başka bir sorun, oturumda (session.setAttribute kullanılarak eklenen) özel oturum nesnelerinin gösterilmemesidir. Oturumda görünen tek şey, oturum açmaya başladığında ve SPRING_SECURITY_CONTEXT nesnesidir. Bahar Oturumu filtresini kaldırdığımda, bu nesneler oturuma eklenir.

Bu normal davranış mı, yoksa kurulumumdan dolayı garip bir çakışma var mı?

+0

https://stackoverflow.com/questions/44303504/spring-session-unable-save-session-to-redis –

cevap

2

Aynı sorunu yaşadım ve sonuçta web.xml adresimde bildirilen yanlış filtrelerin sonucu ortaya çıktı. İsteğin geçtiği ilk filtre, yanıtta JSESSIONID çerezini ayarlayan yaylı güvenlik filtresiydi ve daha sonra yay oturum havuz filtresi kendi SESSION çerezini ayarlayarak devreye giriyordu. Siparişi değiştirdikten sonra, ilkbahar oturumu deposu filtresi ilk önce eylemini gerçekleştirir, her şey iyi çalışır.

+0

Sorun olarak doğrulandı. Teşekkürler! – Dave4988

+0

https://stackoverflow.com/questions/44303504/spring-session-unable-save-session-to-redis –

+0

hayatımı kurtardı :) teşekkürler – MarianP

İlgili konular