私は、アプリケーションレベルからRedisインスタンスへのユーザーセッションの移動を検討しています。私はドキュメント(http://docs.spring.io/spring-session/docs/current/reference/html5/#httpsession)に従ってすべてが正しくセットアップされていると信じていますが、私は予想していた動作を見ていないし、どこかのステップを逃したと思っています。SpringセッションHttpSessionがJSESSIONIDを完全に置き換えることができません
アプリケーションは、現在のHttpSessionを使用していますので、私は単にコンテキストに次を追加しました:
<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" />
はweb.xmlに以下を追加しました:
<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>
をアプリケーションは、ビルドを展開、およびロードページはうまくいきますが、ページのクッキーを見るとJSESSIONIDとSESSIONの両方があります。私が知っているJSESSIONIDはSpring Securityによって使用されており、SpringセッションでSESSIONが使用されているようです。私がredisを見ると、SESSIONが格納されているように見えます。
別の問題は、カスタムセッションオブジェクト(session.setAttributeを使用して追加)がセッションに表示されないということです。セッションで表示されるのはログイン後のものだけで、SPRING_SECURITY_CONTEXTオブジェクトです。春のセッションフィルタを削除すると、これらのオブジェクトがセッションに正しく追加されます。
これは正常な動作ですか、設定が間違っていますか?
https://stackoverflow.com/questions/44303504/spring-session-unable-save-session-to-redis –