试图将RedisTemplate bean与GenericJackson2JsonRedisSerializer一起使用,但是在调试时我注意到Spring会话使用了不同的RedisTemplate实例。
@Configuration
@EnableRedisHttpSession
public class RedisHttpSessionConfig extends
AbstractHttpSessionApplicationInitializer {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<Object, Object> redisTemplate() {
final RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
@Bean
public HttpSessionEventPublisher httpSessionEventPublisher() {
return new HttpSessionEventPublisher();
}
当运行这个时,Spring会话似乎对hashValues使用默认的JdkSerializationRedisSerializer,而不是所需的GenericJackson2JSONRedisSerializer。
你知道我错过了什么吗?
您只需要重写spring会话的默认RedisSerializer,如下所示
@Configuration public class RedisConfig {
@Bean(name="springSessionDefaultRedisSerializer")
public RedisSerializer serializer() {
return new GenericJackson2JsonRedisSerializer();
}
null 有人知道解决这个问题的办法吗?提前感谢! 迈克尔
我有一个简单的中间件,它检查用户会话中是否有密钥。 问题是我总是得到“未按请求设置会话存储”错误这是我的路线: 我在app\Http\K中添加了中间件ernel.php变量$middleware 我也试着改变我的路线: 但这不起作用。知道如何确保会话已经启动,或者在调用中间件之前启动它吗?我用的是Laravel 5.3
问题内容: 我想使用Redis进行会话管理。 但是我不知道将Redis用作Gorilla会话程序包的自定义后端比直接使用Redis有什么好处? 链接到大猩猩会议软件包:http : //www.gorillatoolkit.org/pkg/sessions 问题答案: 大猩猩会话提供了一种连接存储系统以进行会话管理的方法,只要您遵循提供的界面即可。目前,他们为您提供了两个开箱即用的商店。其中一个是
问题内容: 我在Spring 4 MVC + Security + Boot项目中设置了一个自定义身份验证过滤器。过滤器可以很好地完成工作,现在我想禁用某些URI(例如)的安全性。这是我的配置 不幸的是,当我在/ api / …下调用resource时,过滤器仍然被链接。我在过滤器中添加了println,并在每次调用时将其写入控制台。你知道我的配置有什么问题吗? 更新 过滤器代码: 问题答案: 删
问题内容: 我已经如下设置了web.xml。我还有一个基于注释的控制器,该控制器可以采用任何URL模式,然后转到相应的jsp(我已在-servlet.xml中进行了设置)。但是,如果转到以.html结尾的页面(并且其jsp不存在),则看不到自定义404页面(并且在日志中看到以下错误)。任何不以.html结尾的页面,我都可以看到自定义404页面。 如何为通过DispatcherServlet的任何页
我正在尝试使用Spring安全注释,如@PreAuthorize和@安全,但我希望评估用户不是在一个角色上,而是他们是否拥有对特定实体的权限,在这种情况下是一家公司。在我的控制器中,我收到一个超文本传输协议请求,其中包含一个firmId作为参数,我想确保这个用户被允许进入这家公司。是否可以使用当前的Spring安全注释?。我正在寻找一个优雅的解决方案,我一直在寻找自定义约束验证器作为jsr303规