shiro 使用 InI 验证 - oop.com.cn 开源技术学习 Security - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > 计算机相关技术 > 开源技术 > 安全和授权 > 正文

shiro 使用 InI 验证

来源: 阅读:

INI 文件验证信息结构

shiro 的INI文件由以下[main],[users],[roles],[urls],[filters]几部分组成,
 
[main]
段落是配置SecurityManager对象及其使用的其他任何对象(如Realms)的地方
myRealm = com.demo.MyRealm (对象名 = 类名)
customMatcher =  com.demo.CustomCredentialsMatcher
myRealm.credentialsMatcher = $customMatcher (类.属性 = $对象名)
 
[users]
段落是指定用户帐户静态列表的地方
userName=password roles1,roles2 (有多个权限用,隔开)
 
[roles]
段落是指定角色静态列表的地方  
admin = *
schwartz = lightsaber:weild
 
#note:
#资源类型:操作:资源ID 
 
[urls]
段落是指定资源的过滤器
/login.jsp = authc (url = 过滤器,过滤器)
 
[filters]
段落是指定登录验证过滤器
shiro.loginUrl = /login.jsp
 
验证API
构建SecurityManager 
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:demo/shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
 
用于认证数据传输
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();//产生会话传输数据
session.setAttribute("传输数据项key", "传输数据值");
 
//UsernamePasswordToken用来将从Java应用程序通过某种方式获取到的用户名和密码绑定到一起
UsernamePasswordToken token = new UsernamePasswordToken("汤汤", "5201314");
表单密码和用户名要和token的属性一样。才能把登录信息带到后台
 
登录api
currentUser.login(token);