Spring Security(基本身份验证) - 接收401 Unauthorized以获取正确的凭据

时间:2016-07-05 06:56:14

标签: spring-security basic-authentication

我正在尝试在使用Spring boot 4.3开发的REST服务上添加基本身份验证安全层。

我基本上做了两件事:

  1. 实施UserDetailsService界面以提供用户详细信息。在这里,我从文本文件中读取用户名和编码(通过Bcrypt)密码。

  2. 我在@EnableWebSecurity带注释的安全配置类中声明了一个bean:

    @Bean
    public BCryptPasswordEncoder getPasswordEncoder () {
        return new BCryptPasswordEncoder();
    }
    

    返回特定密码编码器。

  3. 我正在使用ARC(适用于Chrome)和Firefox的REST客户端等其他客户端测试身份验证。

    问题如下:

    1. 当我第一次输入凭据并成功验证后,响应为200 OK。这对于一群用户来说都是如此。换句话说,只要我提供正确的凭证对,我就会收到200响应。
    2. 但是,在使用不正确凭据的单个请求之后,身份验证过程会中断。有时我会200获得401,有时甚至获得正确的凭据WARN 6813 BCryptPasswordEncoder : Empty encoded password 。此时,其他用户身份验证也会受到影响。
    3. 第2步出现了一个奇怪的日志:

      {{1}}

      为了详细说明密码的哈希,我运行了Bcrypt密码编码器实用程序并编码了一堆密码,并将它们手动保存在相应用户名的文本文件中。

      我不确定问题出在哪里:客户端是否缓存凭据或Spring安全上下文缓存错误的主体或用户详细信息服务中断(尽管日志中没有此类异常)。

      感谢任何帮助。如果您需要任何进一步的具体信息,请告诉我。

0 个答案:

没有答案