BackEnd/Spring Security13 [Spring Security] SecurityConfig와 UserDetailsService에서 순환참조 문제 (Error creating bean with name 'securityConfig': Requested bean is currently in creation: Is there an unresolvable circular reference?) 1. 문제의 상황 우선 Custom한 AuthenticationProvider를 구현하던 도중, 구현의 편의를 위해 @Autowired로 필요한 의존성들을 끌어다 사용 중 이었다. 또한 정상적으로 실행되고 있었다. 기능이 구현된 후에 단지 의존성 주입방식을 생성자 주입 방식으로 변경 테스트를 수행했는데 다음과 같은 에러가 발생하였다! SecurityConfig memberDetailsService(UserDetailsService) 간에 순환 참조 문제가 발생하게 된 것 이다! 우선 문제가 되고 있는 코드를 살펴보자! ▶ LoginAuthenticationProvider @RequiredArgsConstructor public class LoginAuthenticationProvider implement.. BackEnd/Spring Security 2023. 2. 8. [Spring Security] 웹 기반 인가처리 과정 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 1. 인가처리 - 주요 아키텍처 이해 1 - 1) Spring Security의 인가처리 예를 들어 다음과 같이 권한 설정을 했다고 해보자! http.antmatchers("/user").access("hasRole('USER')") 사용자(인증정보)가 "/user"자원(요청정보)에 접근하기 위해서는 "ROLE_USER" 권한(권한정보)이 필요한 상황이다. 이제 사용자 요청이 들어왔을때 어던 방식으로 초기화 되는지 알아보자! 1) 인증정보(Authentication)는 SecurityContext에서 얻습니다. 2) 사용자 요청정보로부터 FilterInvocation클래스를 생성해서 request 정.. BackEnd/Spring Security 2022. 11. 1. [Spring Security] AccessDecisionManager, AccessDecisionVoter 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 1. AccessDecisionManager, AccessDecisionVoter " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1-1) AccessDecisionManager AccessDecisionManager는 인터페이스 이다. 인증, 요청, 권한 정보를 이용해서 사용자의 자원접근을 허용 or 거부 여부를 최종 결정하는 주체이다. 여러 개의 Voter들을 가질 수 있고, Voter들로부터 접근허용,거부,보류에 해당하는 각각의 값을 리턴받아 판단&결정한다. 최종 접근 거부시 예외 발생 ▶ AccessDecisionManager의 3가지 구현체 1. Affirma.. BackEnd/Spring Security 2022. 9. 4. [Spring Security] Authorization, FilterSecurityInterceptor 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authorization/authorize-requests.html Authorize HttpServletRequest with FilterSecurityInterceptor :: Spring Security By default, Spring Security’s authorization will require all requests to be authenticated. The explicit configuration looks like: docs.spring.io 1. Authorization, Fi.. BackEnd/Spring Security 2022. 9. 3. [Spring Security] AuthenticationProvider 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-authenticationprovider Servlet Authentication Architecture :: Spring Security ProviderManager is the most commonly used implementation of AuthenticationManager. ProviderManager delegates to a List of AuthenticationProviders. E.. BackEnd/Spring Security 2022. 9. 2. [Spring Security] AuthenticationManager 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-authenticationmanager Servlet Authentication Architecture :: Spring Security ProviderManager is the most commonly used implementation of AuthenticationManager. ProviderManager delegates to a List of AuthenticationProviders. Ea.. BackEnd/Spring Security 2022. 8. 28. [Spring Security] Authentication Flow 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-abstractprocessingfilter Servlet Authentication Architecture :: Spring Security ProviderManager is the most commonly used implementation of AuthenticationManager. ProviderManager delegates to a List of AuthenticationProviders... BackEnd/Spring Security 2022. 8. 27. [Spring Security] SecurityContextPersistenceFilter 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/persistence.html#securitycontextpersistencefilter Persisting Authentication :: Spring Security The first time a user requests a protected resource, they are prompted for credentials. One of the most common ways to prompt for credentials is to redirect the user to a l.. BackEnd/Spring Security 2022. 8. 27. [Spring Security] SecurityContextHolder, SecurityContext 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-securitycontextholder Servlet Authentication Architecture :: Spring Security ProviderManager is the most commonly used implementation of AuthenticationManager. ProviderManager delegates to a List of AuthenticationProviders. Ea.. BackEnd/Spring Security 2022. 8. 25. [Spring Security] Authentication 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-authentication Servlet Authentication Architecture :: Spring Security ProviderManager is the most commonly used implementation of AuthenticationManager. ProviderManager delegates to a List of AuthenticationProviders. Each Auth.. BackEnd/Spring Security 2022. 8. 25. [Spring Security] 필터 초기화와 다중 보안 설정 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 1. 필터 초기화와 다중 보안 설정 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 시큐리티에서는 보안 설정을 단일 설정이아닌 여러 개의 설정을 만들어서 동시에 사용을 할 수 있다. 위 그림을 보면 Config 파일이 2개이다. 설정 Config Class 별로 보안기능이 각각 작동한다. 각 Config Class 별로 RequestMatcher를 설정한다. 예를 들면 다음과 같이 말이다. http.antMatcher("/admin/**") 이후 각각의 config 파일 별로 Filter가 생성된다. 위에서 생성된 Filter를 DefaultSecurityFil.. BackEnd/Spring Security 2022. 8. 25. [Spring Security] DelegatingFilterProxy, FilterChainProxy 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 이번 글 부터 당분간 Spring Security의 구조에 대하여 학습하고 정리하도록 하겠다. https://docs.spring.io/spring-security/reference/servlet/architecture.html Architecture :: Spring Security Spring Security’s Servlet support is based on Servlet Filters, so it is helpful to look at the role of Filters generally first. The picture below shows the typical layering of the.. BackEnd/Spring Security 2022. 8. 25. 이전 1 2 다음