我似乎失去了一些东西在这里根本:春季安全:UserDetailsService的作品只有一次
@SpringBootApplication
public class Application {
User u = new User("USER", "PASSWORD",AuthorityUtils.createAuthorityList(
"ROLE_USER", "ROLE_ADMINISTRATOR"));
@Bean
public UserDetailsService userDetailsService() {
// returning a new User object works fine for every request
return username -> new User("USER", "PASSWORD",
AuthorityUtils.createAuthorityList(
"ROLE_USER", "ROLE_ADMINISTRATOR"));
// returning a previously created User object
// works only for the first request,
// subsequent requests get a 401 error
// return username -> u;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这个春天启动(V1.5.1)使用spring-boot-starter-security
依赖应用程序只知道一个用户截至目前的。而且,它的所有端点只能被这个用户访问。在我看到的所有工作示例中,UserDetailsService
总是返回类型为User
的新对象,就像上面的示例中一样。
但是,当它返回一个先前创建的对象(如上面的对象名为u
)时,只有第一个请求被认证。为什么?
你尝试调试? –