当前位置: 首页 > news >正文

学做网站 空间 域名网站关键词没排名怎么办

学做网站 空间 域名,网站关键词没排名怎么办,展馆展厅设计报价,专业网站建设电话Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛用于Java应用程序中以确保安全。它提供了多种注解来简化安全控制的实现,特别是在方法级别的权限控制上。以下是几个核心的Spring Security注解及其用途的详细介绍: 1…

Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛用于Java应用程序中以确保安全。它提供了多种注解来简化安全控制的实现,特别是在方法级别的权限控制上。以下是几个核心的Spring Security注解及其用途的详细介绍:

1. @EnableWebSecurity

  • 作用: 该注解用于启动Spring Security的配置。当你在配置类上使用它时,Spring会自动扫描并应用安全配置。这是配置Spring Security的基础步骤。

2. @EnableGlobalMethodSecurity

  • 作用: 用于开启方法级别的安全检查。它允许你在方法或类级别上使用其他安全相关的注解,如@PreAuthorize, @PostAuthorize, @Secured等。这个注解有几个可配置的属性,比如:
    • prePostEnabled=true 启用@PreAuthorize@PostAuthorize注解。
    • securedEnabled=true 启用@Secured注解。
    • jsr250Enabled=true 启用JSR-250注解,如@RolesAllowed

3. @PreAuthorize

  • 作用: 该注解用于方法执行前的权限检查。它可以包含SpEL(Spring Expression Language)表达式,用于动态地决定用户是否有权访问该方法。例如,@PreAuthorize("hasRole('ADMIN')")会检查用户是否拥有’ADMIN’角色。

Spring Expression Language (SpEL) 是Spring框架内置的一种强大的表达式语言,它为在运行时查询和操作对象图提供了强大的能力。SpEL在Spring的多个组件中都有广泛的应用,包括但不限于Spring Security中的权限控制、Spring Integration的消息路由、Spring Data的查询条件定义等。以下是对SpEL表达式的详细介绍:

基本概念

  • 目的: SpEL的主要目的是提供一种简洁、灵活的方式来访问和操作应用程序上下文中的对象属性、方法以及执行逻辑运算。

  • 语法: SpEL表达式通常被包含在#{}内,例如#{someObject.property}。但具体使用时,根据上下文不同,可能不需要花括号,如在某些Spring Security注解中。

基本用法

  1. 访问属性: 基本的属性访问表达式形如person.name,其中person是对象引用,name是属性名。

  2. 方法调用: 可以直接调用对象的方法,如@PreAuthorize("@ss.hasPermi('system:config:list')")中调用了ss对象的hasPermi方法。

  3. 算术运算: 支持加减乘除、取模等基本运算,如#{2+3}

  4. 逻辑运算: 包括and, or, not等,例如#{age >= 18 and age <= 60}

  5. 条件表达式: 类似于编程语言中的三元运算符,如#{person.age > 18 ? 'adult' : 'minor'}

高级特性

  1. 类型转换: SpEL自动处理基本类型的转换,也可以显式转换,如T(String).valueOf(123)将整数转换为字符串。

  2. 集合操作: 支持遍历、筛选、投影等操作集合的方法,如#{names.?[length() > 5]}筛选出长度大于5的字符串。

  3. 安全访问: 可以限制表达式的执行环境,避免潜在的安全风险,如只允许读取操作。

  4. 内置函数: 提供了一系列内置函数,如#sqrt(x)计算平方根,#arrays处理数组等。

  5. 上下文变量: 在表达式中可以直接引用由外部提供的变量,如方法参数、Spring Bean等。

示例

  • 访问Bean属性: #{systemProperties['os.name']} 获取操作系统名称。

  • 条件判断: @PreAuthorize("hasRole('ADMIN') or hasRole('MODERATOR')") 检查用户是否有管理员或版主角色。

  • 集合筛选: #{users.?[age > 25]} 筛选出年龄大于25的用户。

总结

SpEL为开发者提供了一种在配置文件或注解中使用复杂逻辑的强大工具,极大地增强了Spring应用的灵活性和可配置性。通过掌握SpEL的基本语法和高级功能,可以有效地处理各种运行时的决策和数据操作需求。

4. @PostAuthorize

  • 作用: 与@PreAuthorize类似,但检查发生在方法执行之后。这允许基于方法返回的结果来决定访问权限。不常用,但在某些特定场景下非常有用。

5. @Secured

  • 作用: 一个更简单的注解,用于指定访问该方法所需的角色列表。它不像@PreAuthorize那样支持复杂的表达式,而是直接接受角色名称的数组。例如,@Secured({"ROLE_ADMIN", "ROLE_USER"})

6. @PreFilter 和 @PostFilter

  • 作用: 这两个注解用于数据过滤,分别在方法执行前后对返回集合进行过滤。它们可以基于SpEL表达式来决定哪些元素应该包含在结果集中。

使用示例

WebSecurityConfigurerAdapter的子类中,你通常会这样配置以启用方法级安全:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {// ... 其他配置 ...
}

然后,在你的服务类或控制器方法上使用这些注解:

@Service
public class MyService {@PreAuthorize("hasRole('USER')")public String someProtectedMethod() {return "Hello, User!";}// 更多使用示例...
}

这些注解为开发者提供了一种声明式的方法来管理权限,使得代码更加清晰和易于维护。

http://www.yayakq.cn/news/768909/

相关文章:

  • 永康公司网站开发主题字体怎么设置 wordpress
  • 实验室网站建设意义有网但是网页打不开是什么原因
  • 做房产应看的网站小程序怎么申请注册费用
  • 做网站买域名要多少钱企业内网 网站建设的解决方案
  • 常熟网站制作哪家好wordpress 主题 插件 加载
  • 淘宝客如何做网站推广各大推广平台
  • 做网站用的什么服务器企业商城网站建设价格
  • 抚州哪里有做企业网站的公司笔记本做网站服务器
  • 网站空间编辑器遵义城乡住房建设厅网站
  • 企业建设网站企业工会网站建设可以
  • 做h网站怎么才能安全报价单通用模板
  • 建立一个个人介绍网站seo优化标题
  • 论网站建设情况安徽建设厅官网
  • 学做网站论坛濮阳免费网站建设
  • 制作网站的公司(深圳)平面设计 网站推荐
  • 手机站和网站有区别吗做期货看啥子网站
  • 4399网站开发人员 被挖走德州建设网站公司
  • 有后台管理系统网站管理线上推广团队
  • 做网站如何给图片命名搭建电商分销系统
  • 美业网站服务器wordpress
  • 网站建设选择题小型教育网站的开发与建设
  • 东莞网站建设网站排名优化怎么建设淘客自己的网站_
  • 网站不被收录怎么办新手做网站流程
  • 网站建设和网站设计的区别关于建设门户网站的请示
  • 如何快速写一个网站网站建设怎么建设
  • 创建一个网站的技术html代码编辑
  • 专业的集团网站开发泉州做网站
  • 郴州有哪些推广平台沈阳seo网站推广优化
  • 找网站有中文字目的wordpress文章列表加广告
  • dede网站打不开苏州做网站的企业