繁体   English   中英

有没有一种方法可以在不使用spring的情况下验证普通java应用程序(云铸造中的微服务)中approuter发送的oauth令牌

[英]Is there a way to validate oauth token sent by approuter in plain java application ( micro service in cloud foundry ) without using spring

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

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

一种选择是使用UAA的/check_token端点。 这种方法的优点在于,无需外部库就可以很容易地做到这一点,因为这只是发送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'

其中appappclientsecret是您的应用程序的客户端凭据,而scopes属性是可选的,但是如果您将其包括在内,UAA还将验证您指示的范围是否存在于令牌中。

以下链接提供了更多信息:

另一种选择是自己验证令牌。 这需要一个已签名的令牌,并且要求您在服务器与Cloud Foundry(UAA)之间拥有一个共享机密。

在没有Spring的情况下,我没有指导您进行操作,但是Spring Security是开源的,因此您可以看一下他们的代码,看看它是如何完成的。

它看起来像decodeAndVerify的方法JwtHelper是一个良好的开端。 还有的JwtHelper是如何使用的例子在这里

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM