• 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删除品牌

    业务规则:

    • 如果数据不存在,不允许删除
    • 如果此品牌已经关联了类别,不允许删除
  • 相关阅读:
    流量新玩法:微信问一问了解一下
    Springboot jar运行时,将jar内的文件拷贝到文件系统中
    2022双十一哪些电容笔值得买?Ipad10代电容笔品牌推荐
    linux篇【11】:linux下的线程<前序>
    频率出现七次的词汇
    Master公式-递归时间复杂度度量
    安全防御实验2
    java获取中文拼音
    C++教程从入门到实战
    setup里面 计算属性与监视
  • 原文地址:https://blog.csdn.net/TheNewSystrm/article/details/126315993