[英]request.getUserPrincipal() is null in RequestListener despite that authentication succeeded
[英]Mutual Authentication on Tomcat 7 and request.getUserPrincipal()
我正在尝试在Tomcat 7应用程序上设置双向身份验证。 我的server.xml具有以下连接器:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443"
enableLookups="true"
acceptCount="100"
connectionTimeout="20000"
useURIValidationHack="false"
disableUploadTimeout="true"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="servercert.jks"
keystorePass="password"
truststoreFile="truststore.jks"
truststorePass="password"
clientAuth="true"
sslProtocol="TLS" />
当我尝试使用类似于“ https:// testserver:8443 / myapp / LoadUser.do”的URL进行struts操作时,浏览器会提示我输入客户端证书。 当我提供服务器信任的证书时,它似乎可以进行身份验证。 在服务器端,我期望通过调用request.getUserPrincipal()获得客户端证书的公用名,但是它只是null。 我假设将getUserPrincipa()设置为CN是否正确? 如果是,我在做什么错/遗漏。 如果没有,如何在服务器端检索CN?
谢谢。
我像假人一样在错误的地方看。 我从请求中获取了所有证书信息:
request.getAttribute(org.apache.catalina.Globals.CERTIFICATES_ATTR);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.