html 로그인 폼을 반환하는 대신 사용자가 로그인하지 않은 경우 json 응답을 반환하는 데 어려움을 겪고 있습니다.스프링 부트 OAUTH2에서 로그인 폼 대신 RESTful/json 응답을 반환합니다.
응용 프로그램은 @ RestController 's 만 사용하며 어떤 웹 지원도 원하지 않습니다. 나는 브라우저 또는 우편 배달부를 사용하여 가져 오기 요청을 수행 할 때
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic().disable();
, 나는 기본 스프링 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
그리고 내가 권한이 없습니다있을 때, 내가 다시 이런 걸 원하는 :
,536,913,632을 10{
"error": "unauthorized",
"error_description": "An Authentication object was not found in the SecurityContext"
}
하지만 로그인 양식이 표시되는데 위 응답을 원합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 나는 왜 GitHub 예제에서 작동하는지, 그리고 내 경우에는 그렇지 않은지를 알 수 없다. 로그인 양식을 완전히 비활성화하고 json 응답을 강제 적용하는 방법이 있습니까?
은 왜 당신이 당신의 설정에'.formLogin을()'추가? – chaoluo
하지 않고도 – Kramer