【问题标题】:using Java-Metro, from server side, how to get ssl client certificate details?从服务器端使用 Java-Metro,如何获取 ssl 客户端证书详细信息?
【发布时间】:2014-05-26 07:23:15
【问题描述】:

我正在使用 Java Metro 框架来发布 Web 服务, 我将 ssl 握手配置为需要来自客户端的 ssl 证书, 如何在我的服务器代码中捕获 ssl 客户端证书详细信息? 感谢帮助

【问题讨论】:

    标签: java ssl glassfish-3 java-metro-framework


    【解决方案1】:

    我的问题得到了解决,

    以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
      ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 2015-09-01
      • 2014-10-20
      • 2010-11-26
      • 2015-10-20
      • 1970-01-01
      • 2014-06-07
      相关资源
      最近更新 更多