본문 바로가기

스프링/security4

JWT의 동작원리 저번 시간에 JWT에 대해 알아보고 예약 도메인 프로젝트에 JWT를 적용시키기로 했다. 이제 JWT가 무엇인지 알았으니 JWT의 동작원리와 사용법을 알아보자.이 글에서는 마이그레이션 실습을 위해 일부로 현재 사용을 권장하지 않는 기술들을 포함하고 있다.Java11, SpringBoot 2.7.5, Spring Security 5.7.4 버전을 사용중임을 미리 알린다.또한 현재 학습을 위한 단계로 단일토큰 방식을 구현한다. 2024.09.11 - [스프링/security] - 스프링 시큐리티 JWT란 무엇일까? 왜 사용할까?JWT 인증 방식 시큐리티 동작 원리회원가입 : 회원가입 로직은 기존의 세션 방식과 JWT방식의 차이가 없다.로그인(인증) : 로그인 요청을 받은 후 세션 방식은 서버 세션이 유저 정보.. 2024. 9. 12.
스프링 시큐리티 JWT란 무엇일까? 왜 사용할까? 예약 도메인 프로젝트를 진행하면서 로그인 로직을 JWT 토큰을 사용해보자는 계획을 세웠다. 그러나 프로젝트를 진행하면서 많은 의문점이 생겼다.도대체 JWT를 왜 사용하는 것일까?  Json Web Token  JWT 는 Json Web Token의 약자이다. 개발 공부를 어느정도 진행하다 보면 Json과 Web은 지겹도록 들어보거나 사용해보았을 것이다.하지만 Token 은 Json과 Web보다는 조금 덜 익숙했다. 하지만 몇번 사용해 본 적이 있다. 그것은 바로 Git 이다. Git을 로컬에서 사용할때 인증 방식을 아이디와 비밀번호 방식에서 토큰 방식으로 변경되었다. 토큰 인증방식이 어떤 장점이 있길래? Token이란???Git에서 토큰 인증을 해본 경험이 있는 사람은 그래도 토큰이 인증방식에 사용되는거.. 2024. 9. 11.
메서드 권한 설정 예전에 user들의 권한에 대한 계층구조에 대해 설명한 적이 있다. 계층구조에 대해 설명할때에는 필터를 활용하여 권한을 설정하였지만 시큐리티에서는 메서드를 통한 권한 방법도 제공한다. 그리고 이번에는 소속의 권한까지 추가하여 설명해 보겠다. 예를들어 프론트엔드 팀의 매니저가 백엔드 팀의 유저를 관리하면 조금 이상하지 않을까? 백엔드 팀의 유저는 백엔드 팀의 매니저만 관리 할 수 있게 한번 공부해 보자 1. @PreAuthorize앞서 시큐리티에서는 메서드에서의 권한 설정을 할 수 있다고 했다. 그 방법중에 하나가 바로 @PreAuthorize 어노테이션을 사용하는것이다. 메서드에 @PreAuthorize 와 합께 표현식을 작성한다면 사용자가 메서드에 접근하기 전에 시큐리티가 표현식을 점검하는 것이다. @.. 2024. 8. 9.
시큐리티를 활용한 권한 계층구조 설정 네이버 카페를 가입해 본적이 있는 사람들은 처음 글을 쓸때 등업이 되지 않아 게시판에 글을 올리지 못한 경험이 있을 것이다. 씨앗 레벨은 인사글만 작성가능하고 새싹 레벨은 자유 게시글 나무 레벨은 질문게시글까지 작성할 수 있을때 나무 레벨은 인사글 자유게시글 모두 작성이 가능 하다. 이처럼 특정 url로 접근할 수 있는 role이 여러개일 때 계층 권한은 어떻게 설정하는지 알아보자 1-1. 페이지 권한시큐리티 필터체인을 보면 admin page, manage page, user page 에 권한을 두었다. 여기서 우리가 원하는 것은 admin은 manage, user 페이지에 접근 할 수 있어야 하고 manager는 user 페이지에 접근 할 수 있어야 한다.  1-2. RoleHierarchy스프링 시.. 2024. 8. 8.