我已经设法在应用程序的初始加载期间将所有用户加载到AuthenticationManagerBuilder中,但我需要在启动后添加用户。
启动:
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
...
auth.inMemoryAuthentication().withUser(email).password(password).roles(roles.toArray(new String[roles.size()])).and().passwordEncoder(encoder());
这在某个时间点非常有效,但我有一个可以在应用程序运行时添加用户的用例。
通过哪种方法可以在启动后执行此操作(通过控制器/服务)?我认为它可能是InMemoryUserDetailsManager
(它包含createUser()
方法),但我不确定如何引用或配置它。
发布于 2017-08-01 00:00:05
我更改了以下代码:
inMemoryUserDetailsManager.createUser(new User(username, password, new ArrayList<GrantedAuthority>()));
来自@geoend对以下内容的回答:
inMemoryUserDetailsManager.createUser(User.withUsername(username).password(password).roles("USER").build());
因为默认情况下,新用户没有任何权限。
https://stackoverflow.com/questions/25869260
复制相似问题