【发布时间】:2017-10-29 12:03:41
【问题描述】:
我可以看到这个 html 页面: https://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/authentication/AccountExpiredException.html
在我的代码中,我使用以下内容:
try {
providerManager.authenticate(auth);
} catch(LockedException e) {
// some user exception to throw
} catch(DisabledException e) {
// some user exception to throw
} catch(AccountExpiredException e) {
// some user exception to throw
}
那么 Spring 是如何判断用户账号是否过期的呢?
我必须进行测试,因此我必须使用户帐户过期。这就是为什么。
【问题讨论】:
-
通过在
User上调用isNotExpired方法。但是,您为什么还要对此进行测试并抛出单独的异常?感觉就像您正在处理 Spring Security 的异常处理,并向用户公开重要信息(即帐户锁定、过期等),这对于黑客来说又是有价值的信息。 -
isNotExpired是 getter 方法。但是将过期变量设置为 TRUE 的 setter 方法在什么条件下将其设置为 TRUE 呢?我只想给用户一个帐户过期的具体原因。除了可能导致黑客入侵的信息之外,没有其他信息。 -
公开该信息是黑客的信息,他有一个现有的帐户。几天后他可能会再试一次……您可能希望在内部记录该信息,但不要将其公开给最终用户。如何设置,取决于你使用什么,默认是
true,并且只设置了enabled。
标签: java spring spring-security