shiro
单点登录
部署的项目可以分为多个项目一起运行,比如登录了淘宝,天猫就不用登录了
认证
用户身份识别,判断用户是否登录,如果未登录,则拦截其请求
授权
判断其身份是否有权限访问相应资源
会话管理
密码加密
MD5密码加密
内置过滤器
9个内置过滤器
- 认证过滤器:anon(不需认证),authcBasic、authc(必须认证后才可以访问)
- 授权过滤器:perms(指定资源需要哪些权限才可以访问),Roles,ssl,rest,port
匿名认证过滤器的使用
- 创建令牌
- 获取主题subject
- 执行登录
当使用subject.login时不会调用service,真正实现登录验证的是realm,realm充当了shiro与应用数据安全的"桥梁",realm实质上是一个安全相关的dao,它封装了数据源的连接细节,并在需要时将数据提供给shiro
继承authorizingRealm(父类是)实现授权与认证方法,需要在shiro配置文件配置realm
- 得到用户名和密码:
获取主题subject,提取主角principle
认证过程
授权
perms里面的是并行关系
可以自定义授权过滤器
url粗颗粒,url级别的权限控制
细颗粒,在方法加注解@Requirespermissions方法级别的权限控制,代码块的级别控制,subject.ispermitted()