【发布时间】:2017-06-19 07:00:51
【问题描述】:
我有一个 servlet 过滤器,它拦截请求并检查自定义“加密”标头:
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);
}
}
}
当标头存在时,我应该解密请求正文并加密响应正文。 否则,应保持请求/响应正文不变。
如何仅在需要时更改响应?
【问题讨论】:
标签: java spring spring-security servlet-filters