본문 바로가기

Backend18

Spring boot에서 권한 Scope 처리를 해보자! (AccessDecisionManager, AccessDecisionVoter) 이직하고 글 처음 올린다. 이직한 회사에서 적응한다고 (핑계..) ... 구현 내용 요구사항 ○ 유저를 생성할 때 각 유저별로 권한을 설정할 수가 있다. ○ 권한에는 메뉴별로 읽기 권한, 쓰기 권한 등 간단하게 CRUD 형태로 상세 권한을 설정할 수 있다 구현 ○ 각 API에 지정된 권한이 있다는 뜻이므로 DB에서 관리를 해야겠다고 생각했다. (stackoverflow에는 DB로 관리하는 것을 추천하지 않는다..) ○ jwt token에 권한 ID 값을 넣어 filter를 통해 권한 ID로 권한을 체크하는 로직을 만들어준다. ○ 권한이 없는 경우 403 forbidden을 내려준다. API 메뉴 기능 URI Method 유저관리 유저 리스트 출력 /user GET 유저관리 유저 상세 /user/{uid}.. 2022. 10. 30.
Spring boot에서 JWT 구현(3) 이전 글 2022.02.19 - [Backend/Spring] - Spring boot에서 JWT 구현(1) 2022.02.20 - [Backend/Spring] - Spring boot에서 JWT 구현(2) 바로 전 글에서 Access token을 발급하고 Refresh token을 Redis에 저장하는 과정까지 진행해보았습니다❗ 이번 포스팅에서는 Access token이 만료되었을 때 재발급하는 과정을 프론트엔드 코드와 같이 조금 살펴보겠습니다. Access Token 만료 @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) thr.. 2022. 2. 20.
Spring boot에서 JWT 구현(2) 2022.02.19 - [Backend/Spring] - Spring boot에서 JWT 구현(1) 이전 글 전 글에서 JWT에 대한 개념을 대충 정리를 했다면 이번에는 구현에 대해서 말해보겠습니다😃 JWT 로직 클라이언트에서 로그인을 합니다. 로그인 성공 시 Access token과 Refresh token을 만듭니다. 여기서 Access token은 만료시간을 30분으로 지정하고 Refresh token은 만료시간을 2주로 설정합니다. Refresh token은 Redis에 저장을 하고 클라이언트에게는 Access token을 보내줍니다. 로그인한 유저는 헤더에 Access token을 가지고 다니며 API 통신을 할 때 서버에서 만료된 토큰인지 체크를 합니다. 만료된 토큰일 경우 Access tok.. 2022. 2. 20.
Spring boot에서 JWT 구현(1) 사이드 프로젝트를 하며 로그인 부분을 JWT로 구현을 했습니다. 그런데요,, 백엔드 말고도 프론트엔드를 같이 구현하며 많은 고민을 하고 삽질을 하여 누군가에게는 이 글이 도움이 되기를 바라며,, 기록을 해보겠습니다🐥 JWT(Json Web Token)란? 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로, payload는 몇몇 클레임(claim) 표명(assert)을 처리하는 JSON을 보관한다. 예를 들어 서버는 '관리자로 로그인됨'이라는 클레임이 있는 토큰을 생성하여 이를 클라이언트에 제공할 수 있다. 그러면 클라이언트는 해당 토큰을 사용하여 관리자로 로그인됨을 증명한다. 토큰은 크기가 작고 URL 안전으로 설계되어 있으며 특히 웹 브라우저 통합 인증(SSO) 컨텍스트에 .. 2022. 2. 19.