2015-06-15 1 views
0

Привет, у меня есть xml-файл конфигурации Spring для OAuth2. я настроил его таким образом, чтобы требовать от параметров и эффект под названием скручивание просить token.It делает запросы, такие как:Spring Security OAuth2 Учетные данные пользователя не правильные

локон -X POST -v http://localhost:8080/oauth/token -d «grant_type = пароль & CLIENT_ID = тест & client_secret = тест & имя пользователя = user1 & пароль = password1"

Я желаю, если будет предложено маркер с именем пользователя и паролем неправильно, он был создан в формате JSON пользовательской ошибки. Как я могу это сделать?

Благодаря

ответ

0

Если вы хотите добавить дополнительную информацию impliment в «OAuthTokenEnhancer» класс на заказ от «TokenEnhancer». и в методе повышения вы можете добавить свою дополнительную информацию.

@Override 
    public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) { 
     DefaultOAuth2AccessToken result = (DefaultOAuth2AccessToken) accessToken; 
     final Map<String, Object> additionalInformation = new HashMap<>(); 
     additionalInformation.put("prop name", "value"); 
     result.setAdditionalInformation(additionalInformation); 

     return result; 
    } 

Если вы хотите вернуть пользовательскую ошибку, Вы можете использовать специальное исключение в пользовательском «AuthenticationProvider» (метод «проверка подлинности»), например:

if(!checkpassword()){ 
    authentication.setAuthenticated(false); 
    throw new BadCredentialsException(ERROR_MESSAGE); 
} 
+0

Спасибо за ответы. my - это конфигурация xml, поэтому я должен создать собственный класс для поставщика проверки подлинности? и что должно расширить или реализовать этот новый класс? спасибо – crisalide86

+0

Я протестировал мой собственный поставщик аутентификации, но я заметил, что имя пользователя и пароль соответствуют client_id и client_secret, но я хочу сравнить их usernamae и пароль, которые находятся в команде curl. – crisalide86