SSH---------------Shiro的授权功能初使用

1、spring 配置文件

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    <property name="securityManager" ref="securityManager"></property>
    <property name="loginUrl" value="/login.jsp"></property>
    <property name="filterChainDefinitions">
        <value>
            /validatecode.jsp*=anon
            /userAction_login.action =anon
  /page_base_staff.action = roles["staff"]    //在 /* =authc之前,否则不管用 /page_base_staff.action =perms["staff"]            
            /* =authc

        </value>

    </property>
</bean>
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    <property name="realm" ref="realm"></property>
</bean>
<bean id="realm" class="com.dong.bos.web.realm.BosRealm"></bean>

2、Realm 类

 

public class BosRealm extends AuthorizingRealm {
    @Autowired
    private IUserDao iUserDao;

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        SimpleAuthorizationInfo simpleAuthorizationInfo=new SimpleAuthorizationInfo();
        simpleAuthorizationInfo.addRole("staff");          //addStringPermission
 
        return simpleAuthorizationInfo;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;

        String username = token.getUsername();
        User user = iUserDao.findByUsername(username);
        if (user != null) {
            /**
             * Object principal, 把数据库查询的对象
             * Object credentials,证书:写密码自动验证,查询出来的密码
             * String realmName,当前的类名
             */
            //返回AuthenticationInfo对象,【这个对象会自动验证密码】
            SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(user, user.getPassword(), this.getClass().getSimpleName());
            return simpleAuthenticationInfo;
        }
        return null;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值