码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spring Security使用总结八,Security的第二个功能授权,不同的角色访问不同的资源


    前面五章基本都是给认证做铺垫的,这一章是security的另一个硬菜:授权,你在我这里注册,成为唯爱痞,我给你个令牌,你可以访问我资源,但是不能所有资源都给你,于是就有了授权,你只能访问我让你访问的资源,我不让你访问的资源,你一点都别想看。这里就出现了角色,不同的角色拥有不同的权限,可以访问不同的资源,不同的用户可以拥有多种角色,访问拥有角色可以访问的资源。

    因为这里主要介绍的是security,所以角色权限这些我就简单整个Map来固定住,正常来说是需要建数据库表,访问数据库来获取,但是前面章节也有用户表,这里为了不再重复,不再创建更多的类,就简单创建下面这一个类:

    1. public class MockCacheUtil {
    2. private static MockCacheUtil mapCache;
    3. private final Map> roleItems;
    4. private final Map> pattern;
    5. private MockCacheUtil() {
    6. roleItems = new ConcurrentHashMap<>();
    7. roleItems.put("test22", Collections.singletonList("hello1"));
    8. pattern = new ConcurrentHashMap<>();
    9. pattern.put("/hello",Collections.singletonList("admin"));
    10. pattern.put("/hello1",Arrays.asList("admin", "hello1", "hello2", "hello3"));
    11. pattern.put("/hello2",Arrays.asList("admin", "hello2", "hello3"));
    12. pattern.put("/hello3",Arrays.asList("admin", "hello3"));
    13. }
    14. public static MockCacheUtil getInstance() {
    15. if (mapCache == null) {
    16. synchronized (MockCacheUtil.class) {
    17. if (mapCache == null) {
    18. mapCache = new MockCacheUtil();
    19. }
    20. }
    21. }
    22. return mapCache;
    23. }
    24. public List getRole(String username){
    25. return roleItems.get(username);
    26. }
    27. public List getAllPattern(){
    28. return new ArrayList<>(pattern.keySet());
    29. }
    30. public
    31. 相关阅读:
      Python数据分析案例10——北向资金流入与沪深300涨跌幅分析
      设计模式-原型模式
      关于mysql/mariadb会产生大量错误日志导致硬盘空间很快被占用问题的解决方法
      机器学习第八次课
      selenium新版使用find_element/find_elements函数锁定元素(替换原有find_element_by_xx)
      java项目进度跟踪管理系统
      [附源码]java毕业设计小区物业管理系统
      前端常用的几种加密方法
      异步编程概述
      网页设计作业
    32. 原文地址:https://blog.csdn.net/z449077880/article/details/134240267
      • 最新文章
      • 攻防演习之三天拿下官网站群
        数据安全治理学习——前期安全规划和安全管理体系建设
        企业安全 | 企业内一次钓鱼演练准备过程
        内网渗透测试 | Kerberos协议及其部分攻击手法
        0day的产生 | 不懂代码的"代码审计"
        安装scrcpy-client模块av模块异常,环境问题解决方案
        leetcode hot100【LeetCode 279. 完全平方数】java实现
        OpenWrt下安装Mosquitto
        AnatoMask论文汇总
        【AI日记】24.11.01 LangChain、openai api和github copilot
      • 热门文章
      • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
        奉劝各位学弟学妹们,该打造你的技术影响力了!
        五年了,我在 CSDN 的两个一百万。
        Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
        面试官都震惊,你这网络基础可以啊!
        你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
        心情不好的时候,用 Python 画棵樱花树送给自己吧
        通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
        13 万字 C 语言从入门到精通保姆级教程2021 年版
        10行代码集2000张美女图,Python爬虫120例,再上征途
      Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
      正则表达式工具 cron表达式工具 密码生成工具

      京公网安备 11010502049817号