반응형
1. 파일 업로드 및 미리보기를 구현하면서 정적자원관리 => 별도로 (왜냐하면 보안은 중요하니까)
그래서 MVC에서 별도로 ResourceHandler속에 넣어줌
// application.yml에서 path정보 등록
path:
upload:
dev: /home/download/data/upload/img/
real: upload/img
download: /home/download/data/
config: file:/home/download/data/upload/
// WebMvcConfiguration에서 관리
...
@Value("${path.config}")
private String pathConfig;
...
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/").setCacheControl(CacheControl.maxAge(10, TimeUnit.MINUTES))
.resourceChain(true).addResolver(new VersionResourceResolver().addFixedVersionStrategy(this.appVersion, "/**"));
registry.addResourceHandler("/upload/**").addResourceLocations(this.pathConfig);
registry.addResourceHandler("/.well-known/**").addResourceLocations("file:/home/sample/www/projectname/ROOT/WEB-INF/classes/static/.well-known/");
}
apache구성등은 모르나 이렇게 설정하고 /upload/img/{이하경로}/{파일명.확장자}를 입력했을때 접근이 가능했다.
2. 순환참조
늘상 하던 방식으로 선언하니 Bean을 사용하면 순환참조에 걸리고 구조체를 사용하자니 Bean등록이 안되었다고 에러가 발생했다.
그래서 사용한 방식
@Bean어노테이션으로 Bean을 등록하지 않고 코드를 분리해서 @Component어노테이션으로 따로 등록해주었다.
@RequiredArgsConstructor
@EnableMethodSecurity
@Configuration
@Slf4j
public class SpringSecurityConfig2{
private final AuthenticationConfiguration authenticationConfiguration;
private final CustomOAuth2UserService customOAuth2UserService;
private final JwtAuthenticationProvider jwtAuthenticationProvider;
...
@Autowired
public void configureAuthentication(AuthenticationManagerBuilder builder){
System.out.println("+++++++++++++ provider injection");
builder.authenticationProvider(jwtAuthenticationProvider);
}
...
// // 코드 분리함
// @Bean
// public JwtAuthenticationProvider jwtAuthenticationProvider(CustomOAuth2UserService customOAuth2UserService){
// return new JwtAuthenticationProvider(customOAuth2UserService);
// }
// 분리 코드
@Slf4j
@Component
public class JwtAuthenticationProvider implements AuthenticationProvider {
...
}
반응형
'Backend > Spring | SpringBoot' 카테고리의 다른 글
[Oauth2] Implicit Grant vs Authorization Code Grant (0) | 2024.06.20 |
---|---|
[OAuth2] 회고4 (0) | 2024.06.18 |
[OAuth2] 회고3 (0) | 2024.06.14 |
[Oauth2] 회고2 (0) | 2024.06.12 |
[Oauth2] 회고 1 (0) | 2024.06.11 |