본문 바로가기

전체 글

(70)
[스프링] CORS(Cross-Origin Resource Sharing) 해결 방법 개요 CORS(Cross-Origin Resource Sharing)란, 웹 브라우저에서 실행되는 스크립트가 다른 출처(Origin)의 서버에 접근하는 것을 제한하는 보안 기능입니다. 웹 서버에서 CORS 설정을 하지 않으면, 다른 출처에서 요청이 들어올 때 브라우저에서 차단됩니다. CORS는 요청하는 출처와 응답하는 출처가 다를 때, 브라우저가 보안상의 이유로 데이터를 차단하는 기능입니다. 이러한 보안상의 이유는 다른 출처에서의 요청이 중요한 데이터를 탈취하거나 악성코드를 심어 보안에 침해할 수 있기 때문입니다. 해결방법 @CrossOrigin 어노테이션 @CrossOrigin 어노테이션은 특정 컨트롤러나 메서드에 대해 CORS를 허용하도록 설정합니다. @RestController public clas..
[스프링 시큐리티] 시큐리티 동작 과정, UserDetails, UserDetailsService. 스프링 시큐리티 동작 과정 (아래는 id, password를 사용하는 form 기반 인증처리 과정입니다. OAuth2.0이나 JWT를 이용한 인증을 할시에는 다른 필터를 거치게 됩니다. ex) OAuth2ClientAuthenticationProcessingFilter) (위 숫자와 아래 숫자는 아무 상관 없음) 사용자가 아이디와 비밀번호(로그인 정보)를 입력하여 form을 전송 AuthenticationFilter에서 UsernamePasswordAuthenticationToken(Authentication 인터페이스의 구현체)을 생성해 AuthenticationManager(실질적으로는 구현체인 ProviderManager)에게 전달(UsernamePasswordAuthenticationToken은 ..
[스프링][자바]Reflection API Reflection API는 자바 언어를 볼때에는 공부해보지 못했던 개념이었다. 그래서 스프링을 공부하면서 DI에대해 공부하다 접하게 된 용어인데 이번기회에 스프링의 동작방식에 대해 조금이라도 이해해 보려고 한다. Reflection API란? 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드,타입,변수들에 접근 할 수 있도록 해주는 자바 API이다. 컴파일 시간이아닌 런타임 시간에 동적으로 특정 클래스의 정보를 가져올 수 있다. 런타임 시점에 동적으로 타입을 분석하고 정보를 가져오므로 JVM 최적화를 할 수 없으므로 성능 오버헤드가 발생할 수 있다. private으로 선언된 필드나 메서드에도 직접 접근이 가능하므로 캡슐화를 무시하게 된다. 즉 애플리케이션 개발목적보단 프레임워크나 라이브러리에서 많..