java - 使用 Java-Metro,从服务器端,如何获取 ssl 客户端证书详细信息?

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

我正在使用 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/

相关文章:

jpa - 升级 GlassFish 3.1.2.2 以使用 JSF 2.2

java - JavaEE 中的配置管理

java - Dozer bean 到 bean 映射的具体用例?

java - 如何使用 Java 和 Maven 将所有 swagger 文件打包成一个文件

java - jsp session 更新数量

ssl - Nginx 条件客户端证书身份验证

ssl - Letsencrypt SSL证书错误

java - FragmentMapActivity 中的 NoClassDefFoundError

ssl - ClusterIssuer/Issuer 对于域 > 64 个字符失败。 CSR 不包含足够短以适合 CN 的 SAN

java - 将 Soap 消息发送到 JMS 队列