使用Spring Session(它会透明地覆盖Java
EE中的HttpSessions),您只需
SessionRepository使用自定义ex即可实现接口并实现它。
JdbcSessionRepository。这很容易做到。实现后,只需手动添加(不需要
@EnableRedisHttpSession注释)创建的过滤器即可过滤链,例如波纹管:
@Configuration@EnableWebMvcSecuritypublic class SecurityConfiguration extends WebSecurityConfigurerAdapter { //other stuff... @Autowired private SessionRepository<ExpiringSession> sessionRepository; private HttpSessionStrategy httpSessionStrategy = new cookieHttpSessionStrategy(); // or HeaderHttpSessionStrategy @Bean public SessionRepository<ExpiringSession> sessionRepository() { return new JdbcSessionRepository(); } @Override protected void configure(HttpSecurity http) throws Exception { super.configure(http); SessionRepositoryFilter<ExpiringSession> sessionRepositoryFilter = new SessionRepositoryFilter<>(sessionRepository); sessionRepositoryFilter.setHttpSessionStrategy(httpSessionStrategy); http .addFilterBefore(sessionRepositoryFilter, ChannelProcessingFilter.class); }}在这里,您可以看到
SessionRepository界面的外观。它只有4种方法可以实现。有关如何创建Session对象的信息,可以查看
MapSessionRepository和
MapSession实现(或
RedisOperationsSessionRepository和
RedisSession)。
public interface SessionRepository<S extends Session> { S createSession(); void save(S session); S getSession(String id); void delete(String id);}示例解决方案https://github.com/Mati20041/spring-session-jpa-
repository



