spring security 3

Spring Security 기본 개념공부 5. (Cors, Csrf란?)

Section 6. Cors란? Cross Origin Resource Sharing의 약자로 두 가지 이상의 다른 출처에서 자원을 공유한다는 의미이다. 두가지 이상의 다른 출처란 프론트와 백을 의미한다. 출처란 무엇일까?: http 프로토콜, 도메인주소(url), 포트번호의 조합을 출처라고 볼 수 있다. 셋중 하나라도 다르면 출처가 다르다로 할 수 있다. 이렇게 서로다른 출처에서 자원의 공유가 일어나면 최신 브라우저들은 모두 소통을 차단하도록 설정되어 있다. 그 이유는 이렇게 다른 출처에서 들어오는 요청을 차단함으로서 많은 보안적 이점을 가져갈 수 있기 때문이다. 그렇다면 우리는 웹을 개발할때 어떻게 해야할까? 첫 번째 방법은 @RestController 어노테이션 밑에 @CrossOrigin이라는 어..

Spring Security 기본개념 공부 4.

Section 3. UserDetailsService 커스텀 이제 jdbcUserDetailsManager가 아닌 우리만의 로직으로 UserDetails를 정의해보겠다.! 우선 LoadUserByUsername 메소드를 직접 작성해야한다. 그러기 위해 데이터베이스에서 유저 정보를 가져와 UserDetails 객체로 만들어 반환해주는 로직을 작성해줘야한다. public class EazyBankUserDetails implements UserDetailsService { 다음과 같이 UserDetailsService를 구현하여 만든다. @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundExceptio..

Spring Security의 기본개념 공부 1.

Section 1. spring security를 써야하는 이유는 무엇일까? 보안 전문가들이 개발한 spring security를 사용함으로서 우리는 비즈니스 로직에만 집중할 수 있다. 최적화된 코드이기 때문에 최소한의 구성으로 웹 어플리케이션을 보호할 수 있다. 발전해가는 CSRF,CORS등의 취약점에 대비해 spring security팀은 항상 보안 코드를 업데이트 한다. 권한을 부여하여 접근을 제한할 수 있다. 다양한 방법으로 인증 및 인가를 구현할 수 있다. (JWT, OpenId등,, 추후에 배움) 서블릿과 필터 모든 웹사이트는 http 프로토콜을 사용하여 소통한다. 그러나 우리의 자바코드는 그러한 http 요청을 이해할 수 없기에 중재자가 필요하다. 이 중개자를 우리는 서블릿 컨테이너라고 부른..