需要导入的依赖:
<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
如果在第三步登录的时候把账号填错会报如下异常:
而填错密码的异常为: