inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 완전 정복 [6.x 개정판]

SecurityBuilder / SecurityConfigurer

init(B Builder), configure(B builder) 에 대하여 질문 드립니다.

106

seonman.kim

작성한 질문수 5

0

안녕하세요,

 

수업 내용을 보면 6:00 시간대의 수업자료를 보면

SecurityConfigurer에서 init(B Builder), configure(B builder)을 호출한다고 나와있습니다.

 

하지만, 실제 소스코드를 보면 아래와 같은데, 파라미터를 보면 Builder 타입이 아닌, 파라미터를 넘기지 않는 것을 확인할 수 있습니다.

@Override
	protected final O doBuild() throws Exception {
		synchronized (this.configurers) {
			this.buildState = BuildState.INITIALIZING;
			beforeInit();
			init();
			this.buildState = BuildState.CONFIGURING;
			beforeConfigure();
			configure();
			this.buildState = BuildState.BUILDING;
			O result = performBuild();
			this.buildState = BuildState.BUILT;
			return result;
		}
	}

확인 부탁드려도 될까요?

감사드립니다.

spring spring-boot spring-security security web-security

답변 2

0

seonman.kim

제가 잘못 이해하여 질문을 잘못 드렸네요. 감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. seonman.kim님.

SecurityConfigurer에서의 init(B Builder)configure(B builder)에 관한 질문을 주셨군요.

질문에서 언급하신 doBuild() 메소드의 구현을 보자면, 보통 스프링 시큐리티에서 사용되는 Configurer 클래스들은 자신이 보유한 다른 Configurer 내지는 그 상위의 클래스를 활용하여 Security 기능을 설정하게 됩니다. 이 때 init()configure() 메소드는 보통 시큐리티 설정의 초기화(initialization)와 환경설정(configuration)을 위한 메소드입니다.

  1. init 메소드:

    • init() 메소드는 리소스를 초기화하거나 기본적인 설정들을 등록하는 용도로 사용됩니다. 이 단계에서는 주요 리소스나 컴포넌트를 초기화해둡니다.
  2. configure 메소드:

    • configure() 메소드는 실제 시큐리티 설정을 적용하는 단계입니다. 이 과정에서 인증 메커니즘, 권한 설정, 기본 설정 방식들을 구체적으로 구성하게 됩니다.

질문 내용 중에 언급된 코드 내 init()configure()가 파라미터 없이 선언된 것은 해당 메소드들이 상위 클래스 내지 인터페이스 메소드에서 실제로 Configurer의 적절한 Init 및 Configure 메소드를 호출할 필요를 직간접적으로 통합해서 설계되어 있을 수 있습니다. 즉, 이 메소드들은 전체 시큐리티 설정에 필요한 다양한 Configurer 로직을 허용하도록 설계된 추상화(SPI)에서 차등적으로 구체화된 것이라고 볼 수 있습니다.

더 구체적인 내용이나 코드의 상세한 변화는 강의 자료 및 Spring Security 공식 문서를 통해 확인해 보시길 권장드립니다.
관련 링크: Spring Security Reference Documentation

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.

0

28

2

단원별 소스코드

0

59

2

CustomAuthenticationProvider 추가 관련 문의

0

69

2

AOP 의존성 명칭 변경

0

65

1

빈 1개 등록 시 다른 해결 방법

0

65

1

@Bean으로 AuthenticationProvider를 등록 시 http.authenticationProvider 함수를 이용해서 추가해줘야되나요?

0

85

2

OIDC의 id token에 담긴 데이터에 대해

0

74

1

loginPage("/loginPage") 질문드립니다.

0

69

1

@EnableWebSecurity

0

147

1

트랜잭션과 롤백

0

99

1

68. 인증 이벤트 - AuthenticationEventPublisher 활용 강좌 음성 문제

0

88

2

AuthenticationManager 사용 방법

0

148

2

HttpSecurity.authorizeHttpRequests() - 2 강의 부분에 대한 질문

0

104

2

spring security 6.3에서는 HttpSecurity가 만들어지기 전 WebSecurity가 먼저 만들어지는게 맞나요??

0

190

1

메타 주석 질문

0

68

1

동시세션제어 기능에서 로그아웃하기

0

147

3

로그인 후, redirect 에서 error

0

138

3

Session 생성 타이밍에 대한 질문

0

84

2

강의 참고 내용을 개발 로그로 작성해도 될지 문의드립니다.

0

133

2

customAuthentication 관련

0

127

2

authenticationManagerBuilder 주입받은거 vs 만든 거

0

110

1

UserDetailsService()에서 UserDetail이 아닌 타입을 반환할 수 있나요?

0

101

1

9:28 패턴 3의 경우 마지막으로 설정한 것만 적용되는 것 같습니다.

0

159

2

Bean UserDetailsService

0

91

2