Shiro-ini配置

Shiro的配置十分灵活,支持ini、XML等方式.它的配置是从根对象securityManager开始的.

根对象SecrityManager

回顾Shiro的架构图可以知道,shiro是从根对象SecurityManager进行身份验证和授权的,这个对象是线程安全且整个应用只有一个,shiro提供了SecurityUtils让我们绑定它为全局的,方便后续使用.

Shiro-Authorization(授权)

Authorization

授权,也叫访问控制,即在应用中控制控制谁能访问那些资源(比如访问页面,编辑数据等).在授权中,有几个关键的对象需要了解:主体(Subject)资源(Resources)权限(Permission)角色(Role).
主体:即访问应用的用户,在shiro中使用Subject代表主体,用户只有在授权之后才能访问相应的资源.
资源:在应用中用户可以访问、操作的任何东西都可以称作为资源(某个页面,按钮等),用户只有授权之后才能访问.
权限:安全策略中的原子授权单位,通过权限可以表示用户在应用中有没有操作某个资源的权利.Tips:权限仅仅反映了用户在某个资源上的操作允不允许,不反应谁去执行此操作,权限赋予给用户这个操作Shiro并不关心,而是需要应用系统自己去实现。Shiro支持粗粒度权限细粒度权限,后续在深入.

Shiro-Authentication(身份验证)

Authentication

Authentication是指身份验证的过程:即在应用中能证明他就是他本人.一般需要提供身份标识信息例如:ID,用户名/密码等.
在Shiro中,用户需要提供Principals和Credentials给Shiro,从而来验证用户的身份.
Principals: 身份,即是Subject的标识属性,可以是任何东西,诸如用户名、邮箱等,唯一即可.一个主题可以有多个Principal,但是只有一个Primary principal一般是用户名/密码.
Credentials: 证明/凭据,只有主体才知道的安全值,如密码/数字证书.
principal/credential配对最常见的就是用户名/密码.

Shiro简介

简介

Apache Shiro是apache的一个强大而灵活的开源安全框架,它干净利落的处理身份认证、授权、企业会话管理和加密.Shiro首要的目标是易于使用和理解,提供一个干净而直观的API,来简化开发人员在使用它们的应用程序安全上的努力.这也是Shiro可能并没有Spring Security使用的人却越来越多的因素之一吧.

Shiro不强制依赖其他第三方框架、容器、或者应用服务器,不仅可以应用在JavaSE环境,也可以用在JavaEE环境.

Shiro Features

Apache Shiro是一个拥有许多功能的综合性的程序安全框架,帮助我们完成:认证、授权,加密、会话管理、与web集成、缓存等功能.shiro提供的功能如下图: