4.2.1 内存用户存储

用户信息可以保存在内存中。假设只有少数几个用户,这些用户都不可能改变。在这种情况下,将这些用户定义为安全配置的一部分可能非常简单。

例如,下一个清单显示了如何在内存用户存储中配置两个用户 “buzz” 和 “woody”。程序清单 4.2 在内存用户存储中定义用户

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
            .withUser("buzz")
                .password("infinity")
                .authorities("ROLE_USER")
            .and()
            .withUser("woody")
                .password("bullseye")
                .authorities("ROLE_USER");
}

正如你所看到的,AuthenticationManagerBuilder 使用构造器风格的 API 来配置身份验证细节。在这种情况下,对 inMemoryAuthentication() 方法的调用,可以直接在安全配置本身中指定用户信息。

对 withUser() 的每个调用都会启动用户的配置。给 withUser() 的值是用户名,而密码和授予的权限是用 password() 和 authority() 方法指定的。如程序清单 4.2 所示,两个用户都被授予 ROLE_USER 权限。用户 "buzz" 的密码被配置为 "infinity"。同样,"woody" 的密码是 "bullseye"。

内存中的用户存储应用于测试或非常简单的应用程序时非常方便,但是它不允许对用户进行简单的编辑。如果需要添加、删除或更改用户,则必须进行必要的更改,然后重新构建、部署应用程序。

对于 Taco Cloud 应用程序,由于内存中用户存储的闲置,因此希望客户能够注册应用程序并管理自己的用户帐户,这不能够实现。因此让我们看看另一个允许使用数据库支持的用户存储的选项。

最后更新于