Я использую JAX-RS с Джерси. При отправке запроса POST в API я получаю 302, и Джерси следует автоматически, что приводит к 403. Однако в моем журнале я вижу только неудачные ответы:
INFO Rest-Request: POST http://[Jenkins-IP]/job/RestTestingArea/job/testJob/doDelete
INFO Rest-Response: POST 403 http://[Jenkins-IP]/job/RestTestingArea/job/testJob/doDelete
Я определил, что между запросом и ответом происходит перенаправление, потому что, когда я отключаю перенаправления, выходные данные журналирования изменяются следующим образом:
INFO Rest-Request: POST http://[Jenkins-IP]/job/RestTestingArea/job/testJob/doDelete
INFO Rest-Response: POST 302 http://[Jenkins-IP]/job/RestTestingArea/testJob/doDelete
Есть ли какой-либо способ фактически зарегистрировать эти перенаправления, кроме переадресации перенаправлений вообще и выполнения второй все сам? Регистрация:
public class LoggingFeature implements ClientRequestFilter, ClientResponseFilter
{
private final Logger logger;
public LoggingFeature(Logger log)
{
this.logger = log;
}
@Override
public void filter(ClientRequestContext requestContext) throws IOException
{
try
{
logger.info(String.format("Rest-Request: %s %s", requestContext
.getMethod(), requestContext.getUri()));
}
catch (Exception ex)
{
logger.warn("LoggingFeature: ", ex);
}
}
@Override
public void filter(ClientRequestContext requestContext,
ClientResponseContext responseContext) throws IOException
{
try
{
logger.info(String.format("Rest-Response: %s %d %s", requestContext
.getMethod(), responseContext.getStatus(), requestContext.getUri()));
}
catch (Exception ex)
{
logger.warn("LoggingFeature: ", ex);
}
}
}
Запрос:
HttpAuthenticationFeature auth = HttpAuthenticationFeature.basicBuilder()
.credentials(username, token)
.build();
Client client = ClientBuilder.newBuilder()
.register(auth)
.register(new LoggingFeature(LOG))
.build();
WebTarget deleteTarget = client.target("http://[Jenkins-IP]/job/RestTestingArea/job/testJob/doDelete").
Response response = deleteTarget.request()
.post(null);