簡體   English   中英

Spring Security OAuth2修改響應主體連接

[英]Spring security oauth2 modify response body connexion

對於我的應用程序,我正在使用Spring安全性來保護API Rest。 為此,我使用了oauth2系統(具有AuthorizationServerConfiguration,OAuth2SecurityConfiguration和ResourceServerConfiguration)

我找不到如何修改我的響應連接主體的方法。

暫時,我有:

{
"access_token": "0d1dded8-3631-472a-ba63-89d67d133112",
"token_type": "bearer",
"refresh_token": "d9f4cc5d-748b-461f-b475-3bba95b512dc",
"expires_in": 29162,
"scope": "read write trust"
}

我想要這樣的東西:

{
"errorLevel":"OK",
"errorMsg":"You are now connected",
"data": { // access_token, token_type... }
}

我的第一個想法是實現accessTokenConverter並將其添加到端點,如下所示:

endpoints.accessTokenConverter(new CustomAccessTokenConverter());

但是,他不使用我的AccessTokenConverter。

因此,我如何修改我的回復?

對於較新的spring版本,可以使用ResponseBodyAdvice https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyAdvice.html更改響應。

實現過程如下:

@ControllerAdvice
public class OauthReponseAdvice implements ResponseBodyAdvice<SomeResponseType> {
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
    return true;
}

@Override
public SomeResponseType beforeBodyWrite(SomeResponseType body, MethodParameter returnType, MediaType selectedContentType, Class<? extends
HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {

     /// Modify body here
    return body;
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM