본문 바로가기

웹개발45

스프링 시큐리티에서 중요한 컴포넌트들 스프링 시큐리티를 적용하려고 할때 먼저 알면 좋은 컴포넌트들을 알아보자 DelegatingFilterProxy, FilterChainProxy, SecurityFilterChain 스프링 시큐리티는 필터를 통해서 인증과 권한을 체크한다. 여기서 필터는 서블릿컨테이너에서 관리하는 서블릿 필터와 스프링컨테이너에서 관리하는 필터 두가지가 있다. 서블릿필터에서는 스프링의 빈을 사용하지 못하기 때문에 스프링은 서블릿필터에서 스프링 빈을 사용할수 있는 DelegatingFilterProxy를 서블릿 필터로 등록을 해둔다. DelegationFilterProxy는 다시 FilterChainProxy라는 스프링 시큐리티에서 사용하는 필터에 위임을 하고 이 필터에는 filterChain이라는 변수가 있는데 이변수는 Se.. 2021. 4. 4.
스프링부트 로그레벨 설정 참조 : 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.
리액트 서버 배포시 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.