Shiro的信息存放在Redis中(shiro存入redis)


Apache Shiro是一个为java程序执行认证,授权,会话和加密管理的安全框架,它可以在不改变应用程序既有代码的基础上构建安全机制。 这篇文章展示了如何将Shiro相关信息存储在Redis中。

要将Shiro相关信息存储在Redis中,首先需要将Redis服务配置到应用程序中。创建一个Redis实例,并设置连接信息:

host:192.168.1.100

port:6379

password:

接下来,在应用程序中创建一个RedisManager,用来管理Redis服务:

RedisManager redisManager = new RedisManager();
redisManager.setHost(host);
redisManager.setPort(port);
redisManager.setPassword(password);

接着,需要定义一个RedisSessionDAO,用来将实际的session会话数据存储到Redis中:

RedisSessionDAO redisSessionDAO = new RedisSessionDAO();
redisSessionDAO.setRedisManager(redisManager);

// 设置Session中属性键值操作的Template
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setConnectionFactory(redisManager.getConnectionFactory());

// 序列化操作
JdkSerializationStrategy jdkSerializationStrategy = new JdkSerializationStrategy();
redisSessionDAO.setSerializationStrategy(jdkSerializationStrategy);
redisSessionDAO.setStringRedisTemplate(stringRedisTemplate);

将RedisSessionDAO添加到SecurityManager的SessionManager中:

// 创建SecurityManager
DefaultSecurityManager securityManager = new DefaultSecurityManager();
// 使用RedisSessionDAO
securityManager.setSessionManager(new DefaultSessionManager());

经过以上步骤,Shiro的相关信息已经存放在Redis中了,可以基于此进行安全的身份验证、授权、会话管理和加密。通过使用Redis服务来存储Shiro相关信息,可以更好地支持高可用性,并保证应用程序数据安全性。