본문 바로가기

Programming149

[Spring Security] 전반적 Flow 1. Spring Security란 ? Spring Security는 Spring의 하위 프레임워크로, 인증(Authentication)과 권한(Authorization) 처리를 지원한다. " 기능에 대한 접근을 제어한다 " + 해당 과정에서 발생하는 보안적 이슈 문제 또한 지원한다. 1-1. Spring Security와 Filter Spring Security는 Spring MVC life cycle의 Filter단에서 이루어진다. 이때, Http Request는 실제로 여러개의 Filter를 거치게 되며, 이러한 필터 여러개가 마치 체인처럼 엮여있다고 해서 Filter Chain이라고 부른다. 1-2. Authentication vs. Authorization Authentication (인증) A.. 2023. 1. 21.
[Spring Boot | 삽질] H2 Database (User Table) JWT 기초 강의를 들으면서 코드를 작성하고, H2 Database에 연결을 하려는데 자꾸만 에러가 떴다. 그 해결 과정을 기록해놓으려 한다. [참고] https://jeongkyun-it.tistory.com/184 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class] Invocation of init method .. 2023. 1. 20.
[Spring Security] JWT 개념 정리 1. JWT란 ? JWT (Json Web Token)은 json 객체를 통해 토큰 자체에 다양한 정보를 저장하는 웹 토큰이다. JWT의 장점 1) 중앙 인증 서버나 데이터 스토어에 대한 의존성이 없으므로, 시스템을 수평적으로 확장할 수 있다. 2) Base 64 URL Safe Encoding을 사용하므로 URL, Cookie, Header 등 다양한 용도로 사용가능 JWT의 단점 1) Payload의 정보량이 많아지면 네트워크 사용량이 증가하므로, 효율적인 데이터 설계가 필요하다. 2) 토큰이 클라이언트에 저장되므로, 서버에서 그 토큰을 직접 조작할 수 없다. [공식 문서] https://jwt.io/introduction JWT.IO JSON Web Tokens are an open, industr.. 2023. 1. 19.
[배리어프리] #11 어플 출시 와!! 드디어 우리 어플 '피싱백신'이 Google Play Store에 출시되었다!!! 생각보다 오래 걸려서 걱정했는데 그래도 무사히 출시 성공했다. 이제 업데이트로 기능 보완하고, 최종 발표까지 하면 몇개월 동안의 공모전도 끝이난다. 마지막까지 화이팅하자..! 2023. 1. 19.
[캡스톤디자인프로젝트 | 스타트] 라즈베리파이 & 카메라 모듈 개발 환경 설정 졸업 프로젝트를 하며 처음으로 라즈베리 파이를 접하고, 개발을 위한 환경을 세팅해봤다. 하드웨어를 본격적으로 다룬 경험은 처음이라 겁도 많이 먹었었는데, 하나하나씩 공부하며 따라하니까 무사히 세팅을 마칠 수 있었다. (중간에 안돼서 열받은 기억도 많지만...결국 되면 다 미화됨ㅋㅋ) 기억 증발 전에 그 과정을 후다닥 기록해보고자 한다. [참고 자료] https://www.youtube.com/watch?v=rEOxUx23A8U&t=417s 목차 1. 기기 세팅 2. Raspberrypi OS 세팅 3. VNC Viewer 설정 4. 카메라 모듈 연결 1. 기기 세팅 준비물 | 라즈베리파이 CPU, 카메라 모듈 우리 팀의 경우, 라즈베리 파이 키트 & 카메라 모듈을 구입했다. 처음에 뭐가 엄청 많아서 당황.. 2022. 11. 22.
[Spring boot - OAuth2] Kakao Login 구현 #04 0. 전체 Flow 오늘은 Step 3 부분을 구현해보고자 한다. ① Access Token을 이용하여 Kakao Auth Server에게 사용자 정보 요청 ② 사용자 정보 받기 1. OAuthService 구현 ♠ Kakao Developers Docs 우리는 결국 2022. 11. 21.
[Spring boot - OAuth2] Kakao Login 구현 #03 0. 전체 Flow 오늘은 Step 2 부분을 구현해보고자 한다. ① Spring boot 서버에서 code를 이용해서 카카오 Auth 서버에 토큰 달라고 요청 ② code를 바탕으로 카카오 Auth 서버에서 토큰 발급 ③ Spring boot 서버에서 토큰을 받으면 끝 ! 1. GSON dependency 추가 Java에서 json을 다루는 라이브러리 중 하나인 gson을 이용해볼 것이다. build.gradle에 gson dependency를 추가해준다. // build.gradle dependencies { ... implementation'com.google.code.gson:gson:2.8.7' ... } 2. OAuthService 구현 ♠ Kakao Developers Docs 우리는 결국 .. 2022. 11. 18.
[Spring boot - OAuth2] Kakao Login 구현 #02 0. 전체 Flow Kakao Developers에 소개된 카카오 로그인 flow는 다음과 같다. 오늘은 Step 1 부분을 구현해보고자 한다. 나는 Vue.js로 프론트를, Spring boot로 백을 구현하였다. ① Vue.js 에서 url을 클릭하여 카카오톡 로그인 화면을 받아오고, 화면에 출력 ② 사용자가 카카오톡 로그인을 한다. ③ Kakao Auth Server에서 Redirect URI로 인가 코드를 전달한다. ④ Spring boot로 ③에서 준 코드를 받으면 끝 ! 1. Frontend 설정 Kakao Developer에서 로그인 버튼 이미지를 다운받아서 간단히 다음과 같이 화면을 구상해두었다. (redirect uri는 스프링 포트쪽 http://localhost:3001/kakao로 .. 2022. 11. 17.
[Spring boot - OAuth2] Kakao Login 구현 #01 0. Kakao Developer 설정 카카오 로그인을 구현하기 위해서는 Kakao Developer 가입 후, application을 만들어야 한다. 그 과정은 아래와 같다. ① 사이트 접속 후 로그인 https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com ② 내 어플리케이션 만들기 앱 이름과 사업자명을 자유롭게 설정하고, 안내사항에 동의하면 쉽게 어플리케이션이 만들어진다. ③ 카카오 로그인 활성화 내 애플리케이션 > 제품 설정 > 카카오 로그인에서 활성화 상태를 ON으로 설정한다. 아래의 Redi.. 2022. 11. 12.