2016-04-28 74 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

相关问题