【发布时间】:2020-02-07 19:25:17
【问题描述】:
您好,我正在强制解决与 spring security UserDetailsService 方法的扩展功能相关的问题。此方法默认抛出 UsernameNotFoundException,状态码为 400(错误请求)
override fun loadUserByUsername(username: Username): UserDetails {
if(loginAttemptService.isBlocked(username))
throw TooManyInvalidLoginRequestException()
val user = repository.findByEmail(username.toLowerCase())
?: repository.findByUsername(username)
?: throw AuthenticationUserNotFound()
return CustomUserDetails(user)
}
class TooManyInvalidLoginRequestException : ServiceException(TOO_MANY_REQUESTS, EMAIL_BLOCKED_TOO_MANY_INVALID_LOGIN_REQUEST)
如果我尝试抛出由我自己定义的异常,该异常抛出另一个状态代码,那么它会用我的消息覆盖为 401。 您知道如何防止这种情况发生吗?
【问题讨论】:
标签: spring-boot kotlin spring-security spring-security-oauth2