已经按照波总在(http://www.jfinal.com/feedback/6697)中的描述修改了SslBuilder.java,但是还是无法通过
getRequest().getAttribute("javax.servlet.request.X509Certificate");
获取客户端证书,我应该如何操作才能获取到客户端的证书?
你要解决 ssl 认证的问题,关键在于 SSLContext 的使用,SSLContext.init(...) 方法的前两个参数 init(KeyManager[] km, TrustManager[] tm),其中:
1:第一个参数是由该应用本身的证书加载而来的
2:第二个参数是该应用可以信任的客户端证书相关的文件加载而来的
我举个例子,你的 jfinal undertow 项目,默认是信任所有客户端的,所以第二个参数为 null。
当第二个参数为是 null 的时候,在客户端发起请求的时候就会根据这个参数来验证客户端是不是可以访问