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

上海整站优化百度推广网站一年多少钱

上海整站优化,百度推广网站一年多少钱,学前教育网站建设,全国知名网文章目录 1 EnableGlobalMethodSecurity1.1 PreAuthorize1.1.1 开启注解1.1.2 使用注解原生方法1.1.3 使用注解自定义方法 1.2 PostAuthorize1.3 Secured 2 其他注解2.1 PostFilter2.2 PreFilter 3 权限表达式 1 EnableGlobalMethodSecurity EnableGlobalMethodSecurity 是 Sp…

文章目录

  • 1 @EnableGlobalMethodSecurity
    • 1.1 @PreAuthorize
      • 1.1.1 开启注解
      • 1.1.2 使用注解原生方法
      • 1.1.3 使用注解自定义方法
    • 1.2 @PostAuthorize
    • 1.3 @Secured
  • 2 其他注解
    • 2.1 @PostFilter
    • 2.2 @PreFilter
  • 3 权限表达式

1 @EnableGlobalMethodSecurity

@EnableGlobalMethodSecuritySpring Security中的一个注解,用于启用全局方法安全性。
其中属性prePostEnabledsecuredEnabled都是它的属性,分别表示是否允许使用@PreAuthorize@Secured注解来控制方法的访问权限。
prePostEnabledtrue时,表示允许使用@PreAuthorize@Secured注解来控制方法的访问权限;当securedEnabledtrue时,表示允许使用@Secured注解来控制方法的访问权限。

点击此处了解 SpringSecurity和JWT实现认证和授权

1.1 @PreAuthorize

@PreAuthorizeSpring Security 提供的注解之一,用于在方法执行之前进行权限验证。通过使用 @PreAuthorize 注解,可以在方法级别对用户的权限进行校验,只有具备相应权限的用户才能执行被注解的方法。

@PreAuthorize注解会在方法执行前进行权限验证,支持Spring EL表达式,它是基于方法注解的权限解决方案

1.1.1 开启注解

SpringSecurity配置类上添加 @EnableGlobalMethodSecurity(prePostEnabled = true) 注解,以开启方法级别的权限验证,并支持 @PreAuthorize 注解。

@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {}

1.1.2 使用注解原生方法

在方法上添加 @PreAuthorize 注解:找到需要进行权限验证的方法,在方法上添加 @PreAuthorize 注解,并指定相应的权限表达式

@PreAuthorize 注解支持丰富的权限表达式,可以根据具体的需求进行配置。例如,可以使用 hasRole('ROLE_ADMIN') 来验证用户是否具备指定角色,或者使用 hasAuthority('PERMISSION_ADD_USER') 来验证用户是否具备指定权限。

通过使用 @PreAuthorize 注解,可以对方法进行细粒度的权限控制,确保只有授权的用户才能执行对应的方法。

@PreAuthorize("hasRole('ROLE_ADMIN')")
public void adminOnlyMethod(){}

1.1.3 使用注解自定义方法

@GetMapping("/{reportId}" )
@PreAuthorize("@test.hasPermission('archsys_sysarchreport_view')" )
public R getById(@PathVariable("reportId" ) Long reportId) {return R.ok(sysArchReportService.getById(reportId));
}

@PreAuthorize("@test.hasPermission('archsys_sysarchreport_view')" )

  • test:是一个注册在 Spring 容器中的 Bean,对应的类是 cn.test.PermissionService;
    hasPermissionPermissionService类中定义的方法;
    当Spring EL 表达式返回TRUE,则权限校验通过;
    PermissionService.java的定义如下:
@Service("test")
public class PermissionService {	public boolean hasPermission(String... permissions) {if (ArrayUtil.isEmpty(permissions)) {return false;}Authentication authentication = SecurityContextHolder.getContext().getAuthentication();if (authentication == null) {return false;}Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();return authorities.stream().map(GrantedAuthority::getAuthority).filter(StringUtils::hasText).anyMatch(x -> PatternMatchUtils.simpleMatch(permissions, x));}}

1.2 @PostAuthorize

在方法执行后再进行权限校验,适合验证带有返回值的权限

先要开启注解功能

@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {}

使用

@PostAuthorize("hasAnyAuthority('write')")
@RequestMapping(value = "/testPostAuthorize")
@ResponseBody
public String postAuthorize() {System.out.println("方法进入了。。。。");return "preAuthorize";
}

1.3 @Secured

判断是否具有角色,注意这里匹配的字符串需要添加前缀ROLE_

开启注解功能

@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {}

在控制器方法上添加注解

@Secured({"ROLE_read"})
@RequestMapping(value = "/testSecured")
@ResponseBody
public String testSecured() {return "testSecured";
}

2 其他注解

2.1 @PostFilter

@PostFilterSpring Security框架中的一个注解,用于在请求处理之后对请求进行过滤。
该注解可以应用于方法级别或类级别,用于指定只有满足特定条件的请求才能通过过滤器。例如,我们可以使用@PostFilter注解来限制只有经过身份验证的用户才能访问某个接口。

在方法级别上,@PostFilter注解的语法如下:

@RestController
public class MyController {@PostFilter("hasRole('ADMIN')")@GetMapping("/admin")public String admin() {// ...}
}

其中,hasRole('ADMIN')是一个预定义的条件表达式,表示只有拥有ADMIN角色的用户才能访问该方法。如果用户没有该角色,则无法访问该方法。

2.2 @PreFilter

进入控制器之前对数据进行过滤
@PreFilterSpring Security 框架中的一个注解,用于在请求处理之前对请求进行过滤。
该注解可以应用于方法级别或类级别,用于指定只有满足特定条件的请求才能通过过滤器。例如,我们可以使用@PreFilter注解来限制只有拥有特定角色的用户才能访问某个接口。

在方法级别上,@PreFilter注解的语法如下:

@RequestMapping("/getTestPreFilter")
@PreFilter("hasRole('ADMIN')")
@ResponseBody
public List<UserPO> getTestPreFilter(@RequestBody List<UserPO> list) {list.forEach(t -> {System.out.println(t.getId() + "\t" + t.getUsername());});return list;
}

3 权限表达式

Spring Security中,权限表达式是一种控制访问权限的方式。它可以通过方法级别的注解@PreAuthorize@PostAuthorize@PreFilter@PostFilter来实现。其中,@PreAuthorize@PostAuthorize注解用于控制方法级别的访问权限,而@PreFilter@PostFilter注解用于控制请求级别的过滤。

除了这些注解之外,Spring Security还提供了一些其他的注解和类来实现权限控制。例如,可以使用WebExpressionVoter类来解析权限表达式,并根据表达式的结果来判断用户是否拥有对应的权限。此外,还可以使用SecurityExpressionRoot类来构建表达式,并将其应用于URL路径或方法上。

http://www.qdjiajiao.com/news/9344.html

相关文章:

  • 龙岗网站建设服务重庆网站搭建
  • 社保网站哪里做转入怎么制作网页链接
  • 宁波做网站的大公司排名营销型网站设计
  • 做网站开发用哪种语言好seo搜索引擎优化论文
  • 农业咨询平台网站建设方案做引流推广的平台
  • 手机如何建免费网站汽车推广软文
  • 个人网页设计概述泉州百度seo公司
  • 海淀网站建设公司青岛新闻最新今日头条
  • 浙江制做网站的公司十大app开发公司排名
  • 做资讯网站需要什么条件外链网站推荐几个
  • 安徽建设工程信息网官网查询武汉网站搜索引擎优化
  • 在自己的网站上怎么做淘宝客站长之家综合查询工具
  • 电脑网页制作软件下载windows优化大师要会员
  • 系统开发费用账务处理seo优化工程师
  • 网页设计和网站开发的区别北京做网站公司哪家好
  • 广州手机模板建站网站建设找哪家公司好
  • 建设个人网站南宁百度seo排名优化
  • 企业官网 开源seo是什么职位
  • 网站改版换了域名湖南网站seo找行者seo
  • 上传网站到google长春头条新闻今天
  • 百度网站地图在线生成优化排名推广教程网站
  • 移动端网站怎么做的百度写一篇文章多少钱
  • 网站建设界面建议北京网站优化技术
  • 蒙城做网站的公司品牌营销方案
  • 苹果软件做ppt下载网站seo搜索引擎优化工资多少钱
  • 网页设计工程师工资多少徐州seo排名公司
  • 聊城市网站制作十大免费网站推广入口
  • 贵阳市白云区官方网站今日重庆重要消息
  • 网站建设公司用的什么后台电商网站对比表格
  • 高端电子网站建设广州网站设计实力乐云seo