`

Shiro 基于注解和标签实现的授权认证过程

 
阅读更多
将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程 http://blog.csdn.net/tch918/article/details/13849325
Apache Shiro 注解方式授权 http://blog.csdn.net/peterwanghao/article/details/8165014


基于注解
http://jinnianshilongnian.iteye.com/blog/2029717
@RequiresPermissions
授权处理过程
认证通过后接受 Shiro 授权检查,授权验证时,需要判断当前角色是否拥有该权限。
只有授权通过,才可以访问受保护 URL 对应的资源,否则跳转到“未经授权页面”。
如果我们自定义Realm实现,比如我后面的例子中,自定义了ShiroDbRealm类,当访问被@RequiresPermissions注解的方法时,会先执行ShiroDbRealm.doGetAuthorizationInfo()进行授权。
@RequiresPermissions (value={“user:a”, “user:b”}, logical= Logical.OR) 

@RequiresAuthentication
可以用户类/属性/方法,用于表明当前用户需是经过认证的用户。   要求当前Subject 已经在当前的session 中被验证通过才能被访问或调用



@RequiresGuest
要求当前的Subject 是一个"guest",也就是说,他们必须是在之前的session 中没有被验证或被记住才能被访问或调用


@RequiresRoles("administrator")
要求当前的Subject 拥有所有指定的角色。如果他们没有,则该方法将不会被执行,而且AuthorizationException 异常将会被抛出。



@RequiresUser

RequiresUser 注解需要当前的Subject 是一个应用程序用户才能被注解的类/实例/方法访问或调用。一个“应用程序用户”被定义为一个拥有已知身份,或在当前session 中由于通过验证被确认,或者在之前session 中的'RememberMe'服务被记住。





基于JSP TAG的授权实现
http://jinnianshilongnian.iteye.com/blog/2026398
Shiro提供了一套JSP标签库来实现页面级的授权控制。
在使用Shiro标签库前,首先需要在JSP引入shiro标签: 
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>  


hasRole标签
验证当前用户是否属于该角色
<shiro:hasRole name="administrator">    
    <a href="admin.jsp">Administer the system</a>    
</shiro:hasRole>   


hasPermission标签
验证当前用户是否拥有制定权限 
<shiro:hasPermission name="user:create">    
    <a href="createUser.jsp">Create a new User</a>    
</shiro:hasPermission>  
 
分享到:
评论

相关推荐

    将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程.pdf

    本文主要关注如何使用 Shiro 进行基于注解的授权认证过程。 授权,即访问控制,是确保用户只能访问其被授权的资源的关键环节。Shiro 提供了一种灵活的用户权限模型,通常包括用户实体(LoginAccount)、角色实体...

    将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程.docx

    本文主要探讨如何在应用中基于注解实现 Shiro 的授权认证过程。 授权,即访问控制,是 Shiro 的核心功能之一,用于决定用户是否能够访问特定的资源。在 Shiro 中,用户权限通常由三个主要实体组成:LoginAccount...

    Shiro学习示例,以及与SpringMVC整合,标签注解等

    在注解方面,Shiro 提供了一些注解,如`@RequiresAuthentication`、`@RequiresRoles`和`@RequiresPermissions`,可以直接在控制器方法上使用,实现基于注解的访问控制。这样,无需编写大量的权限检查代码,只需在...

    vue与shiro结合实现权限按钮

    6. **通信与拦截**:前端与后端之间的通信可以通过axios等HTTP库完成,同时设置拦截器,对每个请求添加必要的认证和授权信息,以便Shiro在后端进行权限校验。 通过以上步骤,我们可以构建一个完整的前端细粒度权限...

    Shiro 视频教程+源码+课件

    内容涵盖 Shiro 认证、加密、授权、安全标签、安全注解、会话管理、缓存、Rememberme 等 JavaEE 企业级开发的核心技术。视频讲授过程中通过分析源代码使学员知其然更知其所以然。 【课程内容】 第一章 问候 Shiro ...

    shiro

    通过阅读源码,我们可以了解到 Shiro 如何处理认证和授权流程,如何与 Realm 进行交互,以及如何实现会话管理。这对于自定义认证和授权逻辑,或是优化性能非常有帮助。 **实际应用** 在实际项目中,Shiro 可以轻松...

    shiro教程设计

    Apache Shiro 是一个全面的Java安全框架,它能够提供认证、授权、加密、会话管理以及与Web应用集成等功能,而且它被设计成易于使用和理解。Shiro 框架能够运行在Java SE和Java EE环境,无论是在简单的命令行应用程序...

    SSM整合Shiro-登录案例.zip

    SSM整合Shiro登录案例是一个基于Spring、SpringMVC和MyBatis的Java Web项目,其中集成了Apache Shiro安全框架来实现用户的身份认证和授权功能。在这个案例中,我们将探讨如何将这三个主流的Java Web开发框架有效地...

    shiro权限管理系统示例

    - **配置Shiro**: 创建`ShiroConfig`类,设置安全配置,如 Realm(认证和授权的来源)、缓存管理、session管理等。 - **定义 Realm**: 实现`AuthorizingRealm`接口,处理用户凭证的验证和权限的获取,通常与数据库...

    shiro_springmvc_demo

    本项目"shiro_springmvc_demo"显然是一个基于Shiro和SpringMVC的实战示例,旨在帮助开发者理解如何将Shiro集成到SpringMVC应用中,实现用户认证和授权。 在SpringMVC框架中,Shiro可以帮助我们处理用户登录、权限...

    shiro官方doc文档,学习开发都适合

    Apache Shiro 是一个强大且易用的 Java 安全框架,它提供了认证、授权、加密和会话管理功能,简化了开发人员处理安全问题的过程。Shiro 能够被用于开发任何类型的Java应用——从命令行应用、Web 应用到复杂的分布式...

    shiro简单的demo.zip

    4. **Shiro的授权机制**:角色和权限的管理,以及如何通过`@RequiresPermissions`、`@RequiresRoles`等注解实现权限控制。 5. **Redis集成**:使用`RedisSessionDAO`存储Session,提高系统的可扩展性和性能。 6. **...

    权限管理(项目和源码):springboot与shiro整合

    通过这个项目,开发者可以深入理解Spring Boot与Shiro的集成原理,学习如何在实际应用中实现用户认证和授权,提高应用的安全性。同时,这也是对Spring Boot项目结构和Shiro配置的实战演练,有助于提升开发者在企业级...

    跟我学shiro

    - **背景**:Apache Shiro 是一个强大且易于使用的 Java 安全框架,为开发者提供了一站式的安全解决方案,涵盖了认证、授权、加密以及会话管理等多个方面。 - **特性**: - **易用性**:相比其他复杂的安全框架,...

    基于SSM+Shiro的博客系统-期末设计毕业设计.zip

    用户认证与授权:使用Shiro框架实现用户认证和授权功能。包括用户登录、注册、密码加密、角色授权等。 文章管理:实现文章的增删改查功能,包括文章发布、编辑、删除、分类、标签等。 评论管理:实现用户对文章...

    Spring Boot整合Shiro搭建权限管理系统教学提纲.pdf

    6. **安全注解**:在Controller或方法上使用Shiro的注解,如`@RequiresAuthentication`、`@RequiresRoles`和`@RequiresPermissions`,实现基于注解的权限控制。 7. **会话管理**:Shiro还提供会话管理功能,可以...

    springboot_thymeleaf_shiro.zip

    - 配置Shiro的`WebSecurityManager`和`Realm`,实现用户认证和授权逻辑。 - 在Spring Boot的启动类上添加Shiro的自动配置注解,如`@EnableShiroConfig`。 - 使用Thymeleaf的条件标签,如`th:if`和`th:unless`,在...

Global site tag (gtag.js) - Google Analytics