[Spring] 스프링 시큐리티(Spring Security)

류넹·2024년 3월 6일
1

Spring

목록 보기
27/50

📍 Spring Security

  • 웹 애플리케이션에 대한 인증/인가 보안을 담당하는 프레임워크
    * 인증 : 누구? * 인가 : 권한에 따라 접근 가능/불가

- 인증(Authentication)

  • 사용자의 신원을 확인하는 과정
  • 해당 사용자가 본인이 맞는지 확인하는 과정

- 인가(Authorization)

  • 해당 사용자가 요청하는 자원을 실행할 수 있는 권한을 가지고 있는지 확인하는 과정
  • 인가과정은 항상 인증과정이 선행된다.
    (인증되지 않은 사용자는 사용자의 권한을 확인할 수 없기 때문에 인가과정을 처리할 수 없다.)



스프링 시큐리티 태그 라이브러리

- 의존성

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
</dependency>

- 종류

1. 권한태그 : <sec:authorize>

  • access 속성의 값을 판정해서 태그 내의 내용을 표현할지 여부를 결정한다. <if> 같은 역할
  • 예시)
  1. 익명 사용자일 때
    • isAnonymous()는 true로 판정된다.
<sec:authorize access="isAnonymous()">
		<a href="">로그인</a>
</sec:authorize>

  1. 인증된 사용자일 때
    • isAuthenticated()는 true로 판정된다.
<sec:authorize access="isAuthenticated()">
		<a href="">로그아웃</a>
</sec:authorize>

  1. 인증된 사용자가 권한을 보유하고 있을 때
    • hasRole('ROLE_ADMIN')는 인증된 사용자가 관리자 권한을 가지고 있을 때 true로 판정된다.
<sec:authorize access="hasRole('ROLE_ADMIN')">
		<a href="">사용자 관리</a>
      <a href="">상품 관리</a>
      <a href="">장바구니 관리</a>
      <a href="">주문 관리</a>
</sec:authorize>

  1. 인증된 사용자가 설정된 권한 중 하나의 권한을 보유하고 있을 때
    • hasAnyRole('ROLE_ADMIN', 'ROLE_MANAGER')은 인증된 사용자가 ADMIN 혹은 MANAGER 권한 중 하나를 가지고 있을 때 true로 판정된다.
<sec:authorize access="hasAnyRole('ROLE_ADMIN', 'ROLE_MANAGER')">
		
</sec:authorize>


2. 인증태그 : <sec:authentication>

  • 인증된 사용자가 정보를 가지고 있는 Authentication 객체에 대한 접근을 제공하는 태그
profile
학습용 커스터마이징 간단 개발자 사전

0개의 댓글