在 spring restdocs 中屏蔽 Headers
Mask Headers in spring restdocs
所以我试着按照这个例子:
我想做的是在我的请求 header 中屏蔽 JWT 令牌,我有一个如下所示的 OperationPreprocessor:
import org.springframework.http.HttpHeaders
import org.springframework.restdocs.operation.OperationRequest
import org.springframework.restdocs.operation.OperationRequestFactory
import org.springframework.restdocs.operation.OperationResponse
import org.springframework.restdocs.operation.preprocess.OperationPreprocessor
class AuthHeaderPreprocessor implements OperationPreprocessor {
@Override
OperationRequest preprocess(OperationRequest request) {
HttpHeaders headers = new HttpHeaders()
headers.putAll(request.getHeaders())
headers.set('Authorization', 'Bearer 12345')
return new OperationRequestFactory().create(
request.getUri(),
request.getMethod(),
request.getContent(),
headers,
request.getParameters(),
request.getParts()
)
}
@Override
OperationResponse preprocess(OperationResponse response) {
return response
}
}
当我 运行 测试时,他们 运行 没有错误,但我没有看到 header 有任何变化。我正在像这样使用 OperationPreprocessor
RestAssuredRestDocumentation.document(
'event-list', preprocessRequest(new AuthHeaderPreprocessor()), ...
任何我可能遗漏的想法。
我实际工作过的代码是如何过滤的一个很好的例子headers。出于某种原因,最初测试它时我没有工作,但这似乎只是构建中缓存的东西没有被清除,因为它现在可以工作。
所以我试着按照这个例子:
我想做的是在我的请求 header 中屏蔽 JWT 令牌,我有一个如下所示的 OperationPreprocessor:
import org.springframework.http.HttpHeaders
import org.springframework.restdocs.operation.OperationRequest
import org.springframework.restdocs.operation.OperationRequestFactory
import org.springframework.restdocs.operation.OperationResponse
import org.springframework.restdocs.operation.preprocess.OperationPreprocessor
class AuthHeaderPreprocessor implements OperationPreprocessor {
@Override
OperationRequest preprocess(OperationRequest request) {
HttpHeaders headers = new HttpHeaders()
headers.putAll(request.getHeaders())
headers.set('Authorization', 'Bearer 12345')
return new OperationRequestFactory().create(
request.getUri(),
request.getMethod(),
request.getContent(),
headers,
request.getParameters(),
request.getParts()
)
}
@Override
OperationResponse preprocess(OperationResponse response) {
return response
}
}
当我 运行 测试时,他们 运行 没有错误,但我没有看到 header 有任何变化。我正在像这样使用 OperationPreprocessor
RestAssuredRestDocumentation.document(
'event-list', preprocessRequest(new AuthHeaderPreprocessor()), ...
任何我可能遗漏的想法。
我实际工作过的代码是如何过滤的一个很好的例子headers。出于某种原因,最初测试它时我没有工作,但这似乎只是构建中缓存的东西没有被清除,因为它现在可以工作。