본문 바로가기
반응형

spring security5

Spring security (접근권한 변경) 만약 프로젝트가 실행되고있는 중간에 접근권한을 변경하려면 어떻게 해야할까? 많은 방식을 찾아봤지만 딱히 원하는 방법은 없었다.. spring 버전 2.7미만이었을 때는 이 블로그에서와 같이 Checker를 만들어서 적용하는 방법이 가능했는데, 이 방법은 사용자들이 api에 접근을 할 때마다 DB에서 관련 정보를 불러와 체크해야하는 단점이 있었고, 2.7 이상에서는 해당 방법이 적용되지 않는것 같았다. (내가 멍청해서 안된걸지도..^^) 어찌어찌 머리를 굴려서 생각해보니, 아예 필터쪽에서 관련 데이터들을 바꿔주면 되는거 아닌가? 라는 생각이 들었고, 몇번의 삽질끝에 해당 기능을 만들 수 있었다. 본 포스팅의 코드는 여기서 확인 가능합니다😉 기본적인 Security 설정은 이 포스팅을 기초로 하였고, Sec.. 2022. 9. 6.
Spring Security 설정 (Hierarchy) 보통의 경우라면, ADMIN권한을 가진 회원은 전체 url에 접근할 수 있고, USER권한을 가진 회원이라면 /admin url에는 접근하지 못한다. 권한이 몇개가 되었든 권한에 서열이 존재한다면 Hierarchy를 이용해 간단하게 권한을 설정할 수 있다. 본 포스팅의 코드는 여기서 확인 가능합니다😉 0. 시작 전 테스트를 위해 data.sql 파일에 아래와 같은 sql을 입력해주었다. insert into public.authority (authority_id, role) values (1, 'ROLE_ADMIN'), (2, 'ROLE_USER'), (3, 'ROLE_COMPANY'); insert into public.users (user_id, name, password, authority_id) .. 2022. 9. 2.
Spring Security 설정 (JWT 2) 로그인까지 성공했으니, 로그인한 사용자의 토큰으로 권한별 api를 호출해야한다. 나는 USER, ADMIN 권한 2개를 만들었고, 각 권한은 /user 와 /admin 주소로 들어갈 수 있도록 설정하였다. 그 외의 주소는 전부 접속 가능하도록 만들었다. 보통 설계에서는 ADMIN 권한으로 /user까지 접속 가능한게 대부분이다. 이부분에 관련해서는 다음 포스팅에 작성하도록 하겠다! 본 포스팅의 코드는 여기서 확인 가능합니다😉 0. 토큰을 포함하여 api 호출하기 프론트엔드에서의 호출이나 swagger, postman을 사용하여 api를 호출할 때, 헤더에 Authorization을 넣어서 api 요청을 하면 된다. 이 때, TokenProvider에서 설정한 TokenType을 같이 넣어주어야한다. sw.. 2022. 8. 31.
Spring Security 설정 (JWT 1) 시큐리티의 기본적인 설정이 끝난 후, JWT 설정을 해주었다. 로그인 기능이 있어야 하므로, 간단한 유저테이블과 권한 테이블을 만든 후 관련 설정을 시작하였다. 이 포스팅에서는 로그인 api를 요청할 경우, 토큰을 생성해서 발급하는 과정까지 담아보았다. 본 포스팅의 코드는 여기서 확인 가능합니다😉 1. 기본설정 1. build.gradle spring boot 버전이 올라가면서, 마찬가지로 jwt에 관한 설정도 조금씩 변경되었다. implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2' run.. 2022. 8. 31.
Spring Security 설정 (기본) 시큐리티 설정은 맨날 해도 맨날 모르겠는 설정 중 하나인 것 같다. 포스팅을 하면서 다시 기본을 익히는 시간을 갖도록 해야겠다. 0. 참고 및 코드 spring.io 블로그 해당 코드는 여기에서 확인 가능합니다. 😉 1. 환경 JAVA 8 Spring Boot 2.7.3 Spring Security 2.7.3 2. 기본 설정 1. build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' 2. SecurityConfig spring security 5.7 이상 버전부터 WebSecurityConfigurerAdapter가 Deprecated되었다. spring boot 2.7.3은 spring-security 5... 2022. 8. 31.
반응형