
[英]How to add custom response and abort request in jersey 1.11 filters
[英]Abort Request with 401 in jersey ReaderInterceptor
在 jersey ReaderInterceptor 中使用 401 中止请求。 这是我的拦截器代码。 我正在尝试使用具有签名的 XML 主体中止请求。
import java.io.*;
import java.security.*;
import java.security.cert.*;
import org.util.nanolog.Logger;
import org.w3c.dom.Document;
import com.sil.upi.application.XMLSigner;
import jakarta.inject.Singleton;
import jakarta.ws.rs.WebApplicationException;
import jakarta.ws.rs.ext.ReaderInterceptor;
import jakarta.ws.rs.ext.ReaderInterceptorContext;
//@formatter:off
@Singleton
public final class ServerSignatureInterceptor implements ReaderInterceptor {
private static final PublicKey npciPublicKey = readNPCIPublicKey();
@Override
public final Object aroundReadFrom(final ReaderInterceptorContext context) throws IOException, WebApplicationException {
try {
final InputStream inputStream = context.getInputStream();
final Document document = XMLSigner.inputstreamToDocument(inputStream);
final boolean isValidSignature = XMLUtils.validateXMLDigitalSignature(npciPublicKey, document);
if(!isValidSignature) {
abortWith401
}
context.setInputStream(XMLUtils.documentToInputStream(document));
} catch (Exception e) {e.printStackTrace();}
return context.proceed();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.