From 129bc8f0c9bce0306aa99fafde97689f645dbbb5 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期三, 20 一月 2021 09:39:30 +0800
Subject: [PATCH] finish basic jwt func

---
 src/main/java/com/whyc/config/ShiroConfig.java |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/config/ShiroConfig.java b/src/main/java/com/whyc/config/ShiroConfig.java
index 402477a..4d88761 100644
--- a/src/main/java/com/whyc/config/ShiroConfig.java
+++ b/src/main/java/com/whyc/config/ShiroConfig.java
@@ -1,7 +1,10 @@
 package com.whyc.config;
 
+import com.whyc.filter.JwtAuthcFilter;
 import com.whyc.filter.KickedOutFilter;
 import com.whyc.filter.RolesOrAuthorizationFilter;
+import com.whyc.manager.JWTManager;
+import com.whyc.manager.ShiroSessionManager;
 import com.whyc.properties.PropertiesUtil;
 import com.whyc.realm.CustomRealm;
 import lombok.extern.log4j.Log4j;
@@ -9,8 +12,10 @@
 import org.apache.shiro.spring.LifecycleBeanPostProcessor;
 import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
 import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+import org.apache.shiro.util.ThreadContext;
 import org.apache.shiro.web.filter.authz.RolesAuthorizationFilter;
 import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.apache.shiro.web.servlet.SimpleCookie;
 import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -33,12 +38,31 @@
     @Autowired
     CustomRealm customRealm;
 
+    @Autowired
+    JWTManager jwtManager;
+
     /**鏉冮檺绠$悊鍣�*/
     @Bean(name = "securityManager")
     public DefaultWebSecurityManager defaultWebSecurityManager(){
         DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
         securityManager.setRealm(customRealm);
+        securityManager.setSessionManager(shiroSessionManager());
         return securityManager;
+    }
+
+    @Bean(name = "sessionManager")
+    public ShiroSessionManager shiroSessionManager(){
+        ShiroSessionManager shiroSessionManager = new ShiroSessionManager();
+        shiroSessionManager.setSessionIdCookie(simpleCookie());
+        return shiroSessionManager;
+    }
+
+    /**Cookie鎸囧畾Session鍚嶇О*/
+    @Bean(name = "sessionIdCookie")
+    public SimpleCookie simpleCookie(){
+        SimpleCookie simpleCookie = new SimpleCookie();
+        simpleCookie.setName("shiroSession");
+        return simpleCookie;
     }
 
     /**
@@ -83,6 +107,7 @@
     private Map<String, Filter> filters(){
         HashMap<String, Filter> map = new HashMap<>();
         map.put("rolesOr",new RolesOrAuthorizationFilter());
+        map.put("authc-jwt",new JwtAuthcFilter(jwtManager));
         return map;
     }
 
@@ -92,8 +117,8 @@
     public ShiroFilterFactoryBean shiroFilterFactoryBean(){
         ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
         //娉ㄥ叆鏂板畾涔夌殑杩囨护鍣�
-        shiroFilter.setFilters(filters());
         shiroFilter.setSecurityManager(defaultWebSecurityManager());
+        shiroFilter.setFilters(filters());
         shiroFilter.setFilterChainDefinitionMap(filterChainDefinition());
         shiroFilter.setLoginUrl("/login.html");
         //shiroFilter.setLoginUrl("/index.html#login");

--
Gitblit v1.9.1