inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티

SecurityContextHolder와 Authentication

principal에 대해 궁금한점이 있어서 질문 올립니다.

해결된 질문

321

양동우

작성한 질문수 10

1

안녕하세요 강의를 보고 있는 학생입니다.

Authentication에 좀더 알아보고 싶어서 따로 블로그를 찾아보다가 Authentication에는 principal과 credential데이터를 넣는다고 설명이 되어 있더라고 principal에는 사용자 정보(id)를 저장을 하고 credential에는 패스워드를 저장한다 요렇게 나와있었는데 강의에서는 principal내부에 id와 password를 한번에 저장한다고 말씀하셔서 이해가 잘 가지 않아 질문 올립니다.

항상 좋은 강의 만들어 주셔서 감사합니다!!!

java spring

답변 1

3

백기선

좋은 질문 감사합니다. Principal 개념은 명확히 해당 사용자를 지칭하는 거지만 그걸 구현을 어떻게 할꺼냐는 정해진게 없기 때문에 정하기 나름입니다. 보통의 경우에는 사용자의 id 또는 이메일이나 유저네임에 해당하는 String을 Principal로 사용할 수도 있을것이고, 어떤 경우에는 사용자에 해당하는 도메인 객체를 Principal로 사용할 수도 있습니다. 그 도메인 객체가 id와 password를 가지고 있을 수도 있는거죠.

스프링 시큐리티에서 Principal은 이 수업에서 설명드린대로 UserDetailsService에서 리터한 UserDetails 타입의 객체입니다. 그 객체에 담겨있는 모든 정보가 Principal을 구성하는 정보가 되는거고, UserDetails라는 인터페이스를 구현한 클래스를 만들어 제공하면 얼마든지 추가 정보를 가지고 있는 Principal을 만들 수도 있습니다.

커스텀 로그인 페이지를 등록할 경우 LogoutFilter의 등록 여부 질문

0

384

1

anonymousClass를 사용하는 이유

0

387

1

ExcpetionTranslationFilter가 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유

0

242

1

Principal 인터페이스와 User 클래스의 관계

0

756

1

passwordEncoder 질문드립니다.

0

320

1

WebSecurityConfigurerAdapter is deprecated 가 불편하신 분들을 위해

6

864

1

왜 스프링은 userid가 아니고 username을 사용했을까요?

0

1022

1

무상태성

0

347

2

로그인 후 로그인 페이지 접속

0

282

1

AuthenticationException은 어떤 경우에 발생하는지

0

557

1

AccountService에 비밀번호

1

225

1

커스텀 어노테이션 의 `커스텀 value` 설정방법에 관한 질문입니다.

0

356

1

passwordEncoder 빈 생성 시 차이

0

254

1

Bean 등록 관련 질문입니다.

0

248

1

시큐리티 전략관련

0

355

3

브라우저 기반 요청이 클라이언트의 요청을 처리 -> 의 의미?

0

228

1

AccountControllerTest 실행오류

0

1066

1

알려주신대로 설정을 해도 다시 302요청을 보냅니다....

0

342

1

voter에 대해 질문이 있습니다.

0

226

1

제가 맞게 이해한것인지 궁금합니다.

1

234

1

Spring security test 수행시 @AuthenticationPrincipal 가 null 로 세팅됨

0

549

1

Spring security Multi 인증 문의드려요

0

289

1

ProviderManager 문의

0

268

1

UserDetailsService 가 DaoAuthenticationProvider 에 어떻게 주입 되는지 알 수 있을 까요?

0

328

1