shiro
文章平均质量分 59
慌张的唐同学
这个作者很懒,什么都没留下…
展开
-
2021-12-28 shiro学习心得
2021SC@SDUSC基于web应用的登录认证和授权管理问题据了解(加上个人理解),不使用安全框架,一般情况下,处理安全问题的数据库模型是RBAC(role base access controller),就是由角色控制可以访问的资源,然后给用户分配角色,这样就使得角色有了某种权限,权限就是各种controller的请求路径。这种做法就需要把所有的请求路径都管理起来,如果controller层的请求路径有变动,数据库就要变动,使得管理不方便。如果用面向对象的开放封闭原则来说,这算是一种差的做法。然后原创 2021-12-28 11:15:24 · 202 阅读 · 0 评论 -
2021-12-28 shiro-core 自定义realm
2021SC@SDUSC我们要自定义Realm,首先我们需要先确定我们定义的Realm类中所需要的功能都需要什么,我们需要缓存功能,认证功能,授权功能,三大功能 .我们首先看一下AuthorizingRealm的继承图,如下图所示:我们只需要继承于 AuthorizingRealm来实现我们的Realm子类即可,并重写缓存,认证,和授权功能。CustomRealmpackage com.shiro.realm;import org.apache.shiro.authc.Authenticati原创 2021-12-28 11:03:28 · 322 阅读 · 0 评论 -
2021-12-26 shiro-core JdbcRealm源码分析(二)
2021SC@SDUSCJdbcRealm的类继承关系图JdbcRealm测试package com.shiro.test;import com.alibaba.druid.pool.DruidDataSource;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.authc.credential.HashedCr原创 2021-12-28 09:58:39 · 738 阅读 · 0 评论 -
2021-12-26 shiro-core JdbcRealm源码分析(一)
2021SC@SDUSCJdbcRealm的类继承关系图JdbcRealm:允许通过 JDBC 调用进行身份验证和授权的领域。 默认查询建议一种潜在的模式,用于检索用户的密码以进行身份验证,以及查询用户的角色和权限。 可以通过设置领域的查询属性来覆盖默认查询。如果身份验证和授权的默认实现无法处理您的架构,则可以对此类进行子类化并覆盖适当的方法。 (通常是doGetAuthenticationInfo(AuthenticationToken) 、 getRoleNamesForUser(Conn原创 2021-12-28 09:54:23 · 298 阅读 · 0 评论 -
2021-11-25 shiro-core IniRealm源码分析(二)
2021SC@SDUSCIniRealm的类继承关系图2.IniRealm基于Ini配置创建SimpleAccount实例的Realm实现。此实现在Ini配置中查找两个sections : [users] # One or more user definitions ... [roles] # One or more role definitions此类还支持设置resourcePath属性以从 .ini 资源创建帐户数据。 仅当 Realm 中还没有帐户数据时原创 2021-12-02 22:02:26 · 171 阅读 · 0 评论 -
2021-11-25 shiro-core IniRealm源码分析(一)
2021SC@SDUSCIniRealm的类继承关系图1.TextConfigurationRealmSimpleAccountRealm,它可以用于验证在启动时创建的初始用户、角色和权限对象的基于文本的配置。每个用户帐户定义指定用户的用户名、密码和角色。 每个角色定义指定一个名称和一个可选的分配权限集合。 可以为用户分配角色,并且可以为角色分配权限。 通过传递关联,每个用户“拥有”他们所有角色的权限。用户和用户到角色的定义通过setUserDefinitions方法指定,角色到权限的定义通过原创 2021-12-02 21:44:20 · 253 阅读 · 0 评论 -
2021-11-20 shiro-core SimpleAccountRealm源码分析(三)
2021SC@SDUSCSimpleAccountRealm的类继承关系图SimpleAccountRealmSimpleAccountRealm是Realm接口的一个简单实现,它使用一组配置的用户帐户和角色来支持身份验证和授权。 每个帐户条目指定用户的用户名、密码和角色。 角色还可以映射到权限并与用户关联。用户账号和角色存储在内存中的两个Map中,因此预计两者的总数都不够大。SimpleAccountRealm变量users:一个Map,是用户名和用户的对应关系,用户包括了用户名,用户密码原创 2021-11-20 10:00:00 · 526 阅读 · 0 评论 -
2021-11-18 shiro-core SimpleAccountRealm源码分析(二)
2021SC@SDUSCSimpleAccountRealm的类继承关系图6. AuthorizingRealmAuthorizingRealm的变量authorizationCachingEnabled:授权缓存器是否可用authorizationCache:授权缓存器,是一个Cache集合authorizationCacheName:授权缓存器的名称permissionResolver:权限处理器,主要用来处理传过来的权限信息,根据给定的字符串表示解析权限。permissionR原创 2021-11-18 19:46:57 · 311 阅读 · 0 评论 -
2021-11-15 shiro-core SimpleAccountRealm源码分析(一)
2021SC@SDUSCSimpleAccountRealm的类继承关系图1. InitializableShiro 容器不可知接口,指示此对象需要初始化 //初始化这个对象 void init() throws ShiroException;2. RolePermissionResolverAware标识“尽量使用已经存在的应用程序配置的RolePermissionResolver而不是由自己创建的组件实现”的接口。这主要由Authorizer和Realm实现,因为它们执行权限检查原创 2021-11-18 16:22:21 · 430 阅读 · 0 评论 -
2021-11-10 shiro-core 从CachingRealm看realm底层实现(二)
2021SC@SDUSCCachingRealm的类继承关系图CachingRealm的变量Logger:使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类。INSTANCE_COUNT:原子数,用来标识当前实例,仅在默认构造函数中为当前实例命名是参与命名标识。CachingRealm的实例变量name:该实例Realm的标识cachingEnabled:此Realm是否使用缓存caheManager: 缓存管理器,使用缓存可以避免需要授权信息时频繁的调用数据库查询的问原创 2021-11-17 20:55:02 · 492 阅读 · 0 评论 -
2021-11-05 shiro-core 从CachingRealm看realm底层实现(一)
2021SC@SDUSCCachingRealm的类继承结构图本次将先分析CachingRealm实现的四个接口1. CacheManagerAwarepublic interface CacheManagerAware { //在此组件上设置可用的 CacheManager 实例 void setCacheManager(CacheManager cacheManager);}CacheManagerAware是一个接口,将 CacheManager 作为参数注入到实现该接口的原创 2021-11-05 09:45:00 · 241 阅读 · 0 评论 -
2021-09-30 Shiro项目综述
2021SC@SDUSCShiro项目综述什么是Shiro?Apache Shiro(读作“sheeroh”,即日语“城”)是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。Shiro的前身是JSecurity。2004年,Les Hazlewood和Jeremy Haile创办了Jsecurity。当时他们找不到适用于应用程序级别的合适Java安全框架,同时又对JAAS非常失望。2004年到2008年期间,JSecurity托管在Sou原创 2021-09-30 21:01:36 · 227 阅读 · 0 评论 -
2021-09-24
测试原创 2021-09-24 16:49:01 · 71 阅读 · 0 评论 -
2021-11-03 shiro-core shiro认证流程和Realm的基本架构
2021SC@SDUSCShiro认证流程package com.shiro.test;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.mgt.DefaultSecurityManager;import org.apache.shiro.realm.SimpleAccountRealm;import org.apa原创 2021-11-03 17:40:59 · 573 阅读 · 0 评论