-2

我在我正在开发的应用程序中使用 Wicket 7.0,我想要一些关于在开发过程中使用 Inmemory-users 的建议。

这个想法是让我在登录之前设置一个单独的 Inmemory 用户。

我的第一个预期方法是在启动时使用“用户名”和密码实例化用户,但没有任何角色。然后我想通过勾选登录表单中组件中的复选框来添加/删除角色,最后使用预定义的用户/密码登录。

Inmemory-user 的实例可以在应用程序运行时更改其角色吗?还是每次我希望它具有不同的角色时都应该删除它并创建它的新实例?这甚至是最好和最简单的方法吗?

这只是为了方便而在开发期间。

提前致谢

4

1 回答 1

0

注入UserDetailsManager并使用它的updateUser()方法来更新它的角色:

@Service
public class SingleUserSwitchService {
    @Autowired
    private UserDetailsManager userDetailsManager;

    public void changeUserRoles(String ... roles) {
        Collection<GrantedAuthority> roles = ... // new roles
        User user = new User("login", "password", roles);
        userDetailsManager.updateUser(user);
    }
}

在这里,我假设您的用户登录名是“登录”并且您对密码进行了硬编码。

然后,您只需要使用所需角色的列表调用您的服务。

于 2018-02-19T18:34:55.580 回答