Shiro
概述:shiro是一个非常强大的、易于使用的、开源的、权限框架。它包括了权限校验、权限授予、会话管理、安全加密等组件。
Shiro下载路径:http://shiro.apache.org/download.html
所有包的说明,根据列表的说明,下载我们需要的jar包
基础支撑包说明:
常用的类名
Authentication:权限校验,每次操作校验用户是否有访问权限
Authorization:授权,用户登录时,授予用户对应的权限
Session Management:会话管理,用于记录用户的登录状态
Cryptography:加密,加密算法的实现(SHA、MD5)
web Support:对Web项目的支持,Shiro的标签!
入门事例:
第一步:创建项目,导入包名
第二步:创建一个shiro.ini文件,配置ini文件,编写权限认证信息。
注意事项:(1)shiro.ini文件名可以任意编写,但后缀必须是ini
(2)shiro.ini配置文件放在classpath根目录下
#配置用户名和密码,设置角色名roles_admin [users] admin=123456, roles_admin #配置角色权限,可以配置多个 [roles] roles_admin=admin:List, admin:create, admin:delete, admin:edit, admin:add
|
第三步:创建SecurityManager对象
cn.hzh.shiro
import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject;
public class ShiroTest {
public static void main(String[] args) { // shrio框架读取ini配置文件 IniSecurityManagerFactory ismf = new IniSecurityManagerFactory("classpath:shiro-config.ini"); // 获得SecurityManager对象 SecurityManager securityManager = ismf.createInstance();
// 设置一个身份对象Subject SecurityUtils.setSecurityManager(securityManager); // 获得一个身份对象Subject Subject subject = SecurityUtils.getSubject();
// 设置用户名和密码 UsernamePasswordToken token = new UsernamePasswordToken("admin", "123456");
try { // 校验参数 Subject resultSubject = securityManager.login(subject, token); //校验通过就获得用户名,校验不通过就报异常 System.out.println("验证通过获取用户名:" + resultSubject.getPrincipal()); } catch (AuthenticationException e) { e.printStackTrace(); } } } |