每天学点Shiro-多realm

Posted Xpawn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天学点Shiro-多realm相关的知识,希望对你有一定的参考价值。

1. 新建第二个realm,加密算法改为SHA1

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken)
            throws AuthenticationException {

        System.out.println("=========>SecondRealm doGetAuthenticationInfo");
        UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
        String username = token.getUsername() ;

        if("unknown".equals(username)){
            throw new UnknownAccountException("用户名不存在") ;
        }

        Object principal = username ;
        Object credentials= "3416bb24c2d3e88cc79e261ec63c1c324e6614b9" ;
        ByteSource credentialsSalt = ByteSource.Util.bytes(username);
        String realmName = getName() ;

        AuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(principal,credentials,credentialsSalt,realmName) ;

        return authenticationInfo;
    }

 

 2. spring-context-shiro.xml中对secondRealm进行配置

     2.1 声明SecondRealm

<bean id="secondRealm" class="com.pawn.shiro.realm.SecondRealm">
        <property name="credentialsMatcher">
            <bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
                <property name="hashAlgorithmName" value="SHA1"/>
                <property name="hashIterations" value="1"/>
            </bean>
        </property>
    </bean>

 

    2.2 SecurityManager进行多Realm的配置

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="cacheManager" ref="cacheManager"/>
        <property name="authenticator">
            <bean class="org.apache.shiro.authc.pam.ModularRealmAuthenticator">
                <property name="realms">
                    <list>
                        <ref bean="jdbcRealm"/>
                        <ref bean="secondRealm"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>

 

以上是关于每天学点Shiro-多realm的主要内容,如果未能解决你的问题,请参考以下文章

每天学点Shiro-shiro标签

每天学点Shiro-登录功能demo

每天学点Shiro-权限注解

每天学点Shiro-认证策略

每天学点Shiro-集成spring

每天学点Shiro-从数据库中读取资源权限