shiro中anon配置不生效

Posted mry6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shiro中anon配置不生效相关的知识,希望对你有一定的参考价值。

shiro中anon配置不生效

shiro中anon配置

配置shiro的时候,如下代码要注意:
1、下述代码中必须是LinkedHashMap 而不能是HashMap。
2、anon定义必须在authc之前
否则anon定义不生效

/**
 * 用来整合shiro框架相关的配置类
 */
@Configuration
public class ShiroConfig 

    //1.创建shiroFilter,负责拦截所有请求
    @Bean
    public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager defaultWebSecurityManager)
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();

        //给filter设置安全管理器
        shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager);

        //配置系统受限资源
        //配置系统公共资源
        Map<String,String> map = new LinkedHashMap<>();
        map.put("/user/login","anon");
        map.put("/user/register","anon");
        map.put("/register.jsp","anon");
        map.put("/**", "authc");  //authc 请求这个资源需要认证和授权

        //默认认证界面路径
        shiroFilterFactoryBean.setLoginUrl("/login.jsp");

        shiroFilterFactoryBean.setFilterChainDefinitionMap(map);

        return shiroFilterFactoryBean;
    

    //2.创建安全管理器
    @Bean
    public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("getRealm") Realm realm)
        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();

        //给安全管理器设置
        defaultWebSecurityManager.setRealm(realm);


        return defaultWebSecurityManager;
    

    //3.创建自定义Realm
    @Bean
    public Realm getRealm()
        CustomerRealm customerRealm = new CustomerRealm();
        //修改凭证校验匹配器
        HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
        //设置加密算法为md5
        credentialsMatcher.setHashAlgorithmName("MD5");
        //设置散列次数
        credentialsMatcher.setHashIterations(1024);
        customerRealm.setCredentialsMatcher(credentialsMatcher);
        
        return customerRealm;
    



以上是关于shiro中anon配置不生效的主要内容,如果未能解决你的问题,请参考以下文章

shiro中anon配置不生效

shiro中anon配置不生效

shiro 过滤属性的意义

spring shiro注解配置不生效

shiro进行权限控制的四种方式

spring boot 集成shiro,设置好setLoginUrl后,报404