|
|
@@ -1,7 +1,13 @@ |
|
|
package com.simple.config; |
|
|
package com.simple.config; |
|
|
|
|
|
|
|
|
import com.simple.service.MallPermissionService; |
|
|
|
|
|
import com.simple.shiro.MyShiroRealm; |
|
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
import java.util.LinkedHashMap; |
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.ServletRequest; |
|
|
|
|
|
import javax.servlet.ServletResponse; |
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
|
|
|
|
|
import org.apache.shiro.authc.credential.HashedCredentialsMatcher; |
|
|
import org.apache.shiro.authc.credential.HashedCredentialsMatcher; |
|
|
import org.apache.shiro.mgt.SecurityManager; |
|
|
import org.apache.shiro.mgt.SecurityManager; |
|
|
import org.apache.shiro.spring.LifecycleBeanPostProcessor; |
|
|
import org.apache.shiro.spring.LifecycleBeanPostProcessor; |
|
|
@@ -18,8 +24,11 @@ import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.context.annotation.Bean; |
|
|
import org.springframework.context.annotation.Bean; |
|
|
import org.springframework.context.annotation.Configuration; |
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
|
|
|
|
import java.util.LinkedHashMap; |
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
import com.simple.service.MallPermissionService; |
|
|
|
|
|
import com.simple.shiro.MyShiroRealm; |
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.Filter; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Created by yangqj on 2017/4/23. |
|
|
* Created by yangqj on 2017/4/23. |
|
|
@@ -72,11 +81,14 @@ public class ShiroConfig { |
|
|
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){ |
|
|
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){ |
|
|
System.out.println("ShiroConfiguration.shirFilter()"); |
|
|
System.out.println("ShiroConfiguration.shirFilter()"); |
|
|
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); |
|
|
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); |
|
|
|
|
|
|
|
|
// 必须设置 SecurityManager |
|
|
// 必须设置 SecurityManager |
|
|
shiroFilterFactoryBean.setSecurityManager(securityManager); |
|
|
shiroFilterFactoryBean.setSecurityManager(securityManager); |
|
|
|
|
|
Map<String, Filter> filters = new LinkedHashMap<String, Filter>(); |
|
|
|
|
|
filters.put("token", new ShiroLoginFilter()); |
|
|
|
|
|
filters.put("corsFilter", new RestFilter()); |
|
|
|
|
|
shiroFilterFactoryBean.setFilters(filters); |
|
|
// 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 |
|
|
// 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 |
|
|
shiroFilterFactoryBean.setLoginUrl("/login"); |
|
|
|
|
|
|
|
|
// shiroFilterFactoryBean.setLoginUrl("/login"); |
|
|
// 登录成功后要跳转的链接 |
|
|
// 登录成功后要跳转的链接 |
|
|
|
|
|
|
|
|
shiroFilterFactoryBean.setSuccessUrl("/usersPage"); |
|
|
shiroFilterFactoryBean.setSuccessUrl("/usersPage"); |
|
|
@@ -109,7 +121,8 @@ public class ShiroConfig { |
|
|
filterChainDefinitionMap.put("/swagger-resources/**","anon"); |
|
|
filterChainDefinitionMap.put("/swagger-resources/**","anon"); |
|
|
filterChainDefinitionMap.put("/webjars/**","anon"); |
|
|
filterChainDefinitionMap.put("/webjars/**","anon"); |
|
|
filterChainDefinitionMap.put("/wxMsgCallback/**","anon"); |
|
|
filterChainDefinitionMap.put("/wxMsgCallback/**","anon"); |
|
|
filterChainDefinitionMap.put("/**", "authc"); |
|
|
|
|
|
|
|
|
// filterChainDefinitionMap.put("/role/**", "corsFilter,token"); |
|
|
|
|
|
filterChainDefinitionMap.put("/**", "corsFilter,token,authc"); |
|
|
// filterChainDefinitionMap.put("/**", "anon"); |
|
|
// filterChainDefinitionMap.put("/**", "anon"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -118,6 +131,18 @@ public class ShiroConfig { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static boolean isAjax(ServletRequest request){ |
|
|
|
|
|
String header = ((HttpServletRequest) request).getHeader("X-Requested-With"); |
|
|
|
|
|
if("XMLHttpRequest".equalsIgnoreCase(header)){ |
|
|
|
|
|
System.out.println( "当前请求为Ajax请求"); |
|
|
|
|
|
return Boolean.TRUE; |
|
|
|
|
|
} |
|
|
|
|
|
System.out.println( "当前请求非Ajax请求"); |
|
|
|
|
|
return Boolean.FALSE; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@Bean |
|
|
@Bean |
|
|
public SecurityManager securityManager(){ |
|
|
public SecurityManager securityManager(){ |
|
|
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); |
|
|
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); |
|
|
|