019-从零搭建微服务-认证中心(八)

这篇具有很好参考价值的文章主要介绍了019-从零搭建微服务-认证中心(八)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在最前

如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。

源码地址(后端):https://gitee.com/csps/mingyue-springcloud-learning

源码地址(前端):https://gitee.com/csps/mingyue-springcloud-ui

文档地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis

开胃小菜

我们现在已经可以通过登录获取用户拥有的角色和菜单权限,但截止目前还没有给接口增加权限点,本章就是通过给接口增加权限点,精细控制接口权限。

获取当前登录用户全部信息

接口返回如下,这里我们看到 mingyue 拥有 system:user:list 权限

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "sysUser": {
      "userId": 1,
      "username": "mingyue",
      "nickname": "明月",
      "sex": "0",
      "password": null,
      "phone": "13288888888",
      "email": null,
      "avatar": null,
      "status": "0",
      "isDeleted": "0",
      "createTime": "2023-07-19T17:06:22",
      "updateTime": "2023-07-19T17:06:25",
      "createBy": "mingyue",
      "updateBy": "mingyue"
    },
    "menuPermission": [
      "system:user:list"
    ],
    "rolePermission": [
      "admin"
    ]
  }
}

添加接口权限

通过 获取所有用户信息 接口演示添加接口权限,此时该接口还没有增加权限点拦截,此时我们登录后访问该接口可以正常返回数据。

增加权限点

添加注解 @SaCheckPermission("system:user:list")

@GetMapping("list")
@SaCheckPermission("system:user:list")
@Operation(summary = "获取所有用户信息")
public R<List<SysUser>> getSysUsers() {
  return R.ok(sysUserService.list());
}

访问测试

我们用户不是拥有 system:user:list 权限点么?为何访问接口报错:无此权限:system:user:list。因为我们并未告诉 Sa-Token 我们拥有 system:user:list 权限点,接下来我们在 Sa-Token 中添加用户拥有的权限点。

{
  "code": 500,
  "msg": "无此权限:system:user:list",
  "data": null
}

Sa-Token 添加用户拥有的权限点

1. Sa-Token 权限管理实现
/**
 * Sa-Token 权限管理实现
 *
 * @author Strive
 * @date 2023/8/8 14:54
 */
public class SaPermissionImpl implements StpInterface {

    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        LoginUser loginUser = LoginHelper.getLoginUser();
        System.out.println(JSONUtil.toJsonStr(loginUser.getMenuPermission()));
        return new ArrayList<>(loginUser.getMenuPermission());
    }

    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        LoginUser loginUser = LoginHelper.getLoginUser();

        return new ArrayList<>(loginUser.getRolePermission());
    }
}
2. Sa-Token 配置注入权限接口实现
@AutoConfiguration
public class SaTokenConfiguration {

    /**
     * 权限接口实现(使用bean注入方便用户替换)
     */
    @Bean
    public StpInterface stpInterface() {
        return new SaPermissionImpl();
    }

}

再次访问测试

此时接口已经可以访问啦,快试试吧!

{
  "code": 200,
  "msg": "操作成功",
  "data": [
    {
      "userId": 1,
      "username": "mingyue",
      "nickname": "明月",
      "sex": "0",
      "password": "123456",
      "phone": "13288888888",
      "email": null,
      "avatar": null,
      "status": "0",
      "isDeleted": "0",
      "createTime": "2023-07-19T17:06:22",
      "updateTime": "2023-07-19T17:06:25",
      "createBy": "mingyue",
      "updateBy": "mingyue"
    },
    ... ...
  ]
}

MingYue-UI 替换后端菜单

修改路由控制

修改 themeConfig.ts 配置文件切换后端接口加载路由菜单

true:开启后端控制路由

false:开启前端控制路由

// 是否开启后端控制路由  
isRequestRoutes: true,

更新路由接口

mingyue-ui/src/api/menu/index.ts

getMenu: (params?: object) => {
  return request({
    url: '/api/system/sysMenu/getRouters',
    method: 'get',
    params,
  });
}

数据脚本

更新菜单数据,数据源:docker/mysql/mingyue.sql

小结

终于可以精细控制后端接口权限了,前端路由也通过后端接口加载了。

接下来我们修改一下用户密码吧,目前还是明文传输,非常的不安全~文章来源地址https://www.toymoban.com/news/detail-641841.html

到了这里,关于019-从零搭建微服务-认证中心(八)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringSecurity+OAuth2.0 搭建认证中心和资源服务中心

    目录   1. OAuth2.0 简介 2. 代码搭建  2.1 认证中心(8080端口) 2.2 资源服务中心(8081端口) 3. 测试结果   OAuth 2.0(开放授权 2.0)是一个开放标准,用于授权第三方应用程序访问用户在资源所有者(用户)的帐户上存储的受保护资源,而无需共享用户凭据。OAuth 2.0 主要用于在

    2024年01月22日
    浏览(51)
  • 从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构

    由于现在java web太卷了,所以各位同行可以考虑换一个赛道,做游戏还是很开心的。 本篇教程给新人用于学习游戏服务器的基本知识,给新人们一些学习方向,有什么错误的地方欢迎各位同行进行讨论。 本篇教程预计使用Java+Redis+Mongo 本着先完成再完美的原则,从最简单的

    2024年02月10日
    浏览(42)
  • 专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

    服务链路追踪已成为不可或缺的一环 skywalking是一个优秀的 国产 开源框架,2015年由个人 吴晟 (华为开发者)开源 , 2017年加入apache 孵化器。 skywalking是分布式系统的应用 程序性能监视工具 ,专为微服务、云原生架构和基于容器化技术 (docker、K8s、Mesos)架构而设计,它是

    2023年04月08日
    浏览(73)
  • 信息安全服务资质认证CCRC证书‖中国网络安全审查技术与认证中心

                                          中国网络安全审查技术与认证中心(英文缩写为:CCRC,原为中国信息安全认证中心)于2006年由中央机构编制委员会办公室批准成立,为国家市场监督管理总局直属正司局级事业单位。依据《网络安全法》《网络安全审查办法》及国家

    2024年02月13日
    浏览(42)
  • 企业申请数据中心基础设施绿色建维服务认证需要注意哪些方面?

    数据中心基础设施绿色建维服务认证是一种针对数据中心建设和维护的全流程认证,旨在确保数据中心的基础设施在建设、运行和维护过程中均符合绿色环保的标准。该认证由独立的第三方机构进行评估和审核,针对数据中心的能源效率、设备健康状况、运营管理等方面进行

    2024年01月21日
    浏览(47)
  • 从零到一搭建netcore6.0 webapi+swagger+jwt认证+aop日志+mysql codefirst模式

    本文介绍从零到一搭建基于netcore6.0版本的 webapi接口应用 包括swagger接口管理文档 jwt接口安全认证 aop接口调用轨迹日志 ef映射mysql 使用codefirst模式交互数据库 首先新建一个webapi应用 此次默认配置HTTPS默认是勾选的 此处没用到暂时不进行勾选 可以删除这2个默认的文件 首先我

    2024年02月04日
    浏览(37)
  • 微服务架构+服务注册中心+Nacos和Eureka+比较分析

    Nacos和Eureka都是常用的服务注册中心,它们可以实现服务的注册、发现、负载均衡等功能,但是它们也有一些区别和优缺点。本资源将从功能特性、生态系统、CAP理论、连接方式、服务异常剔除、操作实例方式、自我保护机制等方面,详细比较和分析Nacos和Eureka的区别。本资源

    2024年02月21日
    浏览(38)
  • 鸿蒙原生应用元服务实战-Serverless华为账户认证登录需尽快适配

    一、ArkTSAPI9,服务器端基于serverless开发的应用与元服务华为账号注册登录功能暂时是不支持的 二、3月1日后的审核要求 3月1日的时间是快到了。 三、会导致的结果 使用了ArkTSAPI9,服务器端基于serverless开发的应用与元服务,如果要每个应用元服务去自己开发适配的话,不知

    2024年02月21日
    浏览(34)
  • 【云原生 Prometheus篇】Prometheus的动态服务发现机制与认证配置

    基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式。 Prometheus Server 会定期从文件中加载 Target 信息,文件可使用 YAML 和 JSON 格式,它含有定义的 Target 列表,以及可选的标签信息。 下载地址:

    2024年01月21日
    浏览(23)
  • 微服务架构学习与思考(13):分布式配置中心

    微服务架构系列文章集合:https://www.cnblogs.com/jiujuan/p/17307285.html 用编程语言编写应用项目时,一般都会有项目的配置文件。比如用 java 编写项目,有一个 properties 的配置文件,会把一些配置信息写入到该文本文件中,例如数据库相关的配置信息。 这也体现了软件设计的一个原

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包