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

上海网站建设电话电子商务网站建设合同签订

上海网站建设电话,电子商务网站建设合同签订,html美食网页制作代码,常德做网站公司最近学习若依框架#xff0c;里面的权限注解涉及到了SpEL表达式 PreAuthorize(ss.hasPermi(system:user:list))#xff0c;若依项目中用的是自己写的方法进行权限处理#xff0c; 也可以只用security 来实现权限逻辑代码#xff0c;下面写如何用security 实现。…最近学习若依框架里面的权限注解涉及到了SpEL表达式 PreAuthorize(ss.hasPermi(system:user:list))若依项目中用的是自己写的方法进行权限处理 也可以只用security 来实现权限逻辑代码下面写如何用security 实现。 security中  PreAuthorize(hasPermission(Object target, Object permission))  的hasPermission方法是通过PermissionEvaluator实现默认继承类是DenyAllPermissionEvaluator所有方法返回false所以注解后的结果只有拒绝权限所以继承PermissionEvaluator重写hasPermission即可。 逻辑如下 1、securityConfig文件上加入注解EnableMethodSecurity且引入自定义评估器CustomPermissionEvaluator 2、编写CustomPermissionEvaluator文件 注security 6.2.1 中 EnableGlobalMethodSecurity 已弃用改使用 EnableMethodSecurity 且prePostEnabled为ture,只需添加注解EnableMethodSecurity 即可 package com.example.securityDemo.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler; import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.SecurityFilterChain;/*** description: security配置类* author: mml* create: 2024/01/26*/ Configuration EnableWebSecurity EnableMethodSecurity public class SecurityConfig {// 引入自定义评估器Beanstatic MethodSecurityExpressionHandler methodSecurityExpressionHandler(CustomPermissionEvaluator permissionEvaluator) {DefaultMethodSecurityExpressionHandler handler new DefaultMethodSecurityExpressionHandler();handler.setPermissionEvaluator(permissionEvaluator);return handler;}BeanUserDetailsService userDetailsService(){UserDetails user User.withDefaultPasswordEncoder().username(mml).password(123).roles(USER).authorities(system:user:update,system:user:list).build();return new InMemoryUserDetailsManager(user);}/*** 是Spring Security 过滤器链Spring Security 中的所有功能都是通过这个链来提供的* date 2024/1/26*/BeanSecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {// 拦截所有请求但是不经过任何过滤器 // return new DefaultSecurityFilterChain(new AntPathRequestMatcher(/**));httpSecurity.authorizeHttpRequests(p - p.anyRequest().authenticated()).csrf(c - c.disable()).formLogin((form) - form.loginPage(/login).permitAll());return httpSecurity.build();}}自定义评估器代码 import org.springframework.security.access.PermissionEvaluator; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.stereotype.Component; import org.springframework.util.AntPathMatcher;import java.io.Serializable; import java.util.Collection;/*** description: 自定义权限评估器* author: mml* create: 2024/02/17*/ Component public class CustomPermissionEvaluator implements PermissionEvaluator {AntPathMatcher antPathMatcher new AntPathMatcher();Overridepublic boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission) {// 获取当前用户的角色Collection? extends GrantedAuthority authorities authentication.getAuthorities();for (GrantedAuthority authority : authorities) {// 权限判断if (antPathMatcher.match(authority.getAuthority(), (String) permission)){// 说明有权限return true;}}return false;}Overridepublic boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) {return false;} } 接口层 RestController public class UserController {RequestMapping(/list)PreAuthorize(hasPermission(/list,system:user:list))public String list() {return get list ;}RequestMapping(/add)PreAuthorize(hasPermission(/add,system:user:add))public String add() {return post add ;} } 可以使用postman测试 测试结果如下 list-有权限 add 方法-没有权限 security参考链接方法安全 Spring Security
http://www.w-s-a.com/news/252838/

相关文章:

  • 服务网站建设企业广州模板建站系统
  • 怎么做属于自己的免费网站浏览器游戏网址
  • 上海城乡住房建设厅网站西安网站推广慧创科技
  • 做策划网站推广怎么写简历互联网公司手机网站
  • 怎么做宣传网站网站建设采购项目合同书
  • 网站的空间和域名备案做网站要会写什么
  • wap 网站源码企业网站被转做非法用途
  • 下载网站模板怎么使用做物流网站的公司
  • 网站 商城 app 建设建设银行江苏省行网站
  • 广州网站开发建设西安广告公司联系方式
  • 怎么用腾讯云服务器做网站个人网站开发视频
  • 网站建设技术代码坦洲网站建设公司哪家好
  • 阿里云对象存储做静态网站怎样做网站性能优化
  • 怎样做理财投资网站装修平面图用什么软件简单
  • 建手机wap网站大概多少钱苏州网站设计公司有哪些
  • 网站建设需求文件学校网站建设方案及报价
  • 网站开发一般多少钱wordpress打赏赞插件
  • 做中国o2o网站领导唐山网站制作软件
  • 门户网站简介做网站一天能接多少单
  • 论坛类网站建设遵义网站制作外包
  • vps服务器购买网站小视频做网站怎么赚钱
  • 网站用图片wordpress同步发布
  • 织梦图片自适应网站源码网页美工的设计要点
  • 渝快办官方网站wordpress产品图片怎么改
  • 高端网站特色深圳建网站哪
  • 宝塔搭建网站软文小故事200字
  • 公司网站设计免费虚拟主机网站源码
  • 怎样做好网站用户体验申请网站空间
  • 网站建设优化公司招聘福州网站建设思企
  • 设计网站会员wordpress rss聚合