У меня есть сервлет фильтр, который перехватывает запросы и проверяет обычай «зашифрованный» заголовок:Java фильтр - условно изменить тело ответа на основании запроса
public class EncryptionFilter extends GenericFilterBean{
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain) {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
if (httpRequest.getHeader("EncryptedCommunication") != null){
decryptedRequest = /*decrypt request body and forward to next filter*/
encryptedResponse = /*encrypt request body and forward to next filter*/
filterChain.doFilter(decryptedRequest, encryptedResponse);
}
else { /* communication not encrypted */
filterChain.doFilter(request, response);
}
}
}
Когда заголовок существует, я должен расшифровать тело запроса, а также зашифровать тело ответа. В противном случае следует оставить тело запроса/ответа без изменений.
Как изменить ответ только в случае необходимости?
Это не отвечает на вопрос, так как я хочу chan ge тело ответа, а не заголовок. – yuz
@yuz Я обновил свой ответ. –
Спасибо, что это работает. – yuz