我使用tomcat 6,spring mvc 3.0.0和spring security 3.0.0,并且由于我在数据库中存储的密码是sha1哈希值,因此我无法使用摘要式身份验证(section 9.2.1 of the documentation spells that out)。出于这个原因,我需要通过https进行身份验证。要求通过https验证弹簧安全性吗?
由于潜在的处理开销,我希望尽可能多地保持常规http流量。有没有一种方法可以让spring使用https进行未经认证的请求,然后在认证完成后使用http?我认为这是通过某种ChannelProcessingFilter完成的,但我很难理解这些细节。
这里是我的应用程序security.xml文件,因为它目前为:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<http use-expressions="true">
<intercept-url pattern="/**" access="isAuthenticated()" />
<http-basic />
</http>
<authentication-manager>
<authentication-provider user-service-ref="myUserDetailsService">
<password-encoder hash="sha"/>
</authentication-provider>
</authentication-manager>
<beans:bean id="myUserDetailsService"
class="path.to.myUserDetailsServiceImpl">
</beans:bean>
</beans:beans>
感谢您的帮助。