在 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。出于某种原因,最初测试它时我没有工作,但这似乎只是构建中缓存的东西没有被清除,因为它现在可以工作。