shiro+spring认证

 */
public class CustomRealm extends AuthorizingRealm{
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection){
        String username = (String) principalCollection.getPrimaryPrincipal();
      /*  User user = new User();
        user.setUsername(username);*/
        //查询角色信息
        /*List<Role> roles = ser.queryRoleByUsername(username);*/
        /**
         *List<Role> roles = userService.queryRoleByUsername(username);
         * a.select id from t_user where username='zhangsan'
         * b.select role_id from t_user_role where user_id=(a.select id from t_user where username='zhangsan')
         * c.select * from t_role where id in (select role_id from t_user_role where user_id=(a.select id from t_user where username='zhangsan'))
         */
        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        if (roles!=null){
            /**
             *  for (Role role: roles) {
             String rolename = role.getRoleName();
             info.addRole(roleName);
             a. select permission_id from t_role_permisson where role_id=1
             b. select * from t_permission where id in (select permission_id from t_role_permisson where role_id=1)
             List<Permission> permission = userService.queryPermissionByRoleId(role.getId());
             for(Permission permisseion :permissions){
             //封装权限信息
             info.addStringPermission(permission.getPermissionname());
             }
             }
             *
             */
            for (Role role: roles
                 ) {
                String rolename = role.getRoleName();
                info.addRole(rolename);
                List<Permission> permissions = ser.queryPermissionByRoleId(role.getId());
                for (Permission permission: permissions
                     ) {
                    //封装权限信息
                    info.addStringPermission(permission.getPermissionname());
                }
            }
        }

        return null;
    }

    /**
     * 获取认证信息
     * @param token
     * @return
     * @throws AuthenticationException
     */
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(
            AuthenticationToken token) throws AuthenticationException{
       String username =  (String) token.getPrincipal();
       //查询数据库
        User user = ser.queryUserByUsername(username);
        if(user!=null){
            return new SimpleAuthenticationInfo(user.getUsername(),user.getPassword(),user.getSale());
        }
        return null;
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值