인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

kljmi55님의 프로필 이미지
kljmi55

작성한 질문수

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

RequestMatcherDelegatingAuthorizationManager 로 인가 설정 응용하기

RequestMatcherDelegatingAuthorizationManager 로 인가 설정 응용하기에서 질문이 있습니

작성

·

142

0

안녕하세요.

선생님 SpringConfig에서 어떤 요청이든 인정 허용하려고 ".anyRequest().authenticated())"로 설정하셨는데

해당 강의에서는 ".anyRequest().access(authorizationManager(null)))"으로 해주셨는데 혹시 이유가 있을까요?

CustomRequestMatcherDelegatingAuthorizationManager에서 introspector에 대한 return 값이 맞는 게 없어서 강제적으로 null로 처리하신건가요?

아니면 모든 요청을 인정 허용하니 introspector을 null로 해서 authorizationManager에 대한 모든 값 (null 포함)해서 허용한다는 의미인가요?

바쁘시겠지만 확인 부탁드립니다~

답변 3

0

Spring은 @Bean 메서드에서 파라미터가 있는 경우, 해당 파라미터의 타입에 맞는 빈을 애플리케이션 컨텍스트에서 찾아 자동으로 주입한다

0

정수원님의 프로필 이미지
정수원
지식공유자

authorizationManager(null) 는 단순히 authorizationManager(HandlerMappingIntrospctor) 메서드가 빈을 생성하기 때문에 이 메서드를 호출할 때 컴파일 오류가 발생하지 않도록 처리한 것입니다.

실제 런타임에서 실행되면 authorizationManager(HandlerMappingIntrospctor) 는 CustomRequestMatcherDelegatingAuthorizationManager 객체 빈을 생성하게 됩니다

authorizationManager() 하면 오류가 나기 때문에 authorizationManager(null) 로 호출 한 것이라 보시면 됩니다.

0

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

kljmi55님 질문에 대한 답변은 직접적으로 제공된 정보와 링크된 자료 내에서 찾을 수 있는 내용과 직접적으로 일치하지 않아, 구체적인 해답을 제시하기 어렵습니다. 그러나 RequestMatcher와 관련하여 Spring Security 설정에서 .anyRequest().authenticated()를 사용하는 것은 모든 요청을 인증된 사용자에게만 허용하겠다는 일반적인 설정 방법입니다. 반면 .anyRequest().access(authorizationManager(null)) 같은 표현은 특정한 커스텀 로직을 통해 보다 세밀한 인가 처리를 하고자 할 때 사용할 수 있습니다.

CustomRequestMatcherDelegatingAuthorizationManager와 같은 커스텀 인가 관리자를 사용하는 경우, 특정 조건에 따라 인가 처리 로직을 세밀하게 조정하고자 할 때 해당 객체를 활용합니다. 여기서 introspector의 역할과 null 처리는, 구체적인 컨텍스트나 실행 로직에 따라 다를 수 있으멀로, 강의 내용이나 소스 코드 컨텍스트를 자세히 검토해야 정확한 이유를 파악할 수 있습니다.

본문의 질문에 대한 명확한 답변이 필요하다면, 해당 강의의 Q&A 섹션이나 강사님 직접 문의를 통해 더 구체적이고 상황에 맞는 답변을 얻으시는 것이 좋을 것 같습니다.

kljmi55님의 프로필 이미지
kljmi55

작성한 질문수

질문하기