Shiro实现身份验证
身份验证,即在应用中谁能证明他是他本人,一般提供如他们的身份ID、用户名、密码等来证明。
在Shiro中,用户需要提供principals(身份)和credentials(证明)给Shiro,从而应用能验证用户身份:
- principals: 身份,即主体的标识属性,可以是任何东西,如用户名、邮箱,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名、密码等。
- credentials: 证明、凭证,即只有主体知道的安全值,如密码、数字证书等。
入门案例(登录退出)
shiro.ini
使用ini
配置文件来模拟数据库中的数据,实际是应该从数据库中读取安全数据。
1 2 |
[users] tycoding=123 |
AuthenticationTest.java 测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
public class AuthenticationTest { @Test public void loginLogoutTest(){ //1、获取SecurityManager工厂,此处使用Ini配置文件初始化SecurityManager Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini"); //2、得到SecurityManager实例,并绑定给SecurityUtils SecurityManager securityManager = (SecurityManager) factory.getInstance(); SecurityUtils.setSecurityManager(securityManager); //3、得到Subject及创建用 |