작성
·
213
0
안녕하세요, 강사님?
강의 잘듣고 있습니다. 이제 막 회사에서 일하기 시작한 주니어 개발자입니다.
제 회사에서는 websecurityconfigureradapter 를 상속받아서, spring boot 2.7.6에서 사용하고 있습니다.
이 경우에는 authorization server를 마지막 강의에서 사용하신 source code를 활용해보니 작동하지않았습니다. illegalStateException에서 security filter chain과 websecurityconfigureradapter 둘중 하나를 사용하라는 문제에 부딪혔습니다.
그외에도 oauth2 authroization server 관련 jar내 class들이 security filter chain을 형성하는 과정이 관련 있는 것 같아서, 동작하지 않는것으로 보이기도 합니다. 예를들면 @Bean (clientRegistration을 수행하는메서드) 입니다.
혹시 oauth2로는 websecurityconfigureradapter 과 함께 쓸수가 없는 것일까요?
있다면, 혹시 관련 코드를 가지고 계신것이 있다면 공유해주시면 감사드리겠습니다.!
답변 2
0
네 spring boot 2.7.6 에서 oauth2 를 사용할 경우 websecurityconfigureradapter 를 사용하시면 안됩니다
security filter chain과 websecurityconfigureradapter 둘 중 하나를 사용해야 하지만 websecurityconfigureradapter 는 deprecated 가 되었기 때문에 오작동 할 수 있습니다.
본 강의에서도 security filter chain 만 사용하는 이유이기도 합니다.
이 부분에 대한 코드는 현재로서는 없습니다.
그리고 security filter chain 을 사용해서 oauth2 에 대한 기능을 구현하도록 하는 것이 맞습니다.
현재 회사의 코드를 security filter chain 에 맞게끔 변경이 필요할 듯 보입니다.
0
안녕하세요, 인프런 AI 인턴입니다.
WernnerKim님, Spring Security OAuth2에 관해 질문해주셨군요.
Spring Boot 2.7.6을 사용 중이시고, WebSecurityConfigurerAdapter
를 상속받아 사용하고 계신다고 했습니다. Spring Security 5.4 버전부터는 WebSecurityConfigurerAdapter
를 사용하는 방법이 권장되지 않게 되었는데요, 더 이상 WebSecurityConfigurerAdapter
를 상속하기보다는 SecurityFilterChain
빈을 직접 정의하는 것이 권장되는 현재의 방식과 관련이 있습니다.
Spring Boot 2.x 버전에 통합된 Spring Security 5가 제공하는 OAuth2 Authorization Server를 설정하기 위해서는 SecurityFilterChain
를 사용하여 필터 체인을 설정해야 합니다. spring-security-oauth2-authorization-server
가 클래스패스에 있는 경우 일부 자동 구성을 이용하여 OAuth2 Authorization Server를 설정할 수 있으나, 실제로는 대부분의 응용 프로그램에서는 커스터마이징이 필요합니다.
스프링 부트가 제공하는 OAuth2 Authorization Server의 자동 구성을 덮어쓰고자 할 경우 다음 컴포넌트를 빈으로 정의할 수 있습니다:
- RegisteredClientRepository
- AuthorizationServerSettings
- SecurityFilterChain
Spring Boot Reference Documentation의 OAuth2 Authorization Server 섹션을 참조하시면 자세한 정보와 예제 구성을 확인하실 수 있습니다.
WebSecurityConfigurerAdapter
와 함께 SecurityFilterChain
를 사용하는 것에 대해 문제가 있다면, 특히 SecurityFilterChain
빈을 등록하는 것이 현재 권장되는 방식이므로 WebSecurityConfigurerAdapter
를 사용하지 않고 필터 체인을 직접 설정하는 방식으로 마이그레이션하는 것을 고려해보시는 것이 좋습니다.
OAuth2를 위한 커스텀 설정 예제 코드가 필요하다면 Spring Boot Reference Documentation에서 관련 예제를 찾아보실 수 있습니다. 해당 문서는 OAuth2 설정 시 필요한 여러 설정 예제를 제공하고 있어 도움이 될 것 입니다.
솔루션을 찾는 데 어려움이 계속 되신다면, 현재 사용하고 계신 설정과 에러 로그 등을 구체적으로 기재하셔서 더 자세한 상황을 알려주시면 추가적인 도움을 드릴 수 있을 것 같습니다.
답변주셔서 감사드립니다^^
인가서버를 회사 프로젝트 외부로 일단, 빼는것으로 하려고 합니다.
그래도, 안되면 회사 security를 바꾸도록 해보려합니다.
새로운 질문을 하나 올렸는데, 꼭 좀 부탁드리겠습니다. 수준높은 수업제공하여 주셔서 감사드립니다.