Shiro授权-------和验证超像的

Shiro授权的步骤
1.创建SecurityManager->主体授权->SecurityManager授权->Authorizer授权->Realm获取角色权限数据。
SimpleRealm没有权限,只能规定角色。
下面看代码

public class AuthenticateTest {

    //先使用简单的Realm来验证
    private SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm();

    @Before
    public void addUser(){
        simpleAccountRealm.addAccount("mark","123456","admin","user"); //Realm可以添加多个账户
        //现在只是入门,使用的是简单的Realm,之后会有更符合业务逻辑的Realm出现
        simpleAccountRealm.addAccount("wangye","123456","user");
    }

    @Test
    public void authorticateTest(){
        //1. 构建SecurityManager环境
        DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
        defaultSecurityManager.setRealm(simpleAccountRealm); //因为最终式使用Realm来验证,所以要设置Realm

        //2. 主体提交认证
        SecurityUtils.setSecurityManager(defaultSecurityManager);//先设置认证环境
        Subject subject = SecurityUtils.getSubject();
        //家下来就是登陆了,如果传入的用户名不正确,和Realm中的不匹配,那么久会异常
        UsernamePasswordToken token = new UsernamePasswordToken("wangye","123456");
        subject.login(token);
        System.out.println("是否登陆成功:"+ subject.isAuthenticated());//true
        //登陆就有登出
        //subject.logout();
        System.out.println("是否验证成功:"+ subject.isAuthenticated());//false

        //检查用户角色
        subject.checkRoles("user");
        System.out.println(subject.hasRole("user"));//true
    }
}

注意我们使用的是hasRoles,而不是使用checkRoles.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值