π¨ Projects/μλ¬λͺ¨μ
[μλ¬λͺ¨μ] The dependencies of some of the beans in the application context form a cycle
HelloRabbit
2023. 3. 18. 23:27
728x90
μλ¬ μ€λͺ
μλ° νλ‘μ νΈ μ€ 2κ°μ ν΄λμ€κ° μλ‘λ₯Ό μ°Έμ‘°νλ ννλ₯Ό κ°μ§ λ μκΈ°λ μλ¬
SecurityConfig.java
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private PrincipalOauth2UserService principalOauth2UserService;
// λ¬Έμ λλ λΆλΆ
@Bean
public BCryptPasswordEncoder encodePwd() {
return new BCryptPasswordEncoder();
}
}
PrincipalOauth2UserService.java
@Service
public class PrincipalOauth2UserService extends DefaultOAuth2UserService {
// λ¬Έμ λλ λΆλΆ
private BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
}
- SecurityConfig --> PrincipalOauth2UserService --> BCryptPasswordEncoder --> SecurityConfig κ° λμ΄ μν μ°Έμ‘° λ¬Έμ κ° λ°μνλ€.
ν΄κ²°
1. μ°Έμ‘°λλ λ©μλλ₯Ό mainμΌλ‘ μ΄λνκΈ°
GuguMain.java
@SpringBootApplication
@EnableJpaAuditing
public class GuguMain {
// μ΄λ°μμΌλ‘ main ν΄λμ€μμ λΉμ λ±λ‘μν€κΈ°
@Bean
public BCryptPasswordEncoder encodePwd() {
return new BCryptPasswordEncoder();
}
public static void main(String[] args) {
SpringApplication.run(GuguMain.class, args);
}
}
2. μ°Έμ‘°λλ λ©μλλ₯Ό λ€λ₯Έ κ°λ³ ν΄λμ€λ‘ μ΄λνκΈ°
CustomBCryptPasswordEncoder.java
@Component
public class CustomBCryptPasswordEncoder {
// μλμ²λΌ λΉ λ±λ‘ν μ μμ
public class CustomBCryptPasswordEncoder extends BCryptPasswordEncoder {
}
SecurityConfig.java
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private PrincipalOauth2UserService principalOauth2UserService;
}
- μμμ λ¬Έμ λμλ μ½λ μ κ±°
PrincipalOauth2UserService.java
@Service
public class PrincipalOauth2UserService extends DefaultOAuth2UserService {
// λΉ μ»¨ν
μ΄λμ λ±λ‘λμ΄ μλ BCryptPasswordEncoder μ¬μ©νκΈ°
@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;
}
- SecurityConfig.java μμ λ μ΄μ BCryptPasswordEncoder λΉ λ±λ‘μ νμ§ μκΈ° λλ¬Έμ μλ‘ μ°Έμ‘°νλ ννκ° μλλΌ SecurityConfig --> PrincipalOauth2UserService --> BCryptPasswordEncoder κ° λμ΄ μν μ°Έμ‘°κ° ν΄κ²°λλ€.