본문 바로가기

[Spring] vault 개념과 활용 Vault란?Vault는 HashiCorp에 의해서 개발된 크로스플랫폼 패스워드 및 인증 관리 시스템이다. 공개되면 안되는 비밀번호, API 키, 토큰 등을 저장하고 관리한다.https://www.vaultproject.io/ 에서 개발했다.사용 이유사용자명, 엔드포인트, 비밀번호, 포트 등 중요한 정보를 형상관리툴에 노출시키지 않게 하기위하여 사용한다.Spring 과 Vaultspring cloud 에서 공식적으로 vault 연결해주는 dependency를 제공해준다.https://spring.io/guides/gs/vault-config/Vault설정org.springframework.cloud:spring-cloud-starter-vault-config 가 있고springframework-vault.. 더보기
[jwt] refreshToken을 db에서 유지하는 이유 JWT 인증은 Stateless 원칙을 기본으로한 인증방식 인증서버에서 1회만 발급받으면 해당 토큰이 가진 만료시간이나, 속성들을 사용하여 어플리케이션이 인증서버의 도움없이 인증 및 인가에 사용할 수 있는 방식  JWT로 인증을 받을경우 해당 토큰은 폐기가 불가능 보안문제를 해결하기 위해 다시 Stateful한 방식인 세션과 같이 Token을 DB에 저장하고 로그아웃이나 기타 정책에 의해 Token을 DB에서 삭제하면 유효한 JWT토큰을 가지고 있더라도 인증실패 처리를 할 수 있음  1시간 만료되서 accessToken을 재발급 받으려고 다시 로그인 하면,서버입장에서는database에서 SELECT Member table 도 해야하고,찾은 Member를 UserDetails로 변환해 검증도 해야하고,검증.. 더보기
[Spring] 필터(Filter) vs 인터셉터(Interceptor) 차이 1. 필터(Filter)[ 필터(Filter)란? ]필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것이다. (디스패처 서블릿에 대해 잘 모른다면 여기를 참고해주세요!)즉, 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너(서블릿 컨테이너)에 의해 관리가 되는 것이고(스프링 빈으로 등록은 된다), 디스패처 서블릿 전/후에 처리하는 것이다. 이러한 과정을 그림으로 표현하면 다음과 같다.     [ 필터(Filter)의 메소드 ]필터를 추가.. 더보기