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

如何自己做淘宝网站品牌推广专员

如何自己做淘宝网站,品牌推广专员,wordpress修改用户头像,龙岗区黄阁坑社区文章目录前言本次测试注解介绍注解使用SecuredPreAuthorizePostAuthorizePostFilterPreFilter代码下载前言 之前security中,针对配置项进行了相关的配置和测试。 但是这些都是基于在security.config.MyConfig#configure(org.springframework.security.config.annot…

文章目录

  • 前言
  • 本次测试
  • 注解介绍
  • 注解使用
    • @Secured
    • @PreAuthorize
    • @PostAuthorize
    • @PostFilter
    • @PreFilter
  • 代码下载

前言

之前security中,针对配置项进行了相关的配置和测试。

但是这些都是基于在security.config.MyConfig#configure(org.springframework.security.config.annotation.web.builders.HttpSecurity)中进行对应请求的权限限制

如果是多个请求,各个有不同的配置项,依旧还采取configure(HttpSecurity http)的配置方式,将会有很多的不便之处。

本次测试

本篇博客主要说明,如何采取注解的方式,实现不同请求不同权限设定的配置和测试。

注解介绍

在配置和设置操作之前,先大致介绍下几种注解的用途。

  • 1、@Secured
    判断主体是否具备角色访问方法。需要注意匹配的字符串需要增加前缀 ROLE_
  • 2、@PreAuthorize
    适用于进入方法前的权限验证,
    可以将登录用户的 roles / permissions 参数 传到方法中
  • 3、@PostAuthorize (用的较少
    方法执行后进行权限校验,适合验证带有返回值的权限。
  • 4、@PostFilter
    权限验证通过后,留下指定用户名的数据。
  • 5、@PreFilter
    对传递参数值做过滤。

注解使用

@Secured

判断主体是否具备角色访问方法。需要注意匹配的字符串需要增加前缀 ROLE_

在使用注解配置之前,需要先在启动类上开启注解支持

@EnableGlobalMethodSecurity(securedEnabled = true) //开启 security 对方法上增加权限的功能

编写测试接口,使用注解限定接口访问权限:

@RequestMapping("/update")
@Secured({"ROLE_admin","ROLE_user"})
public String update(){return "security test 5  update  需要验证的接口";
}@RequestMapping("/delete")
@Secured({"ROLE_delete"})
public String delete(){return "security test 5  delete  需要验证的接口";
}

security.service.MySecurityService#loadUserByUsername中设定用户权限信息。
在这里插入图片描述

List<GrantedAuthority> admin = AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_user,ROLE_admin,admin");

由于登录角色设定有ROLE_userROLE_adminadmin三种权限。

接口/update需要角色为ROLE_adminROLE_user
接口/delete需要角色为ROLE_delete

从设置权限上来看,/update是可以访问,但/delete会因为无权,无法访问。

请求测试:

http://localhost/update
在这里插入图片描述
在这里插入图片描述

http://localhost/delete
在这里插入图片描述

@PreAuthorize

适用于进入方法前的权限验证,
可以将登录用户的 roles / permissions 参数 传到方法中

在配置之前,必须在启动类上增加下列注解:

@EnableGlobalMethodSecurity(prePostEnabled = true) //开启 security 对方法上增加权限的功能

如果存在使用其他注解的情况,可以使用下列注解方式:

@EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true) //开启 security 对方法上增加权限的功能

编写测试controller接口:

@RequestMapping("/updateBefore")
//@PreAuthorize("hasRole('ROLE_admin')")
//@PreAuthorize("hasAnyRole('ROLE_admin','ROLE_user')")
//@PreAuthorize("hasAuthority('admin')")
@PreAuthorize("hasAnyAuthority('admin','update')") // 注意单引号
public String updateBefore(){return "security test 5  updateBefore  需要验证的接口";
}

检查登录账户的配置角色信息:
在这里插入图片描述
请求测试:

http://localhost/updateBefore
在这里插入图片描述

在这里插入图片描述

@PostAuthorize

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

在测试之前,必须保证启动类上包含下列注解,保证注解的正常使用:

@EnableGlobalMethodSecurity(prePostEnabled = true) //开启 security 对方法上增加权限的功能

如果存在使用其他注解的情况,可以使用下列注解方式:

@EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true) //开启 security 对方法上增加权限的功能

编写对应的测试接口:

@RequestMapping("/updateAfter")
@PostAuthorize("hasAnyRole('ROLE_update')") // 未配置 ROLE_update 权限
public String updateAfter(){log.info("=== 进入当前 updateAfter ====");return "security test 5  updateAfter  需要验证的接口";
}

查看配置权限中的登录角色的权限信息:
在这里插入图片描述
请求测试:

http://localhost/updateAfter
在这里插入图片描述
在这里插入图片描述
查看控制台:
在这里插入图片描述

@PostFilter

权限验证通过后,留下指定用户名的数据。
对返回数据做过滤

编写请求接口:

@RequestMapping("/postFilter")
@PreAuthorize("hasAnyAuthority('admin','update')") // 注意单引号
@PostFilter("filterObject.username == 'xiangjiao'") // 针对返回数据做过滤
public List<User> postFilter(){log.info("=== 进入当前 postFilter ====");List<User> userLists = new ArrayList<>();userLists.add(new User(1,"xiangjiao","bunana",1,0));userLists.add(new User(2,"xiangjiao2","bunana2",1,0));return userLists;
}

上面封装数据结果有两个!

请求:

http://localhost/postFilter
在这里插入图片描述
在这里插入图片描述
本来是两条数据,但是只返回了一条,
@PostFilter(“filterObject.username == ‘xiangjiao’”) 只针对 username 为 xiangjiao 的数据进行返回!

@PreFilter

对传递参数值做过滤。

编写请求接口:

@PostMapping("/preFilter")
@PreAuthorize("hasAnyAuthority('admin','update')") // 注意单引号
@PreFilter("filterObject.id % 2 == 0") // id为偶数才能请求
public String preFilter(@RequestBody List<User> userLists){log.info("=== 进入当前 preFilter ====");log.info(userLists.toString());return "security test 5  preFilter  需要验证的接口";
}

暂未测试,因为前后分离还未深入研究,后期补上!

代码下载

springboot-security-08

gitee 代码下载地址

http://www.wooajung.com/news/34591.html

相关文章:

  • 免费网站搭建西安seo经理
  • 网架公司和网架加工厂的区别重庆seo搜索引擎优化优与略
  • 网站设计的必要性惠州网站建设方案推广
  • 做网站公司yuanmus小游戏推广接单平台
  • 怎么做没有后台程序的网站如何申请百度竞价排名
  • 江西响应式网页建设价格seo网站有哪些
  • 织梦搭建企业网站厦门seo俱乐部
  • 上海市委常委班子手机seo快速排名
  • 昆明网站建设排名北大青鸟培训机构靠谱吗
  • 小说网站建设源码郑州seo优化外包
  • 网站建设与管理说课稿百度推广客户端app下载
  • 全屋设计装修效果图廊坊关键词优化平台
  • 寻花问柳-专注做一家男人的网站猪seo站
  • 牧和邻宠物网站建设短视频代运营方案策划书
  • 呼和浩特网站优化搜狗网站收录
  • 视频网站如何做微信营销百度推广网页版
  • 湛江市研发网站建设腾讯广告推广怎么做
  • 做网站首页置顶多少钱太原网络推广价格
  • 建个公司网站多少钱宁德市人民医院
  • 手机版网站图片自适应怎么做百度指数批量查询工具
  • 湖北建设执业资格注册中心网站seo整站优化解决方案
  • 网站设计制作多少钱营销型网站案例
  • 怎么做企业官方网站企业网站建设方案
  • 网络服务系统百度网盘seo优化
  • wordpress建站不好用关键词搜索排名查询
  • 自己弄网站需要多少钱百度广告推广价格
  • 网站建设 聊城百度平台商家客服电话
  • 网站滚动栏特效模板html郑州网站设计有哪些
  • 网站增加二级域名网站策划书模板范文
  • web2.0网站开发网站怎么做推广和宣传