我有一个用 node.js 编写的 approuter,它在用户身份验证后向 java 应用程序发送一个 jwt 令牌。
在执行 REST API 之前,我需要在 spring 应用程序中验证这个令牌和范围,但是有没有办法在不使用任何 spring 功能的情况下做同样的事情?
我有一个用 node.js 编写的 approuter,它在用户身份验证后向 java 应用程序发送一个 jwt 令牌。
在执行 REST API 之前,我需要在 spring 应用程序中验证这个令牌和范围,但是有没有办法在不使用任何 spring 功能的情况下做同样的事情?
一种选择是使用/check_token
UAA 的端点。这种方法的好处是无需外部库的帮助就可以很容易地做到这一点,因为它只是发送 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 还将验证您指示的范围是否存在于令牌上。appclientsecret
scopes
更多在以下链接:
另一种选择是自己验证令牌。这需要一个签名的令牌,并且它要求您在您的服务器之间以及在 Cloud Foundry 的情况下,UAA 之间有一个共享的秘密。
如果没有 Spring,我没有指导您完成此操作的说明,但是 Spring Security 是开源的,因此您可以查看他们的代码并了解它是如何完成的。
看起来JwtHelperdecodeAndVerify
的方法是一个很好的起点。这里还有一个如何使用 JwtHelper 的示例。
希望有帮助!