Spring security sessionIdをヘッダに配置し、共有セッションの問題を解決
724 ワード
現在、分散システムでは、redisを共有セッションとして使用しています.現在システムはspring securityを使用しており、ユーザーがログインした後、sessionIdでログインを保証する方法は以下の通りです.
コードから重要なのは、sessionIdがヘッダに存在し、keyがx-auth-tokenであれば呼び出しの正確性を保証できることを定義するHeaderHttpSessionStrategyです.
@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です.