Shiro ---身份认证、授权 2022-07-16 08:22 1093阅读 0赞 # Subject 认证主体 # 1.身份认证流程: ![Center][] > > 2.Realm&JDBC Reaml > > > Subject 认证主体包含两个信息: > > > > Principals:身份,可以是用户名,邮件,手机号码等等,用来标识一个登录主体身份; > > > > Credentials:凭证,常见有密码,数字证书等等; > > > > > > Realm:意思是域,Shiro 从 Realm 中获取验证数据; > > > Realm 有很多种类,例如常见的 jdbc realm,jndi realm,text realm。 # 权限认证核心要素 # > > 1.权限认证,也就是访问控制,即在应用中控制谁能访问哪些资源。 > > > 2.在权限认证中,最核心的三个要素是:权限,角色和用户; > > > 3.权限,即操作资源的权利,比如访问某个页面,以及对某个模块的数据的添加,修改,删除,查看的权利; > > > 4.角色,是权限的集合,一中角色可以包含多种权限; > > > 5.用户,在 Shiro 中,代表访问系统的用户,即 Subject; > > > > 6.授权 > > > > > 权限认证,也就是访问控制,即在应用中控制谁能访问哪些资源。 > > > > 在权限认证中,最核心的三个要素是:权限,角色和用户; > > > > 权限,即操作资源的权利,比如访问某个页面,以及对某个模块的数据的添加,修改,删除,查看的权利; > > > > 角色,是权限的集合,一中角色可以包含多种权限; > > > > 用户,在 Shiro 中,代表访问系统的用户,即 Subject; > > > > > > > > > > > 1.注解式授权 > > > > @RequiresAuthentication 要求当前 Subject 已经在当前的 session 中被验证通过才能被访问或调用。 > > > > > @RequiresGuest 要求当前的 Subject 是一个"guest",也就是说,他们必须是在之前的 session 中没有被验证或被记住才 > > > > > 能被访问或调用。 > > > > > @RequiresPermissions("account:create") 要求当前的 Subject 被允许一个或多个权限,以便执行注解的方法。 > > > > > @RequiresRoles("administrator") 要求当前的 Subject 拥有所有指定的角色。如果他们没有,则该方法将不会被执行,而 > > > > > 且 AuthorizationException 异常将会被抛出。 > > > > > @RequiresUser RequiresUser 注解需要当前的 Subject 是一个应用程序用户才能被注解的类/实例/方法访问或调用。一个“应 > > > > > 用程序用户”被定义为一个拥有已知身份,或在当前 session 中由于通过验证被确认,或者在之前 session 中的'RememberMe' > > > > > 服务被记住。 > > > 2.Jsp 标签授权 > > > > <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> > > > > Guest 标签:用户没有身份验证时显示相应信息,即游客访问信息; > > > > User 标签:用户已经身份验证/记住我登录后显示相应的信息; > > > > Authenticated 标签:用户已经身份验证通过,即 Subject.login 登录成功,不是记住我登录的。 > > > > notAuthenticated 标签:用户没有身份验证通过,即没有调用 Subject.login 进行登录,包括记住我自动登录 > > > > 的也属于未进行身份验证。 > > > > principal 标签 显示用户身份信息,默认调用 Subject.getPrincipal()获取,即 Primary Principal。 > > > > hasRole 标签 如果当前 Subject 有角色将显示 body 体内容。 > > > > lacksRole 标签 如果当前 Subject 没有角色将显示 body 体内容。 > > > > hasAnyRoles 标签 如果当前 Subject 有任意一个角色(或的关系)将显示 body 体内容。 > > > > hasPermission 标签 如果当前 Subject 有权限将显示 body 体内容。 > > > > lacksPermission 标签 如果当前 Subject 没有权限将显示 body 体内容。 > > 7.Permissions 对权限深入理解 > > > > > 单个权限 query > > > > 单个资源多个权限 user:query user:add 多值 user:query,add > > > > 单个资源所有权限 user:query,add,update,delete user:\* > > > > 所有资源某个权限 \*:view > > > > 实例级别的权限控制 > > > > 单个实例的单个权限 printer:query:lp7200 printer:print:epsoncolor > > > > 所有实例的单个权限 printer:print:\* > > > > 所有实例的所有权限 printer:\*:\* > > > > 单个实例的所有权限 printer:\*:lp7200 > > > > 单个实例的多个权限 printer:query,print:lp7200 [Center]: /images/20220716/87af955efdae4438a36a50702b707875.png
相关 【Shiro】Apache Shiro架构之身份认证(Authentication) 欢迎关注我新搭建的博客:[http://www.itcodai.com/][http_www.itcodai.com] > Shiro系列文章: > [【Shiro】Ap 古城微笑少年丶/ 2022年09月22日 03:59/ 0 赞/ 179 阅读
相关 Apache Shiro 身份认证例子 1. 概述 在本例子中使用Apache Shiro在Web应用中实现身份认证,将Shiro与Spring进行集成,使用内嵌的derby数据库存储用户信息。 持久层为Hi 今天药忘吃喽~/ 2022年09月20日 11:25/ 0 赞/ 180 阅读
相关 Shiro ---身份认证、授权 Subject 认证主体 1.身份认证流程: ![Center][] > > 2.Realm&JDBC Reaml > > > Subject 谁借莪1个温暖的怀抱¢/ 2022年07月16日 08:22/ 0 赞/ 1094 阅读
相关 使用Apache Shiro进行身份认证-LDAP认证 Apache Shiro 支持LDAP做为数据源进行身份认证。我做了一个简单的实验来说明Shiro是如何支持LDAP的。 在本机安装了OpenLDAP,版本为2.4.23。手 绝地灬酷狼/ 2022年06月13日 12:11/ 0 赞/ 233 阅读
相关 Shiro 认证授权详解 1 权限管理 1.1用户身份认证 1.1.1 概念 身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份 雨点打透心脏的1/2处/ 2022年05月28日 01:43/ 0 赞/ 224 阅读
相关 shiro认证和授权相关 ![70][]![70 1][] 参考项目源码:shiro-springMvc或者easyee-sm [70]: https://img-blog.csdn.net 本是古典 何须时尚/ 2022年05月25日 21:18/ 0 赞/ 179 阅读
相关 Shiro+SSM整合,认证授权 环境 : Shiro+SSM整合基于你已经拥有一个可运行的SSM+Maven环境。 主体 : 1. 导入shiro相关jar包 小灰灰/ 2022年05月24日 02:22/ 0 赞/ 220 阅读
相关 使用Apache Shiro进行身份认证-LDAP认证 Apache Shiro 支持LDAP做为数据源进行身份认证。我做了一个简单的实验来说明Shiro是如何支持LDAP的。 在本机安装了OpenLDAP,版本为2.4.23。手 ﹏ヽ暗。殇╰゛Y/ 2022年04月16日 05:15/ 0 赞/ 311 阅读
相关 shiro(二)基础案例身份认证 shiro认证(二) 2.1 基本概念 2.1.1 身份验证 在 shiro 中,用户需要提供principals (身份)和credentials(证明)给s 谁践踏了优雅/ 2021年11月17日 03:02/ 0 赞/ 303 阅读
相关 Apache Shiro身份认证 身份认证的流程图如下: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG 逃离我推掉我的手/ 2021年06月11日 15:14/ 0 赞/ 488 阅读
还没有评论,来说两句吧...