【Shiro】第四章 Web项目集成Shiro(三)

简介: 【Shiro】第四章 Web项目集成Shiro(三)

【7】测试

【7.1】启动

点击apply然后点击OK

 

【7.2】登录过滤

访问http://localhost:8080/platform/home的时候,会被

【7.3】角色过滤

使用“admin”用户登录,密码:123

根据SecurityServiceImpl我们可以知道使用admin账号

登录成功之后:

此时点击“列表”,因为当前admin用户是有admin角色

 

所有可以正常访问

 

点击“添加”,因为当前admin用户是没有order:add的资源

 

所以回401

 

【7.4】资源过滤

点击“退出”

 

使用“jay”用户登录,密码为123

 

点击“添加”

 

因为SecurityServiceImpl中为jay用户添加如下的资源

 

点击“添加”之后正常访问

 

点击“列表”之后,因为“jay”用户满意“admin”角色,所以访问受限

 

4、web项目授权

前面我们学习了基于ini文件配置方式来完成授权,下面我们来看下其他2种方式的授权

【1】基于代码

【1.1】登录相关
Subject 登录相关方法 描述
isAuthenticated() 返回true 表示已经登录,否则返回false。
【1.2】角色相关
Subject 角色相关方法 描述
hasRole(String roleName) 返回true 如果Subject 被分配了指定的角色,否则返回false。
hasRoles(List<String> roleNames) 返回true 如果Subject 被分配了所有指定的角色,否则返回false。
hasAllRoles(Collection<String>roleNames) 返回一个与方法参数中目录一致的hasRole 结果的集合。有性能的提高如果许多角色需要执行检查(例如,当自定义一个复杂的视图)。
checkRole(String roleName) 安静地返回,如果Subject 被分配了指定的角色,不然的话就抛出AuthorizationException。
checkRoles(Collection<String>roleNames) 安静地返回,如果Subject 被分配了所有的指定的角色,不然的话就抛出AuthorizationException。
checkRoles(String… roleNames) 与上面的checkRoles 方法的效果相同,但允许Java5 的var-args 类型的参数
【1.3】资源相关
Subject 资源相关方法 描述
isPermitted(Permission p) 返回true 如果该Subject 被允许执行某动作或访问被权限实例指定的资源,否则返回false
isPermitted(List<Permission> perms) 返回一个与方法参数中目录一致的isPermitted 结果的集合。
isPermittedAll(Collection<Permission>perms) 返回true 如果该Subject 被允许所有指定的权限,否则返回false有性能的提高如果需要执行许多检查(例如,当自定义一个复杂的视图)
isPermitted(String perm) 返回true 如果该Subject 被允许执行某动作或访问被字符串权限指定的资源,否则返回false。
isPermitted(String…perms) 返回一个与方法参数中目录一致的isPermitted 结果的数组。有性能的提高如果许多字符串权限检查需要被执行(例如,当自定义一个复杂的视图)。
isPermittedAll(String…perms) 返回true 如果该Subject 被允许所有指定的字符串权限,否则返回false。
checkPermission(Permission p) 安静地返回,如果Subject 被允许执行某动作或访问被特定的权限实例指定的资源,不然的话就抛出AuthorizationException 异常。
checkPermission(String perm) 安静地返回,如果Subject 被允许执行某动作或访问被特定的字符串权限指定的资源,不然的话就抛出AuthorizationException 异常。
checkPermissions(Collection<Permission> perms) 安静地返回,如果Subject 被允许所有的权限,不然的话就抛出AuthorizationException 异常。有性能的提高如果需要执行许多检查(例如,当自定义一个复杂的视图)
checkPermissions(String… perms) 和上面的checkPermissions 方法效果相同,但是使用的是基于字符串的权限。
相关文章
|
1月前
|
JavaScript 前端开发
如何在项目中集成 Babel?
如何在项目中集成 Babel?
34 3
|
23天前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
32 8
|
23天前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
27 7
|
27天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
36 2
|
29天前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
28 4
|
29天前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
70 1
|
1月前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
45 5
|
2月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
24天前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
47 0
|
5月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
316 6

热门文章

最新文章

下一篇
DataWorks