У меня есть следующий код (попытка входа пользователя в систему программным способом):
List authorities = new ArrayList();
authorities.add(new GrantedAuthorityImpl("ROLE_ADMIN"));
...
User tempUser = new User(correctUsername,
correctPassword,
true, true, true, true, // logging them in...
authorities // type is List
);
...
Authentication authentication
= new UsernamePasswordAuthenticationToken(tempUser, authorities);
// I'm using authorities again (List)
// 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
Обратите внимание, что я использую список полномочий
для GrantedAuthority
как в User
, так и в Объекты аутентификации
. Я не уверен, где их использовать. Я пытаюсь воспроизвести ответ на другой вопрос SO , но у меня возникает исключение, указанное выше. Другое подобное вопросы, которые не совсем ответили на мой вопрос:
После некоторого поиска наиболее близкий к ответу я нашел на форуме springsource.org , и этот человек использует устаревший метод , но это похожий подход . Как я могу программно войти в систему?