小编Ign*_*mpo的帖子

微服务到微服务呼叫,来自队列消息的授权

背景:我正在创建一个支持SSO的多个应用程序的云平台.我正在使用Keycloak进行身份验证,使用Netflix Zuul通过Keycloak Spring Security Adapter 进行授权(API Gateway).

每个微服务都需要一个Authorization标头,其中包含一个有效的JWT,它将从中获取用户名(sub)来处理请求.每个微服务到微服务调用应首先通过Netflix Zuul,传递Authorization标头以维持无状态验证.该策略允许每个微服务器知道谁是间接调用微服务的用户(子).

问题/问题1:如果从队列消息中调用微服务会发生什么?我的一个想法是在队列中存储与消息+ userInfo相关的信息,并创建一个专用的微服务来处理这种消息,这种特殊的微服务应该从队列中读取userInfo并处理消息.

更新1:根据另一个论坛的电子邮件回复,将JWT存储在队列中并不是一个好主意,因为它可以轻松挖掘.

问题/问题2:但是,如果之前的特殊微服务想要调用另一个期望在头中接收JWT的普通微服务会发生什么?这个特殊的微服务是否应该由他自己创建一个JWT模仿用户并能够调用常规的微服务?

我认为另一种解决方案是将原始JWT存储在队列中,但是,如果队列稍后调用特殊微服务会发生什么?就在JWT不再有效(它已过期)之后,被调用的微服务将拒绝该请求?

可能的解决方案:(根据JoãoAngelo的讨论更新,见下文)

我应该验证来自我的用户(授权代码流)和我的服务(客户端凭证授权)的请求,这两个请求都应该包含有效负载中的用户信息.当请求来自用户时,我需要验证有效负载用户信息是否与JWT声明匹配.当请求来自服务时,我只需要信任该服务(只要它在我的控制之下).

我非常感谢你的帮助.谢谢.

spring-security jwt microservices keycloak netflix-zuul

11
推荐指数
1
解决办法
1792
查看次数

grails test-app只有类和闭包可用于@ grails.test.mixin.TestFor中的属性'value'

我开始测试Grails(版本2.2.4).

当我运行:grails test-app

我有:

Error Compilation error compiling [unit] tests: startup failed:
Run Code Online (Sandbox Code Playgroud)

日志:

/myproject/test/unit/app/AutocompleteServiceTests.groovy: 11: Only classes and closures can be used for attribute 'value' in @grails.test.mixin.TestFor
 @ line 11, column 10.
  @TestFor(AutocompleteService)

/myproject/test/unit/app/CoachControllerTests.groovy: 11: Only classes and closures can be used for attribute 'value' in @grails.test.mixin.TestFor
 @ line 11, column 10.
  @TestFor(CoachController)
Run Code Online (Sandbox Code Playgroud)

我有21个错误,每个错误*Test.groovy文件.

我尝试过:grails clean之前,但我有同样的错误.

当我创建新的域,控制器或服务时,Grails会自动创建测试文件.

grails unit-testing

5
推荐指数
1
解决办法
2534
查看次数

Keycloak 1.9.1.Final-令牌验证失败:令牌未激活

我正在尝试连接 Spring App Keycloak,但出现此错误:

在我进入我的应用程序并被重定向到 Keycloak 进行身份验证后,我在浏览器中收到一个错误:

192.168.1.66 redirected you too many times.
Run Code Online (Sandbox Code Playgroud)

完整网址

URL: http://192.168.1.66:9092/keycloak-sp-example/sso/login?state=139%2F1ed115fb-4d4f-468c-9a72-845f9cfa9cdb&code=PVGhg5X28G8fjNt36tMGHTJIP7CQdHOhoK4XhPgUh3E.2d885db5-5c4f-43b1-9095-305494718a97
Run Code Online (Sandbox Code Playgroud)

而且,在控制台中,我得到:

ERROR org.keycloak.adapters.OAuthRequestAuthenticator - failed verification of token: Token is not active.
Run Code Online (Sandbox Code Playgroud)

这是一个错误?或者我应该在控制台中配置什么?

keycloak

4
推荐指数
1
解决办法
3471
查看次数