분류 전체보기

잔디심는 정원사
[JWT] JWT 필터와 예외 처리
Spring Security에서 인증 메커니즘을 구현하기 위해 JWT 필터를 사용했습니다. 이 필터는 Exception Handler로 처리를 못하기 때문에 별도의 메커니즘이 필요합니다 ! 왜 그럴까? JWT 필터는 OncePerRequestFilter를 상속받아 매 요청마다 한 번씩 실행됩니다. 이 필터는 HTTP 요청 헤더에 포함된 JWT를 해석하고, 유효한 토큰인 경우 Security Context에 인증 정보를 설정합니다. 또한 이 필터는 Dispatcher Servlet 보다 앞단에 위치하여, Handler Interceptor는 뒷단에 존재하기 때문에, Filter에서 보낸 예외는 Exception Handler로 처리를 못합니다. 따라서, JWT 필터에서 예외가 발생할 경우 이를 적절히 처리..
[Swagger3] authroize 버튼을 활성화해서 헤더에 값 넣어주기 (Bearer 사용)
1. build.gradle 추가 implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '3.0.0' 2. SwaggerConfig @Configuration @RequiredArgsConstructor public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.OAS_30) .securityContexts(Arrays.asList(securityContext()..
[Spring] 소셜 로그인 구현하기- 카카오편
·Spring
카카오는 구글과 동일한 과정을 거칩니다. 1. 클라이언트 쪽에서 로그인을 합니다. 2. 카카오 서버는 redirect url로 code를 전달해줍니다. 3,4. code를 이용하여 access_token을 발급받습니다. 5. access_token을 서버로 전송합니다. —————————————————————————————————————— 6,7. 서버에서는 받은 access_token을 이용하여 카카오 서버에서 사용자 정보를 받습니다. 8. 받은 사용자 정보를 이용하여 회원가입 또는 로그인을 진행합니다. 9. JWT등과 같이 사용자 식별 정보를 클라이언트로 보냅니다. 1~5는 프론트엔드에서 구현할 것이고, 백엔드는 6~9만 구현하면 됩니당! 더보기 나는 백엔드이지만 테스트를 해야했고...그래서 실질적으로..
[CI/CD] github actions, nginx, docker이용해서 blue-green 무중단 배포하기
·Infra/CI&CD
1. Blue_Green 배포란? 8080 포트로 연결된 컨테이너 8081포트로 다른 다른 버전의 컨테이너 띄우기 nginx.conf 수정후 reload (업스트립 8081 수정) 8080 컨테이너 제거 새로 배포할 때마다 새로운 컨테이너들을 띄우고 nginx 연결(upstream)을 새로 띄운 컨테이너 포트로 연결한 뒤 이전 컨테이너는 내립니다. ❗️뒤에 설명드릴때는 green이 8082, blue가 8081 포트입니다❗️ 2. github actions 작성 name: Deploy on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest env : working-directory: ./ APPLICATION: ${{ secrets.APPL..
[CI/CD] Github-Actions 할 때 Secrets에 Application 및 Key 파일 넣을 때 주의할 점
·Infra/CI&CD
[CI&CD] Spring boot 프로젝트를 Docker와 Github Action이용해서 자동배포하기 대략적인 그림은 이와 같다. 1. Dockerfile 작성 먼저, Dockerfile을 작성한다. Dockerfile은 Docker이미지를 빌드하기 위한 지시문을 포함한다. FROM openjdk:11-jdk ARG JAR_FILE=./build/libs/dashboardback-0.0.1-SNAPSHOT.jar CO minsu20.tistory.com 지난 게시글에서 나는 Secrets에 application.yml파일을 넣고 Github-Actions시에 그걸 생성해서 build하였다. 이번에도 그렇게 CI/CD를 구성하고 firebase-key.json도 secrets에 넣어서 applicato..
[Spring] 소셜 로그인 구현하기-구글 편(id-token 활용)
·Spring
구글 소셜 로그인을 구현하는 방법은 생각보다 여러가지이다. 첫 번째는 OAuth 2.0 를 활용해 백엔드에서 모두 처리(code 생성, 인증)하는 것과 id token (구글은 access token 이 아닌 id token이다) 를 프론트엔드에게 받아 이 id token 을 백엔드에서 인증하는 것이다. 나는 그 중에서 id token을 프론트엔드에서 받아와 백엔드에서 인증하는 방식을 설명하고자 한다. 전체적인 순서는 다음과 같다. 1. 클라이언트가 구글에게 로그인 요청을 보낸다. 2. 로그인에 성공하면 구글은 유저의 ID 토큰을 클라이언트에게 넘겨준다. 3. 클라이언트는 서버에 ID 토큰과 함께 로그인 요청을 보낸다. 4. 서버에서는 구글의 토큰 검증 API에 요청을 보내 ID 토큰의 무결성을 검증한다..
Redis를 이용해 현재 로그인 중인 사용자 확인하기
·Spring/Redis
0. Redis 설치 [EC2+Docker] ✔️redis 이미지 다운 docker pull redis ✔️이미지 파일 확인 docker images ✔️ AWS 보안그룹 인바운드/아웃바인드 설정 ✔️ docker를 사용하여 redis 이미지를 만들고 redis 비밀번호를 설정 docker run -p 6379:6379 --name (redis 컨테이너 이름) -d redis:latest --requirepass "(비밀번호)" ex) docker run -p 6379:6379 --name spring-redis -d redis:latest --requirepass "123456" ✔️ redis-cli에서 인증 후 접속 확인 docker exec -i -t (redis 컨테이너 이름) redis-cli..
[CI/CD] Spring boot 프로젝트를 Docker와 Github Action이용해서 자동배포하기
·Infra/CI&CD
대략적인 그림은 이와 같다. 1. Dockerfile 작성 먼저, Dockerfile을 작성한다. Dockerfile은 Docker이미지를 빌드하기 위한 지시문을 포함한다. FROM openjdk:11-jdk ARG JAR_FILE=./build/libs/dashboardback-0.0.1-SNAPSHOT.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 2. AWS EC2 인스턴스 생성 AWS EC2콘솔에서 새로운 인스턴스를 생성한다. ↓이 블로그 참고 AWS EC2 인스턴스 생성하기 • 안녕하세요~ 이전에 운영하던 블로그 및 GitHub, 공부 내용을 정리하는 Study-GitHub 가 있습니다! • 네이버 블로그 • GitHub ..
객체 지향 원리 적용
·CS/OOP
우선 회원 도메인과 주문 도메인을 설계 및 구현해보자 1.1 회원 도메인 설계 회원 도메인 협력 관계 회원 클래스 다이어그램 회원 객체 다이어그램 1.2 회원 도메인 개발 Grade(enum) public enum Grade { BASIC, VIP } Member 엔티티 public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id..
[Java] String, Char 대소문자 확인 및 변환
·CS/JAVA
1. 대소문자 변환 문자열(String)인 경우 대문자로 변환: toUpperCaese() 소문자로 변환 : toLowerCase() 예시 String str = "abc" str = str.toUpperCase(); //"ABC" str = str.toLowerCase(); //"abc" 문자(Char)인 경우 대문자로 변환 : Character.toUpperCase(변환을 원하는 단어) 소문자로 변환: Character.toLowerCase(변환을 원하는 단어) 예시 Char c = "a" c = Character.toUpperCase(c); //"A" c = Character.toLowerCase(c); //"a" 2. 대소문자 확인 문자열(String)인 경우 - 대문자 또는 소문자로 변경 후 비..
minsu20
'분류 전체보기' 카테고리의 글 목록 (7 Page)