24.07.14 11:45 작성
·
82
0
안녕하세요.
선생님 SpringConfig에서 어떤 요청이든 인정 허용하려고 ".anyRequest().authenticated())"로 설정하셨는데
해당 강의에서는 ".anyRequest().access(authorizationManager(null)))"으로 해주셨는데 혹시 이유가 있을까요?
CustomRequestMatcherDelegatingAuthorizationManager에서 introspector에 대한 return 값이 맞는 게 없어서 강제적으로 null로 처리하신건가요?
아니면 모든 요청을 인정 허용하니 introspector을 null로 해서 authorizationManager에 대한 모든 값 (null 포함)해서 허용한다는 의미인가요?
바쁘시겠지만 확인 부탁드립니다~
답변 2
0
2024. 08. 04. 18:57
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 섹션이나 강사님 직접 문의를 통해 더 구체적이고 상황에 맞는 답변을 얻으시는 것이 좋을 것 같습니다.