Shrio 多realms集成:No realms have been configured! One or more realms must be present

来源:互联网 发布:mac南瓜色口红是几号 编辑:程序博客网 时间:2024/05/29 16:14

我用springboot在代码中集成多realms的时候一直遇到这个异常。

代码如下:

    @Bean    public SecurityManager securityManager(){        DefaultWebSecurityManager securityManager=new DefaultWebSecurityManager();        //设置realm.        List<Realm> realms=new ArrayList<>();        realms.add(myShiroRealm());        realms.add(myShiroRealm2());        securityManager.setRealms(realms);        securityManager.setAuthenticator(modularRealmAuthenticator());        return securityManager;    }

这里有提供realms的set方法,所以肯定是支持多realms的。

后来把modularRealmAuthenticator这块代码放到了前面就好了。

    @Bean    public SecurityManager securityManager(){        DefaultWebSecurityManager securityManager=new DefaultWebSecurityManager();        //设置realm.        securityManager.setAuthenticator(modularRealmAuthenticator());        List<Realm> realms=new ArrayList<>();        realms.add(myShiroRealm());        realms.add(myShiroRealm2());        securityManager.setRealms(realms);        return securityManager;    }

很狗血的问题。

猜测可能是要先设置多realm管理器modularRealmAuthenticator,然后在设置realm,才能把realm设置进modularRealmAuthenticator。如果设置的晚了,可能就无法加载realm了。

阅读全文
0 0