Shiro
Shiro
杨林伟
像火箭科学家一样思考!
展开
-
Shiro知识补充
参考:https://www.jianshu.com/p/6786ddf54582/原创 2020-06-04 15:57:40 · 399 阅读 · 0 评论 -
11 Shrio 授权流程
流程如下:1、首先调用Subject.isPermitted*/hasRole*接口,其会委托给SecurityManager,而SecurityManager接着会委托给Authorizer;2、Authorizer是真正的授权者,如果我们调用如isPermitted(“user:view”),其首先会通过PermissionResolver把字符串转换成相应的Permission实例;...原创 2019-05-24 16:14:22 · 365 阅读 · 0 评论 -
10 Shrio Permission
字符串通配符权限规则:“资源标识符:操作:对象实例ID”即对哪个资源的哪个实例可以进行什么操作。其默认支持通配符权限字符串,“:”表示资源/操作/实例的分割;“,”表示操作的分割;“*”表示任意资源/操作/实例。1、单个资源单个权限subject().checkPermissions("system:user:update"); 用户拥有资源“system:user”的“update”...原创 2019-05-24 15:57:21 · 374 阅读 · 0 评论 -
09 Shrio 授权的代码实现
基于角色的访问控制(隐式角色)1、在ini配置文件配置用户拥有的角色(shiro-role.ini)[users] zhang=123,role1,role2 wang=123,role1 规则即:“用户名=密码,角色1,角色2”,如果需要在应用中判断用户是否有相应角色,就需要在相应的Realm中返回角色信息,也就是说Shiro不负责维护用户-角色信息,需要应用提供,Shiro...原创 2019-05-24 15:25:12 · 272 阅读 · 0 评论 -
08 Shrio 授权的三种方式
Shiro支持三种方式的授权:编程式:通过写if/else授权代码块完成:Subject subject = SecurityUtils.getSubject(); if(subject.hasRole(“admin”)) { //有权限 } else { //无权限 } 注解式:通过在执行的Java方法上放置相应的注解完成:@RequiresR...原创 2019-05-24 15:07:48 · 335 阅读 · 0 评论 -
07 Shrio 授权的几个关键对象
授权也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。主体(Subject)主体,即访问应用的用户,在Shiro中使用Subject代表该用户。用户只有授权后才允许访问相应的资源。资源(Resource)在应用中用户可以访问的任何东...原创 2019-05-24 15:04:51 · 400 阅读 · 0 评论 -
06 Shrio Authenticator及AuthenticationStrategy
Authenticator的职责是验证用户帐号,是Shiro API中身份验证核心的入口点:public AuthenticationInfo authenticate(AuthenticationToken authenticationToken) throws AuthenticationException; 如果验证成功,将返回Authenticatio...原创 2019-05-24 14:17:26 · 404 阅读 · 0 评论 -
05 Shrio Realm
Realm域,Shiro从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。如我们之前的ini配置方式将使用org.apache.shiro.realm.te...原创 2019-05-24 14:00:22 · 284 阅读 · 2 评论 -
04 Shrio身份认证流程
流程如下:1、首先调用Subject.login(token)进行登录,其会自动委托给Security Manager,调用之前必须通过SecurityUtils. setSecurityManager()设置;2、SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证;3、Authenticator才是真正的身份验证者,Shiro API中...原创 2019-05-24 13:46:42 · 375 阅读 · 0 评论 -
03 Shrio身份认证示例
身份验证: 即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名密码来证明。在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份。principals: 身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有...原创 2019-05-24 13:46:21 · 357 阅读 · 0 评论 -
02 Shiro的架构
首先,我们从外部来看Shiro吧,即从应用程序角度的来观察如何使用Shiro完成工作。如下图:可以看到:应用代码直接交互的对象是Subject,也就是说Shiro的对外API核心就是Subject;其每个API的含义如下:Subject: 主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subjec...原创 2019-05-24 13:45:30 · 335 阅读 · 0 评论 -
01 Shrio简介
Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。Shiro可以非常容易的开发出足够好的应用,其不仅...原创 2019-05-24 10:54:26 · 376 阅读 · 0 评论