솔적솔적

Spring Boot Security - 시큐리티 권한 처리 본문

Back-end/Spring Boot Security

Spring Boot Security - 시큐리티 권한 처리

카드값줘체리 2022. 2. 7. 22:32

권한 처리를 하기 전 

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 강의