Прежде всего, вы не можете создать Bean, как в вашем примере. Аннотация @Bean обрабатывается при запуске контекста приложения. UserDetails будет иметь значение null, поэтому его нельзя будет создать.
Вы создаете UserDetails после того, как контекст приложения запущен.
Вы действительно хотите сохранить сеанс в этом случае
@Configuration
public class Config {
@Bean
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public UserDetails userDetails() {
return new UserDetails();
}
}
@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {
private Logger logger = Logger.getLogger(getClass().getName());
@Autowired
private UserDetails userDetails;
}
Вы можете внедрить с помощью Autowire или конструктора
Не создавайте его вручную, просто введите его и используйте в методе, как показано ниже
userDetails.setToken(response.getToken());