也就是身份认证,就是判断一个用户是否为合法用户的处理过程,通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令是否一致,来判断用户的身份是否正确。
对面名称 | 概述 |
---|---|
Subject(主体) | 用户 |
Principal(身份信息) | 是主体(Subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱地址等 |
Credential(凭证信息) | 是只有主体自己知道的安全信息,如密码、证书等 |
在 Maven 中添加依赖 jar包,修改 pom.xml 依赖如下所示:
<dependencies>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
logging
依赖是 Shiro 所依赖的包你尽管添加就行。
在 resources
下 添加 Shiro.ini 配置文件,首先准备一些用户身份和凭据信息(Shiro.ini)内容如下所示:
[users]
Yby6=1234
Yangbuyi=1234
如上是在 Shiro.ini 中定义了两个用户一个是 Yby6 一个是 Yangbuyi 密码为 1234
如上图的步骤分别为如下所解释的:
SecurityManager
工厂SecurityManager
最终代码如下所示:
/**
* @author yby6
*/
public class Demo {
public static void main(String[] args) {
IniSecurityManagerFactory factory = new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("yby6", "1234");
try {
subject.login(token);
} catch (UnknownAccountException e) {
System.out.println("用户名不存在");
e.printStackTrace();
} catch (IncorrectCredentialsException e) {
System.out.println("密码错误");
e.printStackTrace();
}
System.out.println("是否认证" + subject.isAuthenticated());
subject.logout();
System.out.println("是否认证" + subject.isAuthenticated());
}
}
subject.login
方法进行登录,其会自动委托给 securityManager.login
方法进行登录。Subject.logout
进行退出操作。最后
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。