初识shiro

1.shiro流程:

1.1.使用数据源,也就是RealM初始化SecurityManagerFactory.

1.2.得到SecurityManager(安全管理器).

1.3.设置到SecutiryUtils.

1.4.得到subject,使用认证服务.

2.权限管理包括用户认证和授权两个部分.

3.关键对象:

3.1.subject:主体

3.2.securityManager:安全管理器

3.3.Authenticator:认证器(身份认证,登陆)

3.4.Authorizer:授权期(判断用户是否有此权限,包括角色,权限)

3.5.realm:领域(SecurityManager通过realm获取用户权限数据)

3.6.SessionManager:会话管理,实现单点登陆

3.7.SessionDao:会话Dao,将session储存到数据库中

3.8.CacheManager:缓存管理,用户权限数据存储在缓存

3.9.Cryptography:密码管理,提供了一套加密/解密工具

4.shiro的三种授权方式:

4.1.编程式:通过写if/else授权

4.2.注解式:通过在执行的方法上放置相应的注解

4.3.JSP/GSP标签:在JSP/GSP页面通过相应的标签完成

5.shiro所做的事:

5.1.验证用户

5.2.对用户执行访问控制:用户是否拥有角色,用户是否拥有访问权限

5.3.在任何环境下使用session API

5.4.可以使用多数据源

5.5.单点登陆(sso)

5.6."Remember me"服务

6.shiro的过滤器在spring的applicationContext.xml中

认证过滤器:

anon,authcBasic,auchc,user

授权过滤器:

penms,rest,roles,port,ssl

7.粗、细粒度权限:

粗粒度管理就是对资源类型的权限管理

细粒度管理就是对数据级别的权限管理

8.散列次数相当于md5的次数,盐+散列值组成密码.

9.shiro不提供维护用户/权限的功能,而是通过Realm让开发人员自己注入.(Realm在applicationContext.xml配置)

10.shiro集成spring:

10.1在web.xml中配置shiroFilter拦截器

10.2在spring文件中配置shiroFilter,sericutyManager,realm

11.在web.xml中设置shiroFilter会拦截到css,js静态文件,所以需要在spring配置中将这些文件过滤掉,将这些文件设置成anno.

12.当调用SecurityUtils.getSubject().login(token)的时候,会调用自定义realm中的认证方法.

 

你可能感兴趣的:(shiro)