inflearn logo
강의

Course

Instructor

Spring Security OAuth2

loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생

74

mimik0901

1 asked

0

스크린샷 2025-10-12 오후 8.18.05.png.webp스크린샷 2025-10-12 오후 8.17.57.png.webp

55강 수강 중 client credentials 방식으로 변경 후 테스트 시 이런 에러가 발생합니다. 왜 그런걸까요 ㅜㅜ

java spring spring-boot oauth

Answer 2

0

leaven

예를 들어 아래와 같은 속성을 설정한다고 했을 때 맨 아래에 userNameAttribute: preferred_username 를 추가해 주세요
keycloak 은 기본적으로 userNameAttribute 속성에 preferred_username 를 찾습니다.

keycloak:

issuerUri: http://localhost:8080/realms/oauth2

authorizationUri: http://localhost:8080/realms/oauth2/protocol/openid-connect/auth

jwkSetUri: http://localhost:8080/realms/oauth2/protocol/openid-connect/certs

tokenUri: http://localhost:8080/realms/oauth2/protocol/openid-connect/token

userInfoUri: http://localhost:8080/realms/oauth2/protocol/openid-connect/userinfo

userNameAttribute: preferred_username

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
mimik0901님, 클라이언트 자격 증명 방식으로 변경 후 Missing attribute 'preferred_username' in attributes 에러가 발생한 이유는 OAuth2 사용자 정보(attributes)에 preferred_username 속성이 없는 경우입니다.

이 에러는 DefaultOAuth2User 클래스에서 발생하며, OAuth2 사용자 정보에서 특정 속성을 기대하지만 해당 속성이 포함되어 있지 않으면 발생합니다. 이런 현상은 주로 사용자 정보 엔드포인트로부터 기대하는 정보를 받지 못하거나, 서버 측 설정에 따라 반환된 정보가 다를 때 나타날 수 있습니다.

해결책을 시도해볼 수 있는 방법은 다음과 같습니다:

  1. OAuth2 공급자 설정 확인: OAuth2 공급자의 사용자 정보 엔드포인트에 올바른 속성들이 반환되는지 확인해보세요. 필요한 경우, OAuth2 공급자의 설정을 수정하여 필요한 속성(preferred_username)이 포함되도록 해야 합니다.

  2. Spring Security 설정 수정: OAuth2UserService를 재정의하여 기본적으로 필요한 속성(preferred_username)이 없을 때의 대체 동작을 설정할 수 있습니다.

  3. User Attributes Mapping: SimpleAuthorityMapper 같은 매핑 설정이 올바르게 되어 있는지 확인하고, 필요 시 매핑 로직을 조정하세요.

자세한 내용은 Spring Security의 참고 문서에서 확인할 수 있습니다.

해당 문제 해결에 도움이 되길 바랍니다. 추가 질문이 있으면 언제든지 물어보세요!

authorization-server 라이브러리 질문이 있습니다.

0

74

1

JWT 조회 에 대한 질문

0

69

1

password grant 방식 에러 응답

0

86

3

FormLoginConfigure에서 생성하는 필터

0

75

2

현업에서 springboot를 3.5.5 를 사용해서 공부중인데...

0

282

2

Jdbc 관련 강의 및 깃헙 문의

0

75

1

OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문

0

207

1

UserInfo 엔드포인트 요청 실습

0

72

1

RFC 문서에서의 AccessToken 발급 방식 궁금한점

0

148

1

강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요

0

137

2

OIDC SSO 관련 질문 입니다.

0

129

1

AuthenticationEntryPoint 강의 누락 문의

0

120

1

cors설정방법

0

115

1

jwt decoder 토큰 검증 시 질문

0

218

1

클라이언트에서 userinfo 엔드포인트 호출 시 질문

0

183

2

JOSE 구성요소의 api에 관한 질문

0

138

2

스프링 부트 3버전으로 따라가시는 분들 참고하세요

1

524

1

CustomOAuth2AuthenticationFilter 구현 중 질문

0

144

2

AuthenticationManager 생성시점

0

116

1

FormLogin과 Oauth2Client 둘 중 사용하는 시점

0

125

1

postman userinfo 엔드포인트 질문

0

132

2

강의 수강신청하고 듣기 전입니다 질문있습니다.

0

113

1

인증 코드를 통해 발급 받은 토큰의 관리

0

198

1

SPA의 로그인 페이지 사용하면서 자체 인가 서버 구성하는 법

0

250

1