5.2.1 内存用户详情服务

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

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

清单 5.2 在内存用户服务 bean 中声明用户

@Bean
public UserDetailsService userDetailsService(PasswordEncoder encoder) {
  List<UserDetails> usersList = new ArrayList<>();
  usersList.add(new User(
    "buzz", encoder.encode("password"),
      Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"))));
  usersList.add(new User(
    "woody", encoder.encode("password"),
      Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"))));
  return new InMemoryUserDetailsManager(usersList);
}

这里创建了一个 Spring Security 用户对象列表,每个对象都有用户名、密码和密码一个或多个权限列表。然后使用这个用户列表创建了 InMemoryUserDetailsManager。

如果您现在试用该应用程序,您应该能够以“woody”或“buzz”身份登录,使用“password”作为密码。

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

对于 Taco Cloud 应用程序,希望客户能够注册并管理自己的用户帐户。使用这种方式就不适合了。因此让我们看看另一个使用数据库支持用户存储的选项。

results matching ""

    No results matching ""