• JSD-2204-单点登录-一系列小练习-Day16


    1.单点登录

    单点登录,即SSO(Single Sign On),表现在多个服务中,在其中某1个服务登录后,其它的服务均能识别登录的用户的身份。

    单点登录的解决方案:

    • 共享Session

      • 通常,可以选择将所有Session存储在专门的Redis服务器中,其它需要验证、读取用户身份的服务,都将从此Redis服务器中访问用户的Session信息
    • Token

      • 直接记录用户身份的信息,各服务器端只需要使用共同的验证、解析机制,即可识别用户的身份

    1.1在Product项目中实现授权访问

    需要处理:

    • 添加spring-boot-starter-security依赖
    • 添加jjwtfastjson依赖
    • 创建Security配置类,在此配置类中:
      • 将Knife4j相关的URL设计为“白名单”
      • 允许跨域访问
      • 添加JWT过滤器
    • 创建JWT过滤器
    • 创建LoginPrincipal表示登录的当事人

    2作业

    2.1显示类别列表

    注意:具体实现的应该是“根据父级类别,查询其子级类别列表”。

    2.2添加类别

    业务规则:

    • 如果选择了父级类别,且父级类别不存在,不允许添加
    • 深度(depth),由服务器端直接决定,值为:当无父级类别时,值为1,当有父级类别时,值为父级类别的深度+1
    • 是否父级(is_parent),新添加的类别,此值固定为0;如果有父级类别,且父级类别的is_parent为0时,需要更新为1

    2.3删除类别

    业务规则:

    • 如果数据不存在,不允许删除
    • 如果仍存在子级类别,不允许删除
    • 如果被删除的类别的父级没有更多子级,则需要将父级的is_parent更新为0
    • 如果此类别关联了品牌,不允许删除
    • 如果此类别关联了属性模板,不允许删除

    2.4启用与禁用类别

    业务规则:

    • 如果数据不存在,不允许启用/禁用
    • 如果数据的当前状态与目标状态相同,不允许设置
      • 例如当前为启用,目标也是启用,则不允许

    2.5创建属性模板

    业务规则:

    • 每个属性模板的名称必须唯一

    2.6显示属性模板

    2.7删除属性模板

    业务规则:

    • 如果数据不存在,则不执行删除
    • 如果有“属性”数据关联到此模板,则不允许删除
    • 如果此属性模板关联了类别,不允许删除

    2.8关联类别与属性模板

    提示:

    • 关联这2个数据,本质上是向pms_category_attribute_template表中插入数据
    • 前端页面设计难度较大,可以暂时使用2个输入框来输入类别的id、属性模板的id

    2.9添加属性

    业务规则:

    • 属性模板必须存在

    2.10根据属性模板id查询属性列表

    2.11删除属性

    业务规则:

    • 如果数据不存在,则不执行删除

    2.12显示品牌列表

    2.13关联类别与品牌

    提示:

    • 关联这2个数据,本质上是向pms_brand_category表中插入数据
    • 前端页面设计难度较大,可以暂时使用2个输入框来输入类别的id、品牌的id

    2.14删除品牌

    业务规则:

    • 如果数据不存在,不允许删除
    • 如果此品牌已经关联了类别,不允许删除
  • 相关阅读:
    开源模型应用落地-业务优化篇(八)
    148. 排序链表 ●●
    Flink与RabbitMQ Connector
    基于maven的项目搭建(已跑通)
    中文编程开发语言工具编程案例:计时计费管理系统软件连接灯控器编程案例
    并发性,时间和相对性(2)
    【数据结构】&&【C++】平衡搜索二叉树的模拟实现(AVL树)
    QT使用QThread创建线程的方法
    ✿✿✿JavaScript ---- 函数/js内置对象
    Linux 磁盘管理,分区,文件系统
  • 原文地址:https://blog.csdn.net/TheNewSystrm/article/details/126315993