copy from server/src/main/java/com/doumee/config/shiro/ShiroConfig.java
copy to server/web/src/main/java/com/doumee/config/shiro/ShiroConfig.java
| Îļþ´Ó server/src/main/java/com/doumee/config/shiro/ShiroConfig.java ¸´ÖÆ | 
 |  |  | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.context.annotation.Bean; | 
 |  |  | import org.springframework.context.annotation.Configuration; | 
 |  |  | import org.springframework.data.redis.connection.RedisConnectionFactory; | 
 |  |  | import org.springframework.data.redis.core.RedisTemplate; | 
 |  |  | import org.springframework.data.redis.serializer.StringRedisSerializer; | 
 |  |  |  | 
 |  |  | import javax.servlet.Filter; | 
 |  |  | import java.io.Serializable; | 
 |  |  | import java.util.HashMap; | 
 |  |  | import java.util.LinkedHashMap; | 
 |  |  | import java.util.Map; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * Shiroé
ç½® | 
 |  |  |  * @author Eva.Caesar Liu | 
 |  |  |  * @date 2023/04/17 12:11 | 
 |  |  |  * @date 2023/03/21 14:49 | 
 |  |  |  */ | 
 |  |  | @Configuration | 
 |  |  | public class ShiroConfig { | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ShiroRealm shiroRealm; | 
 |  |  |  | 
 |  |  |     @Bean("sessionRedisTemplate") | 
 |  |  |     public RedisTemplate<Object, Serializable> sessionRedisTemplate(RedisConnectionFactory redisConnectionFactory) { | 
 |  |  |         RedisTemplate<Object, Serializable> redisTemplate = new RedisTemplate<>(); | 
 |  |  |         redisTemplate.setConnectionFactory(redisConnectionFactory); | 
 |  |  |         // é»è®¤åºååæ¹å¼ | 
 |  |  |         redisTemplate.setDefaultSerializer(new StringRedisSerializer()); | 
 |  |  |         // å¼åºååæ¹å¼ | 
 |  |  |         ShiroSessionSerializer serializer = new ShiroSessionSerializer(); | 
 |  |  |         redisTemplate.setValueSerializer(serializer); | 
 |  |  |         redisTemplate.setHashValueSerializer(serializer); | 
 |  |  |         redisTemplate.afterPropertiesSet(); | 
 |  |  |         return redisTemplate; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Bean | 
 |  |  |     public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() { | 
 |  |  |         DefaultAdvisorAutoProxyCreator autoProxyCreator = new DefaultAdvisorAutoProxyCreator(); | 
 |  |  | 
 |  |  |     public SessionManager sessionManager() { | 
 |  |  |         ShiroSessionManager sessionManager = new ShiroSessionManager(); | 
 |  |  |         sessionManager.setSessionDAO(shiroSessionDAO); | 
 |  |  |         sessionManager.setGlobalSessionTimeout(sessionExpireTime*1000); | 
 |  |  |         // å é¤å¤±æçsession | 
 |  |  |         sessionManager.setDeleteInvalidSessions(true); | 
 |  |  |         return sessionManager; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         shiroFilterFactoryBean.setSecurityManager(securityManager); | 
 |  |  |         Map<String, String> map = new LinkedHashMap<>(); | 
 |  |  |         // è·¯å¾æ¦æªé
ç½® | 
 |  |  |         map.put("/web/user/login", "anon"); | 
 |  |  |         map.put("/public/uploadRichText", "anon"); | 
 |  |  |         map.put("/system/login", "anon"); | 
 |  |  |         map.put("/system/logout", "anon"); | 
 |  |  |         map.put("/common/captcha", "anon"); | 
 |  |  |         //æ¾è¡ scratch æ¥å£ | 
 |  |  |         map.put("/web/scratch/**", "anon"); | 
 |  |  |  | 
 |  |  |         map.put("/web/**", "anon"); | 
 |  |  |         //æä»¶ä¸ä¼ åæ¶æ¦æª | 
 |  |  |         map.put("/public/**", "anon"); | 
 |  |  |         // - æ¾è¡swagger | 
 |  |  |         map.put("/doc.html", "anon"); | 
 |  |  |         map.put("/webjars/**", "anon"); |