Skip to content

Latest commit

 

History

History
63 lines (27 loc) · 2.24 KB

File metadata and controls

63 lines (27 loc) · 2.24 KB

정리

표현, 응용, 도메인 영역에서 권한 검사를 할 수 있다.

권한 검사 자체는 복잡한 개념은 아니지만 시스템마다 권한의 복잡도가 다르다.

스프링 시큐리티 프레임워크는 유연하고 확장 가능한 구조를 가지고 있어 다양한 상황을 충족시킬 수 있다.

하지만 유연한 만큼 복잡하기 때문에 충분한 이해가 필요하다.

다음과 같은 영역에서 권한 검사를 수행할 수 있다.

  • 표현 영역
  • 응용 서비스
  • 도메인

표현 영역

사용자의 인증 여부에 대해 검사한다.

  • 이 URL을 처리하는 컨트롤러에 웹 요청을 전달하기 전에 인증 여부를 검사해서 인증된 사용자의 웹 요청만 컨트롤러에 전달한다.
  • 인증된 사용자가 아닐 경우 로그인 화면으로 리다이렉트시킨다.

서블릿 필터는 사용자의 인증 정보를 생성하고 인증 여부를 검사한다.

인증 여부뿐만 아니라 권한에 대해 URL별 권한 검사를 할 수 있다.

응용 서비스

URL만으로 접근 제어를 할 수 없는 경우 응용 서비스의 메서드 단위로 권한 검사를 수행해야 한다. AOP를 활용해 서비스 메서드에 대한 권한 검사를 할 수 있다.

도메인

개별 도메인 객체 단위로 권한 검사를 해야 하는 경우는 구현이 복잡하다.

응용 서비스의 메서드 수준에서 권한 검사를 할 수 없어 직접 권한 검사 로직을 구현해야 한다.

도메인 객체 수준의 권한 검사 로직은 도메인별로 다르기 때문에 프레임워크에 대한 높은 이해가 필요하다.

프레임워크에 대한 이해가 부족하다면 도메인에 맞는 권한 검사 기능을 직접 구현하는 것이 좋다.

느낀점

응용 서비스에서 메서드 단위로 권한 검사를 구현하는 경우는 드물었기 때문에 권한 검사는 주로 표현 영역, 도메인 영역에서 해왔다.

스프링 시큐리티에 대한 이해가 충분하지 않아 개별 도메인 객체 단위로 권한 검사 로직을 확장하지 않고 직접 구현했다.

스프링 시큐리티를 이용해 권한 검사 로직을 확장할 수 있는 방법을 찾아봐야겠다.