前言:springboot整合springsecurity采用@Secured注解无法通过,配置以及权限设置都没有问题,用户具有此权限还是返回org.springframework.security.access.AccessDeniedException: 不允许访问异常

原因:翻看源码发现

SecurityExpressionRoot类中有如下方法
    private static String getRoleWithDefaultPrefix(String defaultRolePrefix, String role) {if (role == null) {return role;} else if (defaultRolePrefix != null && defaultRolePrefix.length() != 0) {return role.startsWith(defaultRolePrefix) ? role : defaultRolePrefix + role;} else {return role;}}

而defaultRolePrefix属性声明:

private String defaultRolePrefix = "ROLE_";

解决:

第一种方式:把要授权的方法改为ROLE_开头,例如

@Secured("ROLE_SYSTEM_USER_VIEW")
@GetMapping()
public String user()
{return prefix + "/user";
}

设置Authorities时带上"ROLE_"前缀即可

public Collection<? extends GrantedAuthority> getAuthorities() {return permissions.parallelStream().filter(p -> !StringUtils.isEmpty(p)).map(p -> new SimpleGrantedAuthority("ROLE_" + p)).collect(Collectors.toSet());}

第二种方式:去掉默认的ROLE_前缀

从4.2版本后可以设置默认前缀

    //授权时去掉默认角色前缀"ROLE_"@BeanGrantedAuthorityDefaults grantedAuthorityDefaults() {return new GrantedAuthorityDefaults(""); // Remove the ROLE_ prefix}

@Secured注解验证无法通过的问题相关推荐

  1. 方法级权限控制-@Secured注解使用

    @Secured注解 @Secured注解标注的方法进行权限控制的支持,其值默认为disabled. 示例: @Secured("IS_AUTHENTICATED_ANONYMOUSLY&q ...

  2. php注释验证,注解验证 · ThinkPHP6.0完全开发手册 · 看云

    ## 注解验证器 ThinkPHP支持使用注解方式定义路由和验证,需要安装额外的扩展: ``` composer require topthink/think-annotation ``` 然后可以直 ...

  3. java注解验证实体_java @Vaild 可以用在对象上面作注解校验吗

    public String save(@RequestBody @Valid Stad stad) 只有对象的时候是没问题的,现在保存对象的时候还有一个文件同时要上传上来, 因为对象封装json在da ...

  4. SpringBoot注解验证参数

    注解 作用类型 解释 @NotNull 任何类型 属性不能为null @NotEmpty 集合 集合不能为null,且size大于0 @NotBlanck 字符串.字符 字符类不能为null,且去掉空 ...

  5. java 注解报错_java注解验证接收参数 返回注解字段的错误

    1.在controller接口方法接收参数加上 @Valid注解 并且在实体类参数后紧跟 BindingResult bindingresul BindingResultMsgUtil工具类: pub ...

  6. java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?

    作者:digdeep .cnblogs.com/digdeep/p/4525567.html 导引 Spring中的注解大概可以分为两大类: spring的bean容器相关的注解,或者说bean工厂相 ...

  7. java validate注解_JAVA 注解验证字段(例子)

    注解类 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @Documented @Inherited public @in ...

  8. 注解形式控制器 数据验证,类型转换(3)

    7.4.数据验证 7.4.1.编程式数据验证 Spring 2.x提供了编程式验证支持,详见[4.16.2 数据验证]章节,在此我们重写[4.16.2.4.1.编程式验证器]一节示例. (1.验证器实 ...

  9. 注解形式控制器 数据验证,类型转换

    7.1.简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换.验证及格式化. 一.在Spring3之前,我们使用如下架构进行类型转换.验证及格式化: 流程: ①:类型转换:首先调用Proper ...

  10. SpringMVC数据验证——第七章 注解式控制器的数据验证、类型转换及格式化——SpringMVC

    7.4.数据验证 7.4.1.编程式数据验证 Spring 2.x提供了编程式验证支持,详见[4.16.2 数据验证]章节,在此我们重写[4.16.2.4.1.编程式验证器]一节示例. (1.验证器实 ...

最新文章

  1. linux java内存分析_Java内存分析利器MAT使用详解
  2. English trip -- Review Unit1 Personal Information 个人信息
  3. [译] 制定良好的路线图:产品负责人的六个实施步骤
  4. 商品表有哪些字段_面试中有哪些经典的数据库问题?
  5. 滤波器开发之四:基于算术平均的中值滤波器
  6. 鲲鹏性能优化十板斧(四)——磁盘IO子系统性能调优
  7. mac r 导出csv文件_R在Max OS进行导入和导出xlsx文件
  8. 来FAL学风控|风控策略分析师的日常是怎样的?(案例+代码详解篇)
  9. 去除Many2one字段的“创建并编辑”选项
  10. Otto开发初探——微服务依赖管理新利器
  11. 谷链——国内首个可落地的农产品溯源
  12. 禁用Win10驱动程序强制签名验证
  13. php imagick 取得psd缩略图,PHP中使用Imagick操作PSD文件实例
  14. 【色彩管理】ICC曲线制作教程
  15. 简单的木马编写之服务端篇
  16. elastic mapping not_analyzed 简单理解 + analysis-ik分词器安装
  17. 电脑dnf,DNF卡顿如何解决_DNF卡顿如何解决 教你调整电脑参数畅玩游戏_52PKDNF
  18. PackageManagerService安装应用流程
  19. 遗传算法实现图像分割(MATLAB)
  20. Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment

热门文章

  1. laravel中faker的方法总结
  2. C++ 命令行参数解析
  3. iOS 15:如何查找丢失或失窃的 iPhone,就算它已关机也可远程定位
  4. linux嗅探密码,tcpdump密码嗅探_tag
  5. UNI-APP_uni-app uni.getUserProfile微信授权,微信授权信息显示微信用户解决
  6. 去掉UISearchBar自带的的边框背景
  7. 哈希(散列)函数的一些应用
  8. Rimworld Mod制作教程7 comp组件
  9. P5960 【模板】差分约束算法 · spfa
  10. 200个案例5大应用场景最全AI“战疫”武器