From 6e303ee71559c7aa291cd858e237a9501a3bb181 Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Sun, 21 Oct 2018 07:32:04 +0800 Subject: [PATCH] =?UTF-8?q?[shiroconfig=E6=A0=BC=E5=BC=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/config/ShiroConfig.java | 112 +++++++++--------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java index c2cc8c3fa..c34a3015a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java @@ -41,12 +41,12 @@ public class ShiroConfig { @Value("${spring.redis.timeout}") private int timeout; - + @Value("${spring.redis.expire}") private int expire; - - @Value("${spring.redis.password}") - private String password; + + @Value("${spring.redis.password}") + private String password; @Bean public static LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() { @@ -61,44 +61,44 @@ public class ShiroConfig { // public ShiroDialect shiroDialect() { // return new ShiroDialect(); // } + /** * ShiroFilterFactoryBean 处理拦截资源文件问题。 * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,因为在 * 初始化ShiroFilterFactoryBean的时候需要注入:SecurityManager - * - Filter Chain定义说明 - 1、一个URL可以配置多个Filter,使用逗号分隔 - 2、当设置多个过滤器时,全部验证通过,才视为通过 - 3、部分过滤器可指定参数,如perms,roles - * + *

+ * Filter Chain定义说明 + * 1、一个URL可以配置多个Filter,使用逗号分隔 + * 2、当设置多个过滤器时,全部验证通过,才视为通过 + * 3、部分过滤器可指定参数,如perms,roles */ @Bean - public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){ + public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { System.out.println("ShiroConfiguration.shirFilter()"); - ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); + ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); // 必须设置 SecurityManager shiroFilterFactoryBean.setSecurityManager(securityManager); Map filters = new LinkedHashMap(); - filters.put("token", new ShiroLoginFilter()); - filters.put("corsFilter", new RestFilter()); - shiroFilterFactoryBean.setFilters(filters); + filters.put("token", new ShiroLoginFilter()); + filters.put("corsFilter", new RestFilter()); + shiroFilterFactoryBean.setFilters(filters); // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 shiroFilterFactoryBean.setLoginUrl("/#/"); // 登录成功后要跳转的链接 - + shiroFilterFactoryBean.setSuccessUrl("/usersPage"); //未授权界面; shiroFilterFactoryBean.setUnauthorizedUrl("/403"); //拦截器. - Map filterChainDefinitionMap = new LinkedHashMap(); + Map filterChainDefinitionMap = new LinkedHashMap(); //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了 filterChainDefinitionMap.put("/logout", "anon"); - filterChainDefinitionMap.put("/doLogin/**","anon"); - filterChainDefinitionMap.put("/css/**","anon"); - filterChainDefinitionMap.put("/js/**","anon"); - filterChainDefinitionMap.put("/img/**","anon"); - filterChainDefinitionMap.put("/font-awesome/**","anon"); + filterChainDefinitionMap.put("/doLogin/**", "anon"); + filterChainDefinitionMap.put("/css/**", "anon"); + filterChainDefinitionMap.put("/js/**", "anon"); + filterChainDefinitionMap.put("/img/**", "anon"); + filterChainDefinitionMap.put("/font-awesome/**", "anon"); //:这是一个坑呢,一不小心代码就不好使了; // //自定义加载权限资源关系 @@ -111,17 +111,17 @@ public class ShiroConfig { // filterChainDefinitionMap.put(resources.getUrl(),permission); // } // } - filterChainDefinitionMap.put("/swagger-ui.html","anon"); + filterChainDefinitionMap.put("/swagger-ui.html", "anon"); filterChainDefinitionMap.put("/wxPay/notify/**", "anon"); - filterChainDefinitionMap.put("/v2/**","anon"); - filterChainDefinitionMap.put("/swagger-resources/**","anon"); - filterChainDefinitionMap.put("/webjars/**","anon"); - filterChainDefinitionMap.put("/wxMsgCallback/**","anon"); - filterChainDefinitionMap.put("/user/sendvalidationcode","anon"); - filterChainDefinitionMap.put("/user/updatepwd","anon"); - filterChainDefinitionMap.put("/carCallback/**","anon"); - filterChainDefinitionMap.put("/wxMallApply/add","anon"); - filterChainDefinitionMap.put("/wxMallApply/sendvalidationcode","anon"); + filterChainDefinitionMap.put("/v2/**", "anon"); + filterChainDefinitionMap.put("/swagger-resources/**", "anon"); + filterChainDefinitionMap.put("/webjars/**", "anon"); + filterChainDefinitionMap.put("/wxMsgCallback/**", "anon"); + filterChainDefinitionMap.put("/user/sendvalidationcode", "anon"); + filterChainDefinitionMap.put("/user/updatepwd", "anon"); + filterChainDefinitionMap.put("/carCallback/**", "anon"); + filterChainDefinitionMap.put("/wxMallApply/add", "anon"); + filterChainDefinitionMap.put("/wxMallApply/sendvalidationcode", "anon"); filterChainDefinitionMap.put("/captcha.jpg", "anon"); filterChainDefinitionMap.put("/version", "anon"); // filterChainDefinitionMap.put("/role/**", "corsFilter,token"); @@ -129,27 +129,24 @@ public class ShiroConfig { // filterChainDefinitionMap.put("/**", "anon"); - shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; } - - - public static boolean isAjax(ServletRequest request){ + public static boolean isAjax(ServletRequest request) { String header = ((HttpServletRequest) request).getHeader("X-Requested-With"); - if("XMLHttpRequest".equalsIgnoreCase(header)){ - System.out.println( "当前请求为Ajax请求"); + if ("XMLHttpRequest".equalsIgnoreCase(header)) { + System.out.println("当前请求为Ajax请求"); return Boolean.TRUE; } - System.out.println( "当前请求非Ajax请求"); + System.out.println("当前请求非Ajax请求"); return Boolean.FALSE; } @Bean - public SecurityManager securityManager(){ - DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); + public SecurityManager securityManager() { + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); //设置realm. securityManager.setRealm(myShiroRealm()); // 自定义缓存实现 使用redis @@ -160,23 +157,23 @@ public class ShiroConfig { } @Bean - public MyShiroRealm myShiroRealm(){ + public MyShiroRealm myShiroRealm() { MyShiroRealm myShiroRealm = new MyShiroRealm(); myShiroRealm.setCredentialsMatcher(hashedCredentialsMatcher()); return myShiroRealm; } - - + /** * 凭证匹配器 * (由于我们的密码校验交给Shiro的SimpleAuthenticationInfo进行处理了 - * 所以我们需要修改下doGetAuthenticationInfo中的代码; + * 所以我们需要修改下doGetAuthenticationInfo中的代码; * ) + * * @return */ @Bean - public HashedCredentialsMatcher hashedCredentialsMatcher(){ + public HashedCredentialsMatcher hashedCredentialsMatcher() { HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); hashedCredentialsMatcher.setHashAlgorithmName("md5");//散列算法:这里使用MD5算法; @@ -187,13 +184,14 @@ public class ShiroConfig { /** - * 开启shiro aop注解支持. - * 使用代理方式;所以需要开启代码支持; + * 开启shiro aop注解支持. + * 使用代理方式;所以需要开启代码支持; + * * @param securityManager * @return */ @Bean - public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager){ + public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) { AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); return authorizationAttributeSourceAdvisor; @@ -202,6 +200,7 @@ public class ShiroConfig { /** * 配置shiro redisManager * 使用的是shiro-redis开源插件 + * * @return */ public RedisManager redisManager() { @@ -217,6 +216,7 @@ public class ShiroConfig { /** * cacheManager 缓存 redis实现 * 使用的是shiro-redis开源插件 + * * @return */ public RedisCacheManager cacheManager() { @@ -238,7 +238,7 @@ public class ShiroConfig { } /** - * shiro session的管理 + * shiro session的管理 */ @Bean public DefaultWebSessionManager sessionManager() { @@ -252,14 +252,14 @@ public class ShiroConfig { sessionManager.setSessionIdCookie(simpleCookie()); return sessionManager; } - + @Bean public SimpleCookie simpleCookie() { - SimpleCookie simpleCookie = new SimpleCookie("SSIDS"); + SimpleCookie simpleCookie = new SimpleCookie("SSIDS"); simpleCookie.setDomain(""); - return simpleCookie; + return simpleCookie; } - + // @Bean // public SimpleCookie rememberMeCookie(){ // //System.out.println("ShiroConfiguration.rememberMeCookie()"); @@ -269,7 +269,7 @@ public class ShiroConfig { // simpleCookie.setMaxAge(60*30); // return simpleCookie; // } - + // @Bean // public CookieRememberMeManager rememberMeManager(){ // //System.out.println("ShiroConfiguration.rememberMeManager()"); @@ -279,7 +279,7 @@ public class ShiroConfig { // cookieRememberMeManager.setCipherKey(Base64.decodeBytes("2AvVhdsgUs0FSA3SDFAdag==")); // return cookieRememberMeManager; // } - + // @Bean(name = "securityManager") // public DefaultWebSecurityManager defaultWebSecurityManager(MyShiroRealm realm){ // DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();