Shiro

环境搭建
jar包:shiro-all-1.3.2.jar
log4j-1.2.15.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar

/user/create = anon :未经认证就可以访问web资源
/user/** = authc :必须经过认证才能访问的web资源

URL匹配规则
? 匹配一个字符
* 匹配一个或多个字符
** 匹配一个或多个目录

Shiro API来完成用户的认证
1.获取Subject类型的实例
Subject currentUser = SecurityUtils.getSubject();
2.判断用户是否已经登录
currentUser.isAuthenticated();
3.使用UsernamePasswordToken对象封装用户名和密码
UsernamePasswordToken token = new UsernamePasswordToken("用户名","密码");
4.使用Subject实例中的login(token);
currentUser.login(token);
5.Realm:从数据库中获取安全数据

在Action中书写的步骤如下图:




前端页面加密:
数据库数据加密:

用户进行登录,认证成功后,最终还是查找认证成功的用户拥有什么样的角色。
Realm可以帮我们与数据库进行交互,获取指定认证成功的用户对应的角色。
步骤:
1、自定义一个Realm,继承AuthorizingRealm,认证和授权的工作。
2、IOC容器当中配置指定Realm的bean实例
3、告知securityManager使用哪一个授权管理器
配置一个授权管理器:
1.IOC的配置文件中,加入一个bean

2.告知我们securityManager,我们要到哪一个授权器。
授权之roles拦截器步骤如下:


继承
实现重写方法
这个方法中因为用户角色在数据库表的第四列,所以表达式为roles.add(rs.getString(4));最后这个方法需要返回值为return info;

posted on 2017-09-21 15:22  青春有幸  阅读(256)  评论(0)    收藏  举报