繁体   English   中英

在 jersey ReaderInterceptor 中使用 401 中止请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM