본문 바로가기

전체 글44

Java - Wrapper Class란 Wrapper Class 자바를 공부하다보면 Wrapper Class라는 용어를 듣게 된다. Wrapper 클래스는 이름 그대로 감싸고 있는 클래스이다. 여기서 감싸는 대상은 자바의 자료형 중에 기본형이다. 자바의 자료형은 크게 기본 타입과 참조타입으로 나누어지는데 기본 타입을 감싸서 참조타입으로 만들어준다. 자바의 기본 타입은 소문자로 시작하는데 int, char, float, double, boolean 등이 있고 이외의 것들은 모두 참조형이라고 생각하면 된다. 예를 들면 int -> Integer, double -> Double, boolean -> Boolean이 있다. Boxing, UnBoxing Primitive 기본형 타입과 객체형 타입끼리 형 변환을해주는 것을 박싱, 언박싱이라고 한다. .. 2022. 8. 8.
Spring - CSRF란 Spring Security를 사용하는 예제들을 보면 기본적으로 csrf.disable()을 깔고가는 예제들이 많다. CSRF 공격은 쿠키+세션이 있어야 공격이 가능한데 요즘에는 Stateless하게 api 서버를 만들고 세션 베이스가 아닌 토큰 베이스로 인증을 하다보니 쿠키를 사용할 일이 없어서 csrf를 disable하는 것이다. 그렇다면 좀 더 자세히 CSRF 공격이 무엇인지 알아보도록하겠다. CSRF 공격이란? CSRF는 Cross Site Request Forgery인데 한국말로는 사이트 간 위조 요청이다. 사용자가 본인도 모르는 사이에 해커가 의도한 요청을 웹사이트에 하게 되는 것이다. CSRF 공격은 쿠키와 세션을 통해 당하게 되는데 어떻게 공격을 당하는지 알기 위해 먼저 세션과 쿠키에 대.. 2022. 8. 7.
Spring - Oauth2 Authorization Server에 대해서 상황 오늘은 Spring Oauth2 Authorization Server에 대해서 이야기해보고자 한다. 회사에서 만들고 있는 사이트가 기존에는 사내에서 제공하고 있는 SSO를 사용하고 있었다. 그런데 상황이 바뀌면서 자체적으로 인증을 구현해야되었다. 구조는 단순하게 서버 - 클라이언트로 하나의 서버에서 인증도 하고 다양한 작업들을 하는 것이었다. 따로 인증 서버는 없는 구조이다. 작업 이런 구조에서 무턱대고 Oauth2를 적용하고자 했다. 별 생각 없이 access_token을 만들어서 써야겠다는 생각으로 Oauth2에서 가장 많이 쓰이는 grant type인 authorization_code로 구현을 했다. access_token을 쓰는 이유는 세션을 사용할 필요가 없다는 점인데 서버 - 클라이언트 .. 2022. 8. 6.
Spring Boot - Oauth2 AuthorizationServer(authorization_code) 구축하기 (React 연동) 오늘은 스프링 부트에서 Oauth2 Authorization Server를 구축하는 방법에 대해서 알아보도록 하겠다. 직접 만들어보지 않으면 도무지 어떻게 돌아가는지도 모르겠고 슬쩍보면 너무 복잡해보이는 Oauth2인데 초 간단하게 사용하는 방법에 대해서 알아보도록하겠다. 이제 Spring에서는 Oauth2를 공식적으로 지원하지 않기 때문에 deprecate 경고가 뜨는데 여전히 잘작동하고 있고 다른 것을 원한다면 keycloack 같은 라이브러리를 이용하면 된다. 인증하는 방법(Grant Type)이 4가지가 있는데 나는 2가지를 사용해봤다. password와 authorization_code인데 오늘은 authorization_code 방법을 사용하는 법을 알아보도록 하겠다. authorization.. 2022. 8. 5.