0

我有一个用 node.js 编写的 approuter,它在用户身份验证后向 java 应用程序发送一个 jwt 令牌。

在执行 REST API 之前,我需要在 spring 应用程序中验证这个令牌和范围,但是有没有办法在不使用任何 spring 功能的情况下做同样的事情?

4

1 回答 1

0

一种选择是使用/check_tokenUAA 的端点。这种方法的好处是无需外部库的帮助就可以很容易地做到这一点,因为它只是发送 HTTP 请求的问题。也不需要加密(TLS 除外),UAA 为您处理所有这些。但是,它确实需要客户端凭据,以便您可以识别使用 UAA 检查令牌的应用程序,并且它具有发送 HTTP 请求的开销。

前任:

curl 'http://uaa.example.com/check_token' -i -u 'app:appclientsecret' -X POST \
    -d 'token=53dbe3e05dcf4ff38d350bc74a7fc97bscopes=password.write%2Cscim.userids'

您的应用程序的客户端凭据在哪里app以及在哪里,并且该属性是可选的,但如果您确实包含它,UAA 还将验证您指示的范围是否存在于令牌上。appclientsecretscopes

更多在以下链接:

另一种选择是自己验证令牌。这需要一个签名的令牌,并且它要求您在您的服务器之间以及在 Cloud Foundry 的情况下,UAA 之间有一个共享的秘密。

如果没有 Spring,我没有指导您完成此操作的说明,但是 Spring Security 是开源的,因此您可以查看他们的代码并了解它是如何完成的。

看起来JwtHelperdecodeAndVerify的方法是一个很好的起点。这里还有一个如何使用 JwtHelper 的示例。

希望有帮助!

于 2017-09-16T13:47:39.930 回答