2016-04-28 78 views
0

我在Grails應用程序中使用了與spring-security-saml擴展V 1.0.1-RELEASE集成的spring-security-core v2.0。 執行loadUserBySaml方法(執行SAMLUserDetailsService)後,不幸的是,當用戶的屬性enabled爲false,DisabledException不會被拋出,我必須明確地拋出它在這個方法中,這不是Spring Security推薦的默認機制。Spring Security SAML DisabledException not thrown

回答

0

按照春春的文檔不會引發用戶DisabledException如果有一個名爲屬性「已啓用」。它會拋出僅org.springframework.security.core.userdetails.UsernameNotFoundException參見:Spring loadUserBySAML Method

您可以將自定義異常,如果需要把它扔了。

+0

謝謝你的回答,不過這就是我已經做的。我仍然困惑爲什麼我必須明確地拋出一個自定義異常,在這種情況下,saml的擴展並沒有爲這些數字定義特定的異常。用戶帳戶過期異常或用戶帳戶鎖定異常也是如此。 – user2394091

+0

據我所知,spring saml擴展只提供有限的功能......他們檢查用戶/主體對象是否存在作爲saml響應的一部分或不存在...如果ueser /主體對象存在,它們在SpringContext中設置相同,if不拋出UsernameNotFoundException。在我的實現中,我只看到用戶名和權限彈簧檢查。如果你是statisfied不要忘記標記爲答案。上面提到的鏈接清楚地解釋了loadUserBySAML可以做什麼。 – meetarun

相關問題