2010-09-15 78 views
2

我們將Spring Security與RequestHeaderAuthenticationFilter結合使用,因此依賴於爲用戶名設置的HTTP標頭。在我們的本地機器上,我們沒有用於驗證的軟件,因此也沒有頭文件。如何在使用RequestHeaderAuthenticationFilter時測試Internet Explorer?

使用WebDriver或FireFox進行測試時,我們可以正確設置標題並進行測試,但在使用Internet Explorer進行手動測試時,我們無法設置標題值。

有沒有一種很好的方式來設置IE中的標題值,或者一種體面的方式來爲開發和測試中的過濾器啓用某種'嘲弄'?

回答

1

我最終使用一個帶有命令行參數的Spring Java配置,用於在標頭認證之間進行切換,並使用登錄表單進行認證。

它要求(模擬左,物權)之間切換:

  • UsernamePasswordAuthenticationFilter和RequestHeaderAuthenticationFilter
  • LoginUrlAuthenticationEntryPoint和Http403ForbiddenEntryPoint
  • DaoAuthenticationProvider的時候和PreAuthenticatedAuthenticationProvider

不是太深刻的印象的內部Spring Security,這讓我很開心o解決這個問題。但是,如果你需要這樣做,至少這些是一些指針。

0

在Spring上下文中設置exceptionIfMissingHeader屬性。

根據JavaDoc: http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/web/authentication/preauth/RequestHeaderAuthenticationFilter.html

「如果標題是從請求中丟失了,getPreAuthenticatedPrincipal會拋出異常,您可以通過設置exceptionIfMissingHeader屬性覆蓋此行爲。」

+0

對不起,響應緩慢,以爲我會收到回覆時輸入電子郵件。這並不真正認證用戶,我需要authtenticated用戶。如果沒有任何功能被保護,這將會起作用,但是當您需要模擬登錄時不會。我最終做了大量的黑客行爲,以便能夠切換標題身份驗證和登錄表單。對Spring Security的內幕不感到印象深刻。我花了相當長的一段時間才弄明白,解決方案並沒有很好。 – 2010-10-08 13:32:29

相關問題