当前位置: 首页 > 知识库问答 >
问题:

使用Spring boot实现微服务中的JWT授权

濮阳靖
2023-03-14

我必须使用微服务架构来构建一个应用程序。我将整个系统分成多个组件,每个组件代表一个spring boot项目。6左右有几个spring boot项目。我已经使用eureka服务器注册了所有的服务以实现负载平衡。已经为web门户开发了一个单独的Spring Boot项目,该应用程序包含身份验证、Spring security授权和JWT协议。现在我有7个项目,包括一个web门户,每个项目都有控制器包下的控制器类。

     Client ----------------> Web Portal ------------------>Service/Component

我需要知道,我可以像下面这样直接向另一个组件/服务发送请求吗?

                  username + password
   Client --------------------------------------->  Web Portal

                     JWT token
   Client <-------------------------------------- Web Portal
            
                    JWT token
   Client ------------------------------------------> Service/Component

共有1个答案

陶腾
2023-03-14

可能是的,因为JWT是用户可用的,每次他发送请求时,令牌将由发行者验证,或者当我们黑名单一些令牌时,这些请求将不直接处理。

在微服务中,API网关负责这些事情,并在检查角色和权限后,根据传入路由或URI将请求转发到相应的微服务,然后将其映射到在Eureka Server中注册的后端服务的URI。

 类似资料:
  • 我有一个多租户项目,它将调用多个微服务来执行特定任务。 我希望微服务从发送的请求中了解要使用哪个DB,因为每个租户都将使用微服务,但是,租户将拥有自己的DB。我有另一个解决方案,它有一个处理API密钥管理的Web项目。 比方说,API密钥管理位于域:portal.example.com 当 tenant.example.com 在 microservice.example.com 调用微服务时,我

  • 我将使用Laravel框架构建micrservices。我有用户微服务,它处理客户端凭证并验证它们(为客户端创建JWT)。此外,还有另一种需要用户认证的微服务。 问题是,如果秘密访问令牌密钥仅在用户微服务中,我如何验证客户端在微服务(用户微服务除外)中的访问令牌?或者,我应该在每个微服务中保留密钥吗?

  • 我正在为我们的应用程序使用Spring boot Microservices体系结构。在我们的项目中,我们使用的是OAuth2、Jwt、Zuul和Eureka服务,我的疑问是,我是否需要将这些服务作为一个独立的服务来实现,或者我是否可以将所有服务开发成一个单一的应用程序。 如果我必须作为单个应用程序实现,那么更好的方法是什么。请澄清

  • 我已经阅读了一些关于keydove-spring实现的文章(例如:使用keydove轻松保护您的Spring Boot应用程序),但没有人提到如何使用JWT。 我已经创建了zuul api网关,并添加了KeyCloak适配器,如前面链接的文章所述。没关系,但是我想用JWT和钥匙斗篷。 如前所述,将客户端访问类型设置为仅承载,将会话策略设置为NullAuthenticatedSessionStrat

  • 我最近读了不少关于微服务的文章,尤其是关于AuthN和Authz的文章。在很大程度上,这一切都很有意义,我可以看到这一切应该如何工作。 (注意--现在我只实现了客户端凭据授予和资源所有者密码凭据授予,因为我只是想看看它是如何工作的,而且用curl调用它们更容易。但我不知道这有什么不同)

  • 17.1 编写服务启动入口 package com.clsaa.edu.springboot; import com.clsaa.edu.springboot.bean.Product; import com.clsaa.edu.springboot.mapper.ProductMapper; import org.springframework.boot.SpringApplicati