Spring security sessionIdをヘッダに配置し、共有セッションの問題を解決

724 ワード

現在、分散システムでは、redisを共有セッションとして使用しています.現在システムはspring securityを使用しており、ユーザーがログインした後、sessionIdでログインを保証する方法は以下の通りです.
@Configuration
//maxInactiveIntervalInSeconds session    ,   
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 600)
public class RedisSessionConfig {
    //      ,            ,       
    @Bean
    public static ConfigureRedisAction configureRedisAction() {
        return ConfigureRedisAction.NO_OP;
    }
    //session  ,      Header  (   Header,Cookie   )
    @Bean
    public HttpSessionStrategy httpSessionStrategy() {
        return new HeaderHttpSessionStrategy();
    }
}

コードから重要なのは、sessionIdがヘッダに存在し、keyがx-auth-tokenであれば呼び出しの正確性を保証できることを定義するHeaderHttpSessionStrategyです.