【发布时间】:2014-05-26 07:23:15
【问题描述】:
我正在使用 Java Metro 框架来发布 Web 服务, 我将 ssl 握手配置为需要来自客户端的 ssl 证书, 如何在我的服务器代码中捕获 ssl 客户端证书详细信息? 感谢帮助
【问题讨论】:
标签: java ssl glassfish-3 java-metro-framework
我正在使用 Java Metro 框架来发布 Web 服务, 我将 ssl 握手配置为需要来自客户端的 ssl 证书, 如何在我的服务器代码中捕获 ssl 客户端证书详细信息? 感谢帮助
【问题讨论】:
标签: java ssl glassfish-3 java-metro-framework
我的问题得到了解决,
以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
...
【讨论】: