Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JWT
- 수제비
- 정보처리기사
- useState
- JavaScript
- spring
- It
- 백엔드개발자
- 타입스크립트
- React
- security
- TypeScript
- spring boot security
- 큐넷
- Authentication
- 리액트
- frontend
- JS
- spring boot
- 백엔드
- TS
- 정보처리기사 실기
- VUE
- 프론트엔드
- Front-End
- Node.js
- 자바스크립트
- Redux
- 웹개발자
- 스프링부트
Archives
- Today
- Total
솔적솔적
Spring Boot Security - 시큐리티 권한 처리 본문
권한 처리를 하기 전
admin, manager 회원가입을 한다.

DB에 확인하고 싶다면
SELECT * FROM USER;
권한 세팅
update user set role = 'ROLE_MANAGER' where id=2;
update user set role = 'ROLE_ADMIN' where id=3;
user테이블에서 확인

SecurityConfig안에 추가로 입력할 코드
@EnableGlobalMethodSecurity(securedEnabled=true)
secured 어노테이션 활성화인데, 이 코드를 추가 후
IndexController.java 파일에
@Secured("ROLE_ADMIN")
@GetMapping("info")
public @ResponseBody String info() {
return "개인정보";
}
@Secured라는 어노테이션을 미리 붙이면 경로에 info를 입력해도 안들어가지게 설정 이제 admin만 이 info페이지에 들어갈 수 있는 것

만약 다른 계정으로 info에 접근한다면

또한 @PrePostEnabled가 있는데, 작성법은
SecurityConfig.java
@EnableGlobalMethodSecurity(securedEnabled=true, prePostEnabled = true)
@PreAuthorize("hasRole('ROLE_MANAGER) or hasRole('ROLE_ADMIN')") → 데이터가 실행되기 직전에 실행된다.
@PreAuthorize("hasRole('ROLE_MANAGER') or hasRole('ROLE_ADMIN')")
@GetMapping("/data")
public @ResponseBody String data() {
return "데이터정보";
}
여러개를 하려할 경우 hasRole넣어서 작성
그럼 MANAGER 권한과 ADMIN 권한만 있는 사람들이 data 경로로 들어갈 수 있다.
admin 계정으로 들어갈 경우

권한 없는 sol2로 들어갈 경우

[참고] 인프런 - 스프링부트 시큐리티 & JWT 강의
'Back-end > Spring Boot Security' 카테고리의 다른 글
| Spring Boot Security - Authentication 객체가 가질 수 있는 2가지 타입 (0) | 2022.02.09 |
|---|---|
| Spring Boot Security - 구글 로그인,구글 회원 프로필 정보 받기 (0) | 2022.02.08 |
| Spring Boot Security - 시큐리티 회원가입, 로그인 (0) | 2022.02.07 |
| Spring Boot Security - 환경설정 & 시큐리티 설정 (0) | 2022.02.07 |
| Spring Boot Security - 인증과 인가 그리고 JWT에 대해서 (0) | 2022.02.07 |