Я изо всех сил пытаюсь вернуть ответ json, когда пользователь не вошел в систему, вместо того, чтобы возвращать форму входа в html.
Приложение использует только @RestController, и мне не нужна веб-поддержка.
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic().disable();
Когда я делаю запрос на получение с помощью браузера или почтальона, я получаю форму входа в Spring HTML по умолчанию.
security.basic.enabled=true
Я использую OATH2, и когда я запрашиваю токен, он отлично работает, и я получаю такой ответ:
{
"access_token": "227803d1-fe94-4e31-b496-3a03bafb9479",
"token_type": "bearer",
"refresh_token": "322f4ee9-4c48-4e06-a129-f4b6af93d664",
"expires_in": 43199,
"scope": "read write"
}
Почему-то это работает правильно в этом примере:
https://github.com/royclarkson/spring-rest-service-oauth
И когда я не авторизован, я хочу вернуть что-то вроде этого:
{
"error": "unauthorized",
"error_description": "An Authentication object was not found in the SecurityContext"
}
Но я получаю форму входа, и мне нужен ответ выше. Что я делаю не так? Я буквально не понимаю, почему это работает в примере с GitHub, а не в моем случае. Есть ли способ полностью отключить форму входа и заставить ответ json?
.formLogin()
в свой конфиг? - person chaoluo   schedule 29.03.2017