spring Authentication.setAuthenticated (boolean) java.lang.IllegalArgumentException: не удается установить этот токен как доверенный

У меня есть следующий код (попытка входа пользователя в систему программным способом):

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 , и этот человек использует устаревший метод , но это похожий подход . Как я могу программно войти в систему?

9
задан Community 23 May 2017 в 11:45
поделиться