我正在使用 Java Metro 框架发布网络服务, 我将 ssl 握手配置为需要来自客户端的 ssl 证书, 我怎样才能在我的服务器代码中获取 ssl 客户端证书的详细信息? 感谢帮助
最佳答案
我得到了我的问题的答案,
以CalculatorWS为例,获取证书详情需要编写如下内容:
@WebService()
public class CalculatorWS {
// NEW
private WebServiceContext wsCtx;
@Resource
private void setWSContext(WebServiceContext wsCtx) {
this.wsCtx = wsCtx;
}
// END NEW
public CalculatorWS() {}
@WebMethod(operationName = "add", action="add")
public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
// NEW
if (this.wsCtx != null) {
MessageContext msgCtx = this.wsCtx.getMessageContext();
HttpServletRequest httpSR = (HttpServletRequest)msgCtx.get(MessageContext.SERVLET_REQUEST );
X509Certificate[] x509Cert = (X509Certificate[])httpSR.getAttribute("javax.servlet.request.X509Certificate");
}
// END NEW
...
关于java - 使用 Java-Metro,从服务器端,如何获取 ssl 客户端证书详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23864791/