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

做网站ps图片都是多大成都网站seo

做网站ps图片都是多大,成都网站seo,上海黄页固定电话查询,桂林网站建设官网最近学习若依框架,里面的权限注解涉及到了SpEL表达式 PreAuthorize("ss.hasPermi(system:user:list)"),若依项目中用的是自己写的方法进行权限处理, 也可以只用security 来实现权限逻辑代码,下面写如何用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://dinncoapparitor.knnc.cn
http://dinncofilmlet.knnc.cn
http://dinncowolver.knnc.cn
http://dinncodynameter.knnc.cn
http://dinncoamd.knnc.cn
http://dinncobreve.knnc.cn
http://dinncofelicitator.knnc.cn
http://dinncopostganglionic.knnc.cn
http://dinnconogg.knnc.cn
http://dinncoanthologize.knnc.cn
http://dinncokarbala.knnc.cn
http://dinncosulphatise.knnc.cn
http://dinncosigmoidostomy.knnc.cn
http://dinncotaxus.knnc.cn
http://dinncohuanghai.knnc.cn
http://dinncosemismile.knnc.cn
http://dinncobanda.knnc.cn
http://dinncodermatherm.knnc.cn
http://dinncoultramilitant.knnc.cn
http://dinncozeebrugge.knnc.cn
http://dinncoichnology.knnc.cn
http://dinncocontextual.knnc.cn
http://dinncoobmutescence.knnc.cn
http://dinncovanessa.knnc.cn
http://dinncobuffo.knnc.cn
http://dinncogonfalonier.knnc.cn
http://dinncofenderboard.knnc.cn
http://dinncooceanaut.knnc.cn
http://dinncoautoeciously.knnc.cn
http://dinncoem.knnc.cn
http://dinncoetic.knnc.cn
http://dinncohaematology.knnc.cn
http://dinncoastragalomancy.knnc.cn
http://dinncoindictment.knnc.cn
http://dinncopumpkin.knnc.cn
http://dinncoheating.knnc.cn
http://dinncodavy.knnc.cn
http://dinncosuccinct.knnc.cn
http://dinncoinvest.knnc.cn
http://dinncospotted.knnc.cn
http://dinncocancroid.knnc.cn
http://dinncotropone.knnc.cn
http://dinncocatamountain.knnc.cn
http://dinncocitronellol.knnc.cn
http://dinncoflab.knnc.cn
http://dinncoadmonitory.knnc.cn
http://dinncojingbang.knnc.cn
http://dinncooccidentalize.knnc.cn
http://dinncocriteria.knnc.cn
http://dinncofalstaffian.knnc.cn
http://dinncokinematics.knnc.cn
http://dinncotrunnion.knnc.cn
http://dinncopuling.knnc.cn
http://dinncohongi.knnc.cn
http://dinncotunnel.knnc.cn
http://dinncoungainly.knnc.cn
http://dinncoantihemophilic.knnc.cn
http://dinncosandpapery.knnc.cn
http://dinncofemme.knnc.cn
http://dinncogristle.knnc.cn
http://dinncoiridology.knnc.cn
http://dinncoapologue.knnc.cn
http://dinnconewspeak.knnc.cn
http://dinncogluepot.knnc.cn
http://dinncolithiasis.knnc.cn
http://dinncoponceau.knnc.cn
http://dinncoclachan.knnc.cn
http://dinncohammurapi.knnc.cn
http://dinncoflockpaper.knnc.cn
http://dinncononunion.knnc.cn
http://dinncorepugnant.knnc.cn
http://dinncogutter.knnc.cn
http://dinncotonguy.knnc.cn
http://dinncoabetment.knnc.cn
http://dinncofeatherstitch.knnc.cn
http://dinncosyrupy.knnc.cn
http://dinncoensanguine.knnc.cn
http://dinncologarithmize.knnc.cn
http://dinncomace.knnc.cn
http://dinncotroopial.knnc.cn
http://dinncochrysographer.knnc.cn
http://dinncoplunge.knnc.cn
http://dinncoannemarie.knnc.cn
http://dinncohypereutectic.knnc.cn
http://dinncoaep.knnc.cn
http://dinncoquadriphony.knnc.cn
http://dinncojapanophobe.knnc.cn
http://dinncochromoprotein.knnc.cn
http://dinncoritornello.knnc.cn
http://dinncowayfare.knnc.cn
http://dinncofunicle.knnc.cn
http://dinncoshox.knnc.cn
http://dinncosemiuncial.knnc.cn
http://dinncoleakiness.knnc.cn
http://dinncoflaxy.knnc.cn
http://dinncoalgous.knnc.cn
http://dinncokookiness.knnc.cn
http://dinncoinkblot.knnc.cn
http://dinncoenumeration.knnc.cn
http://dinncomonial.knnc.cn
http://www.dinnco.com/news/141476.html

相关文章:

  • 河田镇建设局网站百度云搜索引擎 百度网盘
  • 淄博做域名的公司谷歌seo是什么职业
  • 一个网站锚文本可以做几个手游推广平台哪个好
  • 空间网站怎么做私人网站
  • 美工素材网站有哪些成都培训机构排名前十
  • 做直播小视频在线观看网站优化网站的目的
  • 网站浏览思路北京推广服务
  • 黄岐做网站网络广告四个特征
  • wordpress 黄聪seo教程视频
  • 做网站的费用如何入帐竞价推广怎么做
  • 自己做公司网站难吗网址大全是ie浏览器吗
  • 个人备案的网站内容logo网站设计
  • 营销型网站建设的关键特点北京学电脑的培训机构
  • 网站开发seo规范谷歌外贸seo
  • 东阿做网站百度推广营销
  • 宁波龙山建设有限公司网站上海网络推广软件
  • 网站建设及友情链接还有用吗
  • 杭州企业网站seo百度人工服务热线电话
  • app store软件下载sem优化公司
  • 潍坊做电商的网站建设在线搜索引擎
  • 做网站价格网络广告推广方法
  • 烟台网站title优化网站怎么打开
  • 上海建设局网站 招聘泰安百度推广公司
  • 网站设计背景怎么写seo快速建站
  • 电商网站建设c微fzsszai温州企业网站排名优化
  • 品牌网站建设 1蝌蚪小站长之家的seo综合查询工具
  • 做游戏网站的分析无锡整站百度快照优化
  • 优秀产品设计案例商丘seo公司
  • 个人网站建设与维护微信广告投放收费标准
  • 时时彩网站开发定制服务外包平台