gpt4 book ai didi

java - 仅修改当前请求的SecurityContext

转载 作者:行者123 更新时间:2023-12-02 12:58:59 25 4
gpt4 key购买 nike

我使用的是Spring Boot+spring session data rediss

我的场景是 UserA 已登录,并且为 UserA 创建了 JSESSIONID,现在他发出一个 token ,该 token 将被发送到某台计算机,并且在几分钟内有效,可以代表他工作。
问题是,如果某个客户端意外地通过了这两者Cookie 和 token ,那么我想优先考虑 TOKEN 而不是 JSESSIONIDSpring Session 中是否可能。
我无法使cookie session ,因为它会注销 UserA,这是不需要的。

因此,我想告诉 spring 是使用现有 session 还是根据某种条件创建一个新 session ,并希望优先考虑 TOKEN。并创建一个全新的 session 而不使 Cookie session 失效。

最佳答案

阅读官方文档。

从此

@EnableRedisHttpSession 
public class Config {

@Bean
public LettuceConnectionFactory connectionFactory() {
return new LettuceConnectionFactory();
}
}

这是默认完成的。

@EnableRedisHttpSession 注解创建一个名为 springSessionRepositoryFilter 的 Spring Bean,该 Bean 实现了 Filter。过滤器负责替换 Spring Session 支持的 HttpSession 实现。在本例中,Spring Session 由 Redis 支持。

我们创建一个 RedisConnectionFactory 将 Spring Session 连接到 Redis 服务器。我们将连接配置为在默认端口(6379)上连接到 localhost。有关配置 Spring Data Redis 的更多信息,请参阅引用文档。

DelegatingFilterProxy 将通过 springSessionRepositoryFilter 的名称查找 Bean,并将其转换为 Filter。对于调用 DelegatingFilterProxy 的每个请求,都会调用 springSessionRepositoryFilter。

因此,您要做的就是避免 Spring 配置,或者寻找是否要以某种方式修改此默认行为以创建您自己的 DelegatingFilterProxy 实现并将其设置在您的 ServletContext Filter 链中。

关于java - 仅修改当前请求的SecurityContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44340455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com