Spring Boot 集成Shiro的多realm配置过程
我在做毕设的时候采用shiro进行登录认证和权限管理的实现。但是正常情况下,当定义了多个Realm,无论是学生登录,教师登录,还是管理员登录,都会由这三个Realm共同处理。这是因为,当配置了多个Realm时,我们通常使用的认证器是shiro自带的org.apache.shiro.authc.pam.ModularRealmAuthenticator,其中决定使用的Realm的是doAuthenticate()方法,源代码如下:上述代码的意思就是如果有多个Realm就会使用所有配置的Realm。只有一个的时候,就直接使用当前的Realm。为了实现需求,我会创建一个org.apache.shiro.authc.pam.ModularRealmAuthenticator的子类,并重写doAuthenticate()方法,让特定的Realm完成特定的功能。
用户评论