我对Spring和SSL身份验证的新手有点新鲜。混合模式X509使用Spring 3.1进行身份验证
我的问题是,我有一个Web应用程序,它可以很好地使用基于表单的身份验证。我需要使用SSL客户端身份验证自动验证我的应用程序的一部分。
我到目前为止做了什么。
- SSL允许的Tomcat(我可以访问https://mydomain.com:9443)
- 导入客户端证书到服务器信任
更改服务器的XML,使clientAuth = “希望” 在我的server.xml
Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="want" sslProtocol="TLS" keystoreFile="c:\serverkeystore" keystorePass="ChangeIt" />
已添加x509 subject-principal-regex =“CN =(。*?),”user-service-ref =“customUserDetailService” under http在我的安全的context.xml
< http auto-config="true" use-expressions="true" > < x509 subject-principal-regex="CN=(.?)," user-service-ref="myUserDetailService" /> < intercept-url pattern="/upload" requires-channel="https" /> < intercept-url pattern="/*" access="hasRole('ROLE_USER')" /> < form-login login-page="/login.jsp" default-target-url="/index.jsp"
authentication-failure-url="/login.jsp?error=1" /> < logout logout-url="/j_spring_security_logout" logout-success-url="/loggedout.jsp" delete-cookies="JSESSIONID"/>
- 添加<截距-URL模式= “/上传” 要求沟道= “HTTPS”/>到安全URL
- myUserDetailService正在实施UserDetailsService并返回UserDetails对象(基于基于数据库存储的用户名,密码,ROLES,用于基于表单的身份验证的相同类)。
我的问题是什么URL路径(即使有/上传),它总是显示我的login.jsp页面。
我使用Spring和Spring 3.1.3安全使用Tomcat 6.0.35
任何帮助将高度赞赏。
@Michael对不起,我还无法尝试,因为我们忙于其他问题。我会尽快做到。 – Ish 2013-04-28 18:31:53
你测试过它成功了吗? – Michael 2013-05-13 11:32:55