미짱
237
2021-01-21 20:52:30 작성 2021-01-22 10:08:50 수정됨
3
173

스프링 시규리티 권한 질문입니다.


안녕하세요.


스프링 시큐리티로 ROLE을 기준으로 제어한다면 어노테이션으로 하거나 WebSecurityConfigurerAdapter 와 같은 곳에서 제한을 할수 있는것으로 알고 있습니다.

아니면 스프링 필터에서 걸것 같기도 한데요.

다만 알고 있는것이 ROLE 명만 가지고 접근권한을 제어하는데

예를 들어 Controller를 하나의 애플리케이션이라고 생각하고 메소드들을 기능이라고 생각했을데 각각에 대한 제어는 어떻게 하는가요?

필터를 상속받아 인증을 검사하고 ROLE을 검사하던지 아니면 바로 요청한 URL 을 구해와 DB에 정보와 비교해서 관리 해야 할듯한데 ....

구현해보신 계시면 관련 코드 혹은 아이디어 부탁드려요..




0
  • 답변 3

  • 한국은역시자바
    568
    2021-01-21 21:04:28

    url 접근권한 순서대로 적용됩니다.

    /api/**    hasAnyRole('ROLE_USER','ROLE_ADMIN')

    /api/list  hasAnyRole(''ROLE_ADMIN')

    url 접근순서대로 적용되며 이렇게 되면 ROLE_USER는 /api/list에 접근이 안됩니다.

  • 미짱
    237
    2021-01-22 09:02:19

    위에 설명드렸듯이 list권한과 쓰기 권한과 수정권한과 삭제권환과 답글권환과 등등등 을 구분도 가능한지요?

    적용하기 어려울것 같은데요.

  • 한국은역시자바
    568
    2021-01-22 09:40:34

    /api/**로 모든권한을 주신다음에

    각 권한별로 어떤 API를 요청할건지를 제어하시면 됩니다.

    리스트권한, 쓰기권한, 수정권한, 삭제권한, 답글권한 등 너무 복잡성 있는 정책이라면

    변경이 필요해보일것같네요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.