ERP项目集成Shiro权限框架详解

需积分: 9 0 下载量 71 浏览量 更新于2024-08-30 收藏 433KB DOCX 举报
"ERP项目开发笔记,涉及到Apache Shiro框架的使用,包括Shiro的认证、授权、加密和会话管理功能。笔记中提到了Shiro的内置过滤器,如anon、authc、perms等,并在ERP项目中应用了这些过滤器。还提及了ERP项目整合Shiro的过程,如添加依赖、配置web.xml以及设置Spring的DelegatingFilterProxy。此外,还讨论了认证需求分析和实现,包括如何判断用户登录状态并进行相应操作。" ERP项目开发中,Apache Shiro是一个关键的安全框架,它提供了全面的安全管理服务。Shiro的四个主要功能模块包括: 1. 认证(Authentication):这是确认用户身份的过程,通常涉及用户登录。Shiro会检查用户提交的凭证,如果凭证有效,用户会被认为是已认证的。 2. 授权(Authorization):授权是指确定已认证的用户是否具有访问特定资源的权限。例如,通过perms和roles过滤器,可以限制只有拥有特定权限或角色的用户才能访问某些URL。 3. 加密(Cryptography):Shiro支持数据加密,可以保护敏感信息不被泄露。它可以对密码等数据进行加密处理,如MD5,但需要注意MD5是单向加密,无法解密。 4. 会话管理(Session Management):Shiro可以帮助管理用户会话,跟踪用户的状态,确保用户在整个会话期间都保持认证。 在ERP项目中,Shiro的使用通常涉及以下步骤: - 添加Shiro的依赖到项目的父工程,并定义版本号。 - 配置web.xml,添加DelegatingFilterProxy过滤器,置于其他过滤器之前,如Struts2的核心过滤器。这个代理过滤器将实际工作委托给Spring容器中的ShiroFilterFactoryBean。 - 创建Spring配置文件,如applicationContext_shiro.xml,用于配置Shiro的相关设置。 - 如果用户尝试访问受保护的资源而未登录,Shiro会根据配置的过滤器规则进行拦截,例如使用anon和authc过滤器实现匿名访问和认证访问。 - 当用户尝试访问需要特定权限的资源时,使用perms过滤器进行权限校验。 认证部分的需求分析通常涉及识别哪些资源需要登录后才能访问,以及在用户未登录的情况下如何处理,比如重定向到登录页面。实现上,可以通过Shiro的Subject对象进行登录状态的判断和操作,如调用`subject.isAuthenticated()`检查用户是否已登录,或使用`subject.login(token)`方法进行登录尝试。 Shiro在ERP项目中的集成能够提供一套完整的安全管理解决方案,确保只有合法的用户和权限才能访问系统资源,从而增强系统的安全性。