У меня есть следующий код (при попытке программного входа пользователя):
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new GrantedAuthorityImpl("ROLE_ADMIN"));
...
User tempUser = new User(correctUsername,
correctPassword,
true, true, true, true, // logging them in...
authorities // type is List<GrantedAuthority>
);
...
Authentication authentication
= new UsernamePasswordAuthenticationToken(tempUser, authorities);
// I'm using authorities again (List<GrantedAuthority>)
// is this the right spot for it?
...
// this is the line causing the error
authentication.setAuthenticated(true);
Когда я пытаюсь запустить это, я получаю следующее:
java.lang.IllegalArgumentException: Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead
Обратите внимание, что яЯ использую authorities
список GrantedAuthority
с обоими объектами User
и Authentication
.Я не уверен, где я должен их использовать.Я пытаюсь повторить ответ для другого SO вопроса , но сталкиваюсь с исключением, опубликованным выше.Другие подобные вопросы, которые не совсем отвечают на мой вопрос:
После некоторых поисков самый близкий к моему ответу был на форуме на springsource.org , и этот человек использует устаревший метод , но это похожий подход.Как я могу войти в систему пользователя программно?