본문 바로가기

전체 글92

스프링 시큐리티 thymeleaf에서 sec:authentication이 안될때 build.gradle에 compile('org.springframework.boot:spring-boot-starter-thymeleaf') 추가한다음 springsecurity를 사용할수 있게 extra도 추가해야한다. // https://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-springsecurity5 implementation group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity5', version: '3.0.4.RELEASE' 2021. 4. 3.
스프링부트 로그레벨 설정 참조 : docs.spring.io/spring-boot/docs/2.4.4/reference/htmlsingle/#boot-features-logging Spring Boot Reference Documentation This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe docs.spring.io 로그 .. 2021. 3. 30.
Java에서 JSON Web Token 생성하고 검증하기 이제 대충 JWT에서 알아봤으니 token 생성하고 생성된 토큰의 claim을 알아보자. 내용은 다음 url을 참조하였다. 참조: stormpath.com/blog/jwt-java-create-verify How to Create and verify JWTs in Java Sample code that shows how a JWT token can be both created and verifed in Java using the JSON Web Token for Java library stormpath.com 먼저 token을 생성하는 코드다 기존소스가 버전이 올라가면서 deprecated된 메서드들이 있어 조금 수정하였다. public class JwtGenerator { String apikey = .. 2021. 3. 25.
Java에서 JJWT(Java JSON Web Token)를 이용한 JWT(JSON Web Token) 사용방법 Java에서 JJWT를 이용한 JSON Web Token 사용방법을 알아본다. 아래의 내용은 다음 링크를 참조하여 사용방법을 필요한 부분만 참조하여 작성을 하였다. github.com/jwtk/jjwt jwtk/jjwt Java JWT: JSON Web Token for Java and Android. Contribute to jwtk/jjwt development by creating an account on GitHub. github.com 1. JWS 생성 (1) JwtBuilder객체를 생성하고 Jwts.builder() 메서드를 이용한다. (2) header 파라메터와 claims를 추가하기위해 JwtBuilder 메서드를 호출한다. (3) JWT를 서명하기위해 SecretKey나 Private.. 2021. 3. 24.
JWT(JSON Web Token) 참조: auth0.com/learn/json-web-tokens/?_ga=2.110734850.648172899.1616396953-1758314723.1615595517 Get Started with JSON Web Tokens - Auth0 Get Started with JSON Web Tokens in Auth0 auth0.com 위 내용을 참조하여 작성함 (거의 번역기로 번역함) 1. JWT는 무엇인가? JWS(JSON Web Token)은 JSON객체를 이용해서 당사자간에 안전한 정보전달을 위한 컴팩트 하고 독립적인 방법을 정의하는 개방된 표준이다. 이정보는 디지탈 서명이 되어 있으므로 검증되었고 신뢰할수 있다. JWT는 HMAC 알고리즘 또는 RSA를 이용한 공개/비밀키 쌍을 이용하여 서명 할.. 2021. 3. 22.
ResponseEntity에 header (httpOnly, secure, cookie ) 세팅하고 json 응답 리턴하기 jwt 구현중에 refreshToken은 httpOnly쿠키로 셋팅하고 accessToken은 json으로 응답을 리턴하는 코드 @RequestMapping(value = "/api/v1/authenticate", method = RequestMethod.POST) public ResponseEntity createAuthenticationToken(@RequestBody JwtRequest authenticationRequest, HttpServletResponse response) throws Exception{ authenticate(authenticationRequest.getUsername(),authenticationRequest.getPassword()); final UserDetails u.. 2021. 3. 18.
Amazon EC2용 Compute Savings Plans aws t2.micro를 서버 하나를 이용하는데 이번달 요금이 $14정도 나올 예정이라 비용절감하는 방법을 찾다가 Compute savings Plans라는게 있어서 한번 이용해본다. 미리 시간당 사용금액을 약정하는거라는데 $0.006으로 1년 약정하니 $52.56 이나온다. 다음달에 얼마나 절약이 되는지 한번 확인해봐야 될거 같다. 2021. 3. 18.
리액트 error 핸들링 오늘은 리액트에 오류가 발생했을때 어떻게 처리할 지 한번 알아보자 여기서 오류는 api서버에서 받은 오류 메세지 일수도 있고, 리액트에서 캐치한 오류일수도 있다. 처리방식을 간단히 설명하면 오류 발생시 오류발생여부를 체크하여 오류발생여부가 true이면 정의한 에러 컴포넌트에 에러정보를 셋팅해서 보내주면 에러 컴포넌트에서는 모달창으로 오류발생여부를 보여준다. 여기서는 함수형 컴포넌트에서 처리하는 방식이다. 클래스형 함수에서는 ErrorBoundary를 사용해서 componentDidCatch and getDerivedStateFromError 를 이용한 에러 처리방식이 있다. 하지만 hook에서는 아직 제공하지 않고 있다고 한다. ko.reactjs.org/docs/error-boundaries.html .. 2021. 3. 18.
스프링부트 profile설정(front 및 api 서버 url 설정하기) 로컬 개발시 cors 설정을 localhost:3000으로 해놓았다가 운영에 적용하면 당연히 cors 오류가 난다. 그래서 url을 로컬 개발과 운영적용시에 나누어서 관리할 필요가 있다. 설정파일을 통해서 한번 적용해보자 먼저 application.yml 파일을 1. application.yml 파일은 로컬개발과 운영으로 분리 2. application.yml 파일에 host url 설정 3. cors 설정 4. production profile 적용 실행 1. application.yml 파일은 로컬개발과 운영으로 분리 spring: profiles: active: local --- spring: profiles: production 2. application.yml 파일에 host url 설정 spr.. 2021. 3. 18.
springboot option 403 cors 서버에 적용중 option 403 오류로 api서버 호출이 안되는 현상 발생 @Bean public WebMvcConfigurer corsConfigurer(){ return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:3000") .allowedOrigins("https://www.domain.net"); } }; } allowedOrigins에 도메인 추가해주어야함 2021. 3. 17.
리액트 서버 배포시 url 환경 설정하기(.env파일) 로컬에서 개발을 하다가 서버에 배포시에는 url을 도메인에 맞게 설정을 해주어야 한다. 로컬에서 개발할때는 localhost:3000, localhost:8000으로 서버에 배포시에는 url을 api서버, 리액트서버 도메인을 직접 셋팅해주어야 한다. 이때 creact-react-app으로 프로젝트를 생성하면 .env파일을 사용하여 설정을 할수있다. 로컬 개발시에는 .env.local, 서버 배포시에는 .env.production을 이용하게끔 하는 방법이다. 먼저 package.json 파일이 있는 루트 디렉토리에 .env.local 파일과, .env.production파일을 만든다. .env.local NODE_PATH=src/ REACT_APP_API_ROOT="http://localhost:8080".. 2021. 3. 17.
http로 접속시 https로 redirect하기 > cd /etc/nginx/site-available > vi default server_name _; 아래에 다음과 같이 수정함 server_name _; if ($http_x_forwarded_proto = 'http'){ return 301 https://$host$request_uri; } > sudo serveice nginx restart nginx를 재시작하고 http로 접속해서 https로 리다이렉트 되는지 확인한다. 참조: aws.amazon.com/ko/premiumsupport/knowledge-center/redirect-http-https-elb/ ELB를 사용하여 HTTPS로 HTTP 트래픽 리디렉션 Classic Load Balancer에서 HTTP와 HTTPS 리스너를 사용.. 2021. 3. 17.
aws 로드밸랜서 등록후 nginx 503 Service Temporarily Unavailable 발생시 aws 로드밸랜서 등록후 나오는 503에러 해결방법 로드밸랜서의 대상그룹에 등록된 대상이 없을때 나는 오류 대상그룹에서 사용할 ec2 인스턴스를 등록한다. 참조: docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-503-issues Application Load Balancer 문제 해결 - Elastic Load Balancing 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com 2021. 3. 17.
AWS ACM, 로드밸랜서, Route53을 이용한 https 적용하기 aws https를 적용하는 방법을 알아보자 여기서는 aws에서 제공하는 Route53과 ACM에서 제공하는 인증서를 사용해서 적용하는 방법이다. 그리고 도메인은 이미 생성이 되어 있다고 가정한다. 다음순서로 진행을 한다. 1. [ACM] Certificate Manager메뉴를 클릭한다. 2. [ACM] 인증서 프로비져닝 시작하기를 클릭한다. 3. [ACM] 공인인증서 요청이 선택되어 있고 인증서요청을 클릭한다. 4. [ACM] 도메인이름을 추가한다. 5. [ACM] 검증방법을 선택한다. DNS검증상태로 두로 다음을 클릭한다. 6. [ACM] 태그를 추가한다 인증서에 맞게 값을 입력한다. 입력안해도 별문제는 없다. 7. [ACM] 정보를 확인하고 확인요청을 클릭한다. 8. [ACM] 검증 보류상태에서 .. 2021. 3. 17.
우분투 jdk11설치 우분투에 open jdk11를 설치해보자 1. jdk 설치명령어 실행 2. 설치 확인 1. jdk 설치명령어 실행 > sudo add-apt-repository ppa:openjdk-r/ppa > sudo apt-get update > sudo apt install openjdk-11-jdk 2. 설치 확인 > sudo java -version openjdk version "11.0.10" 2021-01-19 OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.18.04) OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.18.04, mixed mode, sharing) 2021. 3. 17.