공부하다죽어라
article thumbnail
Spring OAuth 2.0 구현 [1]
개발/Security 2022. 12. 24. 22:04

OAuth 2.0 (Open Authorization 2.0, OAuth2), 인증을 위한 개방형 표준 프로토콜 OAuth 프로토콜은 트위터의 웹 개발자들이 오픈 API 방식의 보안을 생각해 만든 표준 사용자 인증 프로토콜이다. 큰 특징은 다음과 같다. 인증 ( Authentication, 이 사용자가 누구인가 ? ) 권한 ( Authorization, 접근한 사용자가 무엇을 할 수 있는가 ? ) 오픈 API로 접근하는 사용자가 인증받은 사용자가 맞는지, 그리고 그 사용자는 어떠한 권한이 있는지를 확인할 수 있도록 하는 인증 프로토콜이 OAuth 2.0 이다. 왜 OAuth 2.0 인가? OAuth 탄생 전 많은 서비스 기업은 인증 방식에 있어서 단순하게 아이디와 패스워드를 사용했는데 이는 보안상 매우 ..

article thumbnail
Docker Failed to load any of the given libraries: [netty-tcnative-linux-x86_64,netty-tcnative]
개발/에러 해결 2021. 8. 13. 13:05

Jenkins를 통해 자동배포를 완료하고 빌드마저 정상적으로 작동되는 상황에서 Firestore와 관련한 서비스가 작동하지 않았던 이슈가 있었습니다. 관련 로그를 보면 Failed to load any of the given libraries: [netty-tcnative-linux-x86_64,netty-tcnative] 라는 문구가 뜨네요 - 해결방법 도커에서 이미지파일을 만들때 FROM openjdk:8-jdk-alpine ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} curation.jar ENTRYPOINT ["java","-jar","/curation.jar"] 위 파일을 FROM koosiedemoer/netty-tcnative-alpine ARG JAR_FIL..

article thumbnail
[Spring] Properties 파일 분리
개발/Spring 2021. 8. 2. 13:08

실제 운영서버와 설정파일을 다르게 하기위해 분리작업을 진행합니다. 다음과 같이 나눴습니다. application-{profiles}.yml 입니다. local = 로컬 작업 환경 prod = 운영 환경 applicaiton.yml server: name: curation-service port: 9000 servlet: context-path: /curation --- spring: profiles: active: prod # 운영 --- spring: profiles: active: local # 개발 --- 1. 그냥 실행시켰을 경우 자동으로 local로 잡아줍니다. 2. 설정 파일 동적 변경 java -jar Dspring.profiles.active=prod jarfile.jar 잘 안보이는데 p..

article thumbnail
Unknown lifecycle phase ".run.profiles=local". 오류 해결
개발/에러 해결 2021. 7. 23. 15:06

해결방법 mvn spring-boot:run -D"spring-boot.run.profiles"=local - stackoverflow https://stackoverflow.com/questions/60758633/unable-to-set-command-line-profile-in-spring-boot-2-2

article thumbnail
[Spring] CORS 설정
개발/Spring 2021. 7. 14. 11:14

CORS CORS ( Cross-origin resource sharing ) 직역하면 교차 출처 리소스 공유 입니다. 말 그대로 서로 다른 도메인으로부터 자원을 공유하는 것입니다. 그런데 서버측에서 아무런 설정을 하지 않게되면 CORS 이슈가 발생합니다. 특정한 도메인 간(cross-domain) 요청, 특히 Ajax 요청은 동일-출처 보안 정책에 의해 기본적으로 금지됩니다. 다음은 CORS의 동작원리입니다. 위 문제를 해결하기 위해 서버측에서는 교차 출처 요청을 허용해줘야 하는데 Spring-boot 환경에서 CORS를 허용해주는 코드를 작성하겠습니다. @Configuration public class WebConfig implements WebMvcConfigurer { @Override publi..

article thumbnail
Spring boot CORS Response Header값이 넘어오지 않는 이슈
개발/에러 해결 2021. 7. 14. 00:13

스프링 시큐리티를 이용한 로그인 구현 중 Vue.JS에서 JWT로 발행된 토큰값을 헤더에 넣어서 보냈는데 어찌된 영문인지 포스트맨에서는 정상적으로 출력되지만 CORS 환경에서는 헤더 값이 제대로 반환되지 않는 이슈를 겪었습니다. 결론은 클라이언트 잘못이 아니고 서버측에서 CORS에 대해 exposedHeaders를 따로 설정해줘야 했던 문제였습니다. @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:8080") .e..

[Kotlin] 코틀린에서 Type 다루기
개발/Kotlin 2021. 7. 2. 16:50

기본 타입 # JAVA int num1 = 3; long num2 = 4L; num1 + num2 // 자바에서는 가능 # Kotlin val num1: Int = 1 val num2: Long = 2 num1 + num2 // 컴파일 에러 발생 [자바] 기본 타입간의 변환은 암시적으로 이루어질 수 있다. [코틀린] 기본 타입간의 변환은 명시적으로 이루어져야 한다. 타입 캐스팅 # JAVA public static void printAgeIfPerson(Object obj) { if(obj instanceof Person) { Person person = (Person) obj; System.out.println(person.getAge()); } } # Kotlin fun printAgeIfPerson..