这个Demo,只是一个简单的shiro身份验证部分,不涉及到授权部分。算是shiro入门。
具体的shiro介绍就不说了,官网和草根们在网上都分享了很多,原理自己去看吧。这里直接写代码了。
第一:准备jar包
shiro-core-1.2.3.jar(shiro主要jar,其他jar根据情况自己添加)
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
junit-4.9.jar
commons-logging-1.1.1.jar
第二:进行身份验证,首先我们要明确几个东西
1、subject,代表了当前“用户”。普通用户,或者其他系统等等。
2、secrityManager,安全管理器,进行授权和认证
3、Token[用户名,密码/证书] ,里面放着用户信息。
4、realm(接口),为认证授权提供数据。可自定义,继承AuthorizingRealm类,或实现Realm接口
5、.ini文件配置。类似Ioc容器,系统可以读取ini文件,底层利用反射机制,setter注入(有点深奥,说不明白)
第三:开始准备上面提到的东西。
1、准备suject:
新建一个测试类,写一个测试方法
public class TestLoginShiro {
@Test
public void login() {
//获取工厂,加载.ini文件初始化工厂,后面有ini文件的配置说明
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-realm.ini");
//得到securityManager实例
SecurityManager securityManager = factory.getInstance();
//绑定SecurityUtils
SecurityUtils.setSecurityManager(securityManager);
//得到subject
Subject subject = SecurityUtils.getSubject();
//获得token,把用户名,密码放里面,这个用户名和密码是页面或其他请求传来的
UsernamePa