将SpringSessionBackedSessionRegistry与Redis会话存储库一起使用

将SpringSessionBackedSessionRegistry与Redis会话存储库一起使用,spring,spring-boot,spring-security,spring-session,Spring,Spring Boot,Spring Security,Spring Session,我在应用程序中使用Spring安全性和Spring会话(v1.3.1) 我想将Redis用作会话注册表,将Redis用作会话存储库 的构造函数如下所示: SpringSessionBackedSessionRegistry(FindByIndexNameSessionRepository<ExpiringSession> sessionRepository) SpringSessionBackedSessionRegistry(FindByIndexNameSessionRepo

我在应用程序中使用Spring安全性和Spring会话(v1.3.1)

我想将Redis用作会话注册表,将Redis用作会话存储库

的构造函数如下所示:

SpringSessionBackedSessionRegistry(FindByIndexNameSessionRepository<ExpiringSession> sessionRepository) 
SpringSessionBackedSessionRegistry(FindByIndexNameSessionRepository sessionRepository)
Redis存储库实现了:

FindByIndexNameSessionRepository<org.springframework.session.data.redis.RedisOperationsSessionRepository.RedisSession>
FindByIndexNameSessionRepository
那么,如何构造给定实例的实例

为什么构造函数不是:


SpringSessionBackedSessionRegistry(FindByIndexNameSessionRepository您正确地认为
SpringSessionBackedSessionRegistry
应该采用
FindByIndexNameSessionRepository。我仍然收到错误“考虑在配置中定义'org.springframework.session.FindByIndexNameSessionRepository'类型的bean。”
SpringSessionBackedSessionRegistry(FindByIndexNameSessionRepository<? extends ExpiringSession> sessionRepository) 
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private FindByIndexNameSessionRepository sessionRepository;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .and()
            .sessionManagement()
                .maximumSessions(1)
                .sessionRegistry(sessionRegistry());
    }

    @Bean
    @SuppressWarnings("unchecked")
    public SpringSessionBackedSessionRegistry sessionRegistry() {
        return new SpringSessionBackedSessionRegistry(this.sessionRepository);
    }

}