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