【发布时间】:2015-02-12 10:33:55
【问题描述】:
我想设置我的 web 应用程序以支持客户端证书身份验证。
我已经配置了tomcat的连接器:
<Connector SSLEnabled="true" clientAuth="want" keystoreFile="***" keystorePass="***" keystoreType="JKS" port="8443" protocol="HTTP/1.1" scheme="https" secure="false" sslProtocol="TLS" truststoreFile="***" truststorePass="***" truststoreType="JKS"/>
Web.xml 配置:
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>My APP</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted access datasets</web-resource-name>
<url-pattern>/restrictedAccess/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>restrictedDatasetUser</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint >
</security-constraint>
当我尝试访问 https://../restrictedAccess/ 时,浏览器要求提供证书,我选择了我的证书,但页面未显示,因为它抛出此错误:403 forbiden。
我想做两件事:
自己验证用户。获取 CN,查找用户详细信息,然后进行身份验证。我的用户名和 CN 不一样。
我自己授权用户从数据库获得授权。
是否可以在不使用 Spring Security 的情况下完成这两件事?我不知道如何使用 servlet 自己进行身份验证,因为我习惯了 Spring Security。
答案将被投票。
【问题讨论】:
标签: java tomcat authentication servlets ssl