프로젝트를 하는 과정에 있어서 기록하는 것이다.
잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다.
✅ CORS 해결
- 금요일부터 주말 내내 CORS 오류를 해결하려 했으나 해결하지 못했다.
- 거기에 플러스로 회원가입도 되지 않았다.
- @CrossOrigin 어노테이션도 붙여보고, 어트리뷰트도 다 넣어줘보았다.
@CrossOrigin(origins = "*", allowedHeaders = "*", allowCredentials = "true", maxAge = 5000L)
- WebMvcConfig를 만들어 addMapping도 했으나 이 오류는 해결되지 않았다.
- 그리고 황당하게 찾은 이유.. OPTIONAL 메서드가 허용되어 있지 않았다.
- 해당을 추가해주고, 어노테이션을 주석처리하니 해결이 되었다.
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PATCH", "DELETE"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PATCH", "DELETE", "OPTIONS"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
configuration.addAllowedHeader("*");
configuration.addAllowedOriginPattern("*");
configuration.setAllowCredentials(true);
configuration.setMaxAge(5000L);
return source;
}
✅ 유저 정보 판별(?)
- 이제 config에 주석처리를 해두었던 권한 접근을 해제하였다.
- 그러면 생기는 문제가 로그인한 유저가 해당 페이지 유저가 아님에도 해당 페이지에 접근이 가능한 경우가 생긴다
- 예를 들면, 로그인한 A는 유저 권한을 갖고 있다.
- A는 B의 페이지에 실수로 접근하였다.
- 하지만 유저권한이 있기에 접근이 된다.
- 현재는 위의 상태이다. 그리하여, 로그인 유저와 해당 페이지 유저가 일치하는지에 대한 판별이 필요했다.
- 프론트엔드 분들께서 이미 한 번 권한이 없으면 안된다고 하셨지만, 혹시나 하는 마음으로 한 번 더 걸러 주어야 겠다고 생각했다.
- UserDetails을 상속받은 UsersDetail을 가져왔더니 찾을 수가 없었다.
- 그래서 Principal로 해결하였다.
- 왜 안 된 건지 알고 싶다.
'Study in Bootcamp > Pre-Project' 카테고리의 다른 글
프리 프로젝트 회고 (0) | 2022.11.08 |
---|---|
[Pre-Project] Day 13 : 헤더로 토큰 전달, 배포(실패😭) (1) | 2022.11.08 |
[Pre-Project] Day 11 : SQL 데이터 넣기 (0) | 2022.11.04 |
[Pre-Project] Day 10 : OAuth2 구현해보기 및 MySql Update (0) | 2022.11.03 |
[Pre-Project] Day 9 : Spring Security (0) | 2022.11.02 |
댓글