我使用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>
感謝您的幫助。