Shiro实现登录功能

需要导入的依赖:

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-core</artifactId>
    <version>1.4.0</version>
</dependency>

Shiro接管了项目的登录功能,我们只要按照Shiro的登录流程走(调用方法)就可以了,下面是Shiro登录功能的简单案例:

/**
 * 认证过程的演示案例
 *
 * @param args
 */
public static void main(String[] args) {
    String username = "hello";
    String password = "123456";
    //模拟一个用户
    SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm();
    simpleAccountRealm.addAccount(username, password);

    //1:构建securityManager环境
    DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
    defaultSecurityManager.setRealm(simpleAccountRealm);
    //2:主体提交认证请求
    SecurityUtils.setSecurityManager(defaultSecurityManager);
    Subject subject = SecurityUtils.getSubject();
    //3:登录(Shiro接管了登录功能),如果传入的账号密码和simpleAccountRealm对象的不同则会账号或密码错误的异常
    UsernamePasswordToken token = new UsernamePasswordToken(username, password);
    subject.login(token);
    //查看认证结果
    System.out.println("认证结果:" + subject.isAuthenticated());
    //4:登出
    subject.logout();
    //查看认证结果
    System.out.println("认证结果:" + subject.isAuthenticated());
}

登录成功后认证结果为true,登出后认证结果为false

如果在第三步登录的时候把账号填错会报如下异常:

而填错密码的异常为:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值