【问题标题】:Spring Security: Username already exists exceptionSpring Security:用户名已经存在异常
【发布时间】:2017-04-29 03:48:41
【问题描述】:

我正在使用 Spring 安全性。对于用户想要使用已经存在的用户名进行注册的情况,是否有任何专用的 spring 身份验证异常类型?

我能找到的最接近我意图的异常是AuthenticationServiceException,根据 Spring 文档,“如果由于系统问题而无法处理身份验证请求,则抛出该异常。”

【问题讨论】:

  • 您想阻止用户登录 1 次。您可以在 spring 安全配置中设置 max session 等于 1;所以一个用户名只能被记录1次。如果你想手动处理,定义一个 AuthenticationEntryPoint 来检查新的登录用户名并抛出你的异常。
  • 这个问题是关于“注册”而不是“登录”
  • 我不知道您的凭据存储是什么,但为什么不简单地捕获当您的用户想要复制已经存在的用户名时引发的异常。例如,在 mysql 中,如果您在凭据表中设置 unique constraint,如果您要存储已存在的用户,则会引发异常。
  • 最终抛出什么异常?

标签: java spring


【解决方案1】:

你可以使用这个UserAlreadyExistAuthenticationException 示例类:

public class UserAlreadyExistAuthenticationException extends AuthenticationException {

    public UserAlreadyExistAuthenticationException(final String msg) {
        super(msg);
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 2012-09-04
    • 2020-10-24
    • 2011-07-19
    • 2021-10-27
    • 2011-09-10
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多