当我开发一个非反应式应用程序并在身份验证中使用rememberMe特性时,我只是扩展了WebSecurityConfigurerAdapter类并覆盖了configure(HttpSecurity httpSecurity)方法。在这种情况下,我在httpSecurity对象中有一个rememberMe()方法。
但是当我使用Spring WebFlux时,这是有区别的。据我所知,我所要做的就是使用ServerHttpSecurity类的实例来定义一个SecurityWebFilterChain bean,方法是调用如下所示的链:
serverHttpSecurity.authorizeExchange()
.anyExchange().authenticated()
.and()
.httpBasic()
.build();但是这里没有像在HttpSecurity对象中那样处理rememberMe cookie的方法,我可以用这种方式处理它:
httpSecurity.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic()
.and()
.rememberMe()你知道什么解决方案吗?
发布于 2020-04-13 02:11:20
不幸的是,这样做似乎是不可能的。
有一个旧的issue on github,不幸的是,它不知道什么时候会被解决。
评论建议使用更长的会话到期时间,并将会话卸载到外部数据存储(即Redis)。这样,您就可以将信息存储在数据库中,而不是cookies中。
他们推荐使用Spring Session项目。
发布于 2020-04-14 10:00:52
评论说,使用更长的会话到期时间,并将会话卸载到外部数据存储(即Redis)。这样,您就可以将信息存储在数据库中,而不是cookies中。
他们说使用Spring Session项目。
https://stackoverflow.com/questions/54991071
复制相似问题