shiro用户加密默认方式_Shiro安全框架(配置ini文件方式)

1.什么是shiro

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和 会话管理等功能。

2.从外部来看Shiro,即从应用程序角度来观察如何使用Shiro完成工作。

①Subject 主体 也可以看做一个用户 与当前应用交互的应用可以看做一个用户,所有的subject都绑定到

securityManager,与subject的交互都会委托给securityManager

②securityManager 安全管理器,所有安全有关的都会交给securitymanager,是shiro的核心负责和其他

的组件进行交互

③realm域 securitymanager从realm中获取安全数据

④应用代码通过suject 来进行认证和授权,suject又委托给securitymanager,securitymanager从realm

中获取数据进行合理的判断和授权

3.从内部来看Shiro的架构

①subject:主体,与应用交互的用户,主体要访问系统,系统需要对主体进行认证、授权。

②securityManager:安全管理器,主体进行认证和授权都 是通过securityManager进行。

③Authenticator即认证器,主体进行认证最终通过authenticator进行的。

④Authorizer即授权器,主体进行授权最终通过authorizer进行的。

⑤essionManager即会话管理,,它不依赖web容器的session,所以shiro可以使用在非

web应用上,也可以将分布式应用的会话集中在一点管理。

⑥ SessionDAO即会话dao,数据访问对象,用于会话的CRUD,比如我们想把Session保存到

数据库,那么可以实现自己的SessionDAO,通过如JDBC写到数据库;比如想把Session放到

Memcached中,可以实现自己的Memcached SessionDAO;另外SessionDAO中可以使用Cache

进行缓存,以提高性能;

⑦CacheManager缓存控制器,来管理如用户、角色、权限等的缓存的;因为这些数据基本上

很少去改变,放到缓存中后可以提高访问的性能

⑧Realm即领域,相当于datasource数据源,可以是JDBC实现,也可以是LDAP实现,或者内存

实现等等,securityManager进行安全认证需要通过Realm获取用户权限数据,比如:如果用户

身份数据在数据库那么realm就需要从数据库获取用户身份信息。

注意:Shiro不知道你的用户/权限存储在哪及以何种格式存储;所以我们一般在应用中都需要

实现自己的Realm;

⑨Cryptography即密码管理,shiro提供了一套加密/解密的组件,方便开发。比如提供常用的

散列、加/解密等功能。

4.认证(Authentication)

验证用户是否合法 在 shiro 中,用户需要提供principals (身份)和credentials(凭证) 给shiro,从而实现对用户身份的验证。

Principal:身份信息

是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱地址等

credential:凭证信息

是只有主体自己知道的安全信息,如密码 、证书、指纹等。

认证流程:

案例演示一简单认证:

配置shiro.ini文件

[users]

vector=123456

测试:

public class TestAuthentication {

@Test

p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值