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

06 - spring security角色和权限设置

spring security角色和权限设置

文档

  1. 00 - spring security框架使用
  2. 01 - spring security自定义登录页面
  3. 02 - spring security基于配置文件及内存的账号密码
  4. 03 - spring security自定义登出页面
  5. 04 - spring security关闭csrf攻击防御
  6. 05 - spring security权限控制

角色和权限设置

说明
  1. 以基于内存的账号密码为例,设置权限的写法:

    @Bean
    public UserDetailsService userDetailsService() {InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();// 此时配置文件中的用户名和密码将不可用manager.createUser(User.withDefaultPasswordEncoder().username("user").password("password").authorities("USER_LIST").build());return manager;
    } 
    
  2. 以基于内存的账号密码为例,设置角色的写法:

    @Bean
    public UserDetailsService userDetailsService() {InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();// 此时配置文件中的用户名和密码将不可用manager.createUser(User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build());return manager;
    }
    
  3. 需要注意的是,.authorities.roles不能同时写,同时写后面的会覆盖前面的,如下面示例:

    @Bean
    public UserDetailsService userDetailsService() {InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();// 此时配置文件中的用户名和密码将不可用manager.createUser(User.withDefaultPasswordEncoder().username("user").password("password").authorities("USER_LIST").roles("USER").build());return manager;
    }
    

    此时,该用户是没有USER_LIST权限的,该权限被后面设设置.roles覆盖了,可以结合上篇文件的示例:05 - spring security权限控制,会发现,此时访问带USER_LIST权限的接口,会被拒绝访问

  4. 实际上,调用设置角色的方法.roles也是在操作权限,权限名是ROLE前缀+角色名,比如:.roles("USER"),相当于设置了ROLE_USER权限

  5. 设置角色时,角色名不能以ROLE_开头

http://www.xdnf.cn/news/1358983.html

相关文章:

  • vulnhub-billu_b0x靶机渗透
  • GPT-5国内免费体验
  • k8s下的网络通信之calico与调度
  • sqlite创建数据库,创建表,插入数据,查询数据的C++ demo
  • 最新sa-token的oauth2封装免密和密码登录
  • 【高等数学】第十章 重积分——第一节 二重积分的概念与性质
  • MinIO03-Linux安装
  • Docker安装RocketMQ
  • 征程 6X 常用工具介绍
  • AI大模型应用开发面试:深入解析技术点
  • 每日算法题【链表】:相交链表、环形链表、环形链表II
  • 鸿蒙中点击完成时延分析
  • LeetCode 42.接雨水
  • response对象的elapsed属性
  • Elasticsearch Ruby 客户端故障排查实战指南
  • Bright Data MCP:突破AI数据获取限制的革命性工具
  • 阿里云 OSS 前端直传实战:表单上传 + Policy 模式详解
  • GD32VW553-IOT 测评和vscode开发环境搭建
  • 硬件开发_基于物联网的宠物猫饲养系统
  • 互联网大厂Java面试模拟:核心技术点深度解析
  • 极验demo(float)(二)
  • 从字节码层面剖析以太坊智能合约创建原理
  • EXCEL实现复制后倒序粘贴
  • 从Android到鸿蒙:一场本应无缝的转型-优雅草卓伊凡
  • iptables 防火墙核心知识梳理(附实操指南)
  • 【文献阅读】Land degradation drivers of anthropogenic sand and dust storms
  • 《一次高并发场景下疑难Bug的深度排查与复盘》
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十七)设置主题
  • AI代码生成器全面评测:六个月、500小时测试揭示最强开发助手
  • CI/CD持续集成及持续交付详解