【发布时间】:2017-02-17 20:42:14
【问题描述】:
一段时间以来,我一直在使用使用 JWT 令牌的 Spring Security OAuth2,但现在我需要向 JWT 令牌添加 2 个用户定义的值。
所以当我向请求添加一组额外的参数时 /oauth/token?grant_type=client_credentials&user_value=1234567890。
上面的 user_value 用于演示目的。我可以将它一直追踪到我的 CustomTokenEnhancer 中(我将其连接为一直传递此信息的一种方式)。所有请求参数都可以通过传递给我的 CustomTokenEnhancer 的 OAuth2Authentication 身份验证看到。
现在我可以将此信息添加到作为令牌请求的一部分返回给我的附加信息中。见下文。
{
"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicGhpLWFwaSJdLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwib3JnYW5pemF0aW9uIjoicGhpLXVzZXJtZ3RuIiwidXNlcl90b2tlbiI6IjEyMzQ1Njc4OTAiLCJleHAiOjE0ODczNjc2NzEsImF1dGhvcml0aWVzIjpbIlJPTEVfQ0xJRU5UIl0sImp0aSI6IjFlZDMzZTAxLTc1ZGUtNDNjZC1hMzk2LTFkMzk2N2Y1NDQ5OCIsImNsaWVudF9pZCI6InBoaS11c2VyIn0.p628BNaaGljypEcGXZMkstNeTN-221qzzNQQ0npxDLTszWaXkgXqsBnBbKf9XMEtWTeCQkIszC9ne1Ei2X5IWTskhLT9Rko-8K7Jq-mXUc6HJZW-3tGV5rRer8Eyyw1wysW9Jiyp7sPkN-TIx12A70f_LHm6PrRR4ECppHWADs-2DvYA30p8omT1_RTt2WlqC40mopUN2TBPkb1WulVpOUEpcP358Ox8oVP8VQRSkLGZKB_b0KZAK9KGjLg6WNh8RghZaBuYuJQpITe_0XEBs_JfwrHhcK1IGaoYwSS7IGp3Cima9OMljdzayDKRqlfSl3WhaBuFmD1S37p-OVQL0A",
"token_type":"bearer",
"expires_in":8967,
"scope":"read write",
"user_value":"1234567890",
"jti":"1ed33e01-75de-43cd-a396-1d3967f54498"
}
但我不希望这些值以这种方式可见。我希望将它们添加到加密令牌中。
我花了一些时间寻找,但不清楚我实际上是如何添加的。这应该是可能的,不是吗?
【问题讨论】: