я, кажется, что-то здесь отсутствует фундаментальное:Spring Security: 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
выше), проверяется только первый запрос. Зачем ?
ли вы пытаетесь отлаживать? –