@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
shiroFilter.setLoginUrl("/login");
shiroFilter.setUnauthorizedUrl("/login");
shiroFilter.setSuccessUrl("/");
Map<String, Filter> filters = new HashMap<String, Filter>();
filters.put("anon", new AnonymousFilter());
filters.put("authc", new FormAuthenticationFilter());
filters.put("logout", new LogoutFilter());
filters.put("roles", new RolesAuthorizationFilter());
filters.put("user", new UserFilter());
shiroFilter.setFilters(filters);
Map<String, String> chains = new LinkedHashMap<>();
chains.put("/login", "anon");
chains.put("/postLogin", "anon");
chains.put("/adminlte/**", "anon");
chains.put("/**","authc");
shiroFilter.setFilterChainDefinitionMap(chains);
return shiroFilter;
}