0. 개요

스프링 시

Spring Security의 권한을 이용하면 다양한 것을 쉽게 사용이 가능하다.
예를 들면 Admin 사이트에 권한이 없으면 접근하지 못하는 경우 등이 그렇다.

1. Spring Security의 Login Config 셋팅

자세한 설명은 로그인에 관해서 적어놓은 글에 적어두었습니다.
위의 링크는 테스트를 위하여 설정하였습니다.

2. Enum 셋팅

테스틀 위하여 3가지 단계를 설정하였습니다.
또한 Spring Security의 경우 ROLE이라는 접두사가 붙어야 하기 때문에 Get메소에
`return "ROLE
" + name();` 와 같이 설정하였습니다.

ROLE_을 생략하고 싶다면

위와 같이 hasAnyAuthority 를 사용하면 되긴한다.
하지만 스프링 시큐리티의 기본 로직은 ROLE_ 을 사용하기 때문에 권장하지는 않는 방법인 듯 하다.

3. UserDetails 셋팅

이후 위와 같은 방식으로 사용자의 등급을 넣어주어야 한다.

로그인을 하고 디버깅을 찍어보면 아래와 같이 정보들이 잘 들어가는 것을 볼 수 있다.

4-0 init

2개의 계정을 준비했고

2개의 사이트를 준비하였다.

4-1 USER등급의 사이트 접속

우선 유저로 접속을 하면

user 사이트에는 접속이 잘 되나,

admin 사이트에는 접속이 안되는 것을 볼 수 있다.

4-2 ADMIN 등급의 사이트 접속

admin의 경우는 user사이트에도 접속이 되고

admin 사이트에도 접속이 잘 되는것을 볼 수 있다.

5. 결론

위와 같이 스프링 시큐리티의 권한을 이용하면 쉽게 사이트 별 접속 권한을 설정해 줄 수 있고
손 쉽게 코딩을 진행할 수 있다.
원래라면 인터셉터나 필터를 통해 우리가 구현해주어야 하는 부분을 쉽게 구현할 수 있다는 장점이 있다.
단점으로는 구현하는 것이 조금 까다롭고, UserDetails 을 필수로 구현을 하다 보니 개개인의 코딩 스타일에 맞지 않는 경우도 있을 수 있다는 생각이 든다.
하지만 편리하고 강력한 기능인 것을 확실하니, 알고 있다면 도움이 많이 될 것이라고 생각했다.

[[고수분들의 많은 조언 부탁드립니다.]]

profile
신입 개발자!@#$%^&*(

0개의 댓글