Spring Security

Angelo·2021년 4월 15일
0

SPRING

목록 보기
32/34

✔ Spring Security

보안(인증, 권한)의 기능이 있는 스프링 프레임워크.

애플리케이션 보안에는 이 인증과 권한이 있는데
인증은 애플리케이션의 작업을 실행할 수 있는 사용자라고 주장하는것을 뜻하며
권한은 인증된 사용자가 작업을 실행할 수 있도록 허락되어 있는지 결정하는것을 뜻한다.

Spring Security는 Filter 기반으로 인증과 권한에 대한 기능을 처리하기 때문에 MVC와 분리되어 관리 및 동작한다.

권한 부여에는 웹 요청 권한과 메소드 호출 및 도메인 인스턴스 접근 권한 부여 등이 있다.

보안과 관련해서 많은 옵션을 자체 제공해주기 때문에 따로 보안관련 로직을 만들지 않아도 되는 장점이 있다.

기본적으로 세션과 쿠키방식으로 인증한다.

Authentication

인증 정보를 뜻하는 인터페이스

메서드 :

  • Object getPrincipal();
    사용자 본인을 뜻하며 어떤 객체든 담을 수 있는데 주로 사용자 ID를 담는다.

  • Object getCredentials();
    자격을 뜻하며 자격증명에 사용된다. 주로 비밀번호를 담는다.

  • Object getDetails();
    인증 절차에서 사용자의 부가적 정보, 상세 정보를 저장한다.

  • Collection<? extends GrantedAuthority> getAuthorities();
    사용자권한목록을 뜻하며 Spring Security에서 권한을 체크할 때 사용된다.
    이때 GrantedAuthority 클래스는 사용자의 권한 범위를 보여주기 위한 추상화된 클래스이다.

  • boolean isAuthenticated();
    인증여부를 뜻한다.

SecurityContextHolder

SecurityContext에는 접근자(Authentication)와 인증정보(GrantedAuthority)가 담겨 사용된다.

로그인한 사용자 정보를 가지고 있는 holder.

@AuthenticationPrincipal 어노테이션을 사용,

SecurityContextHolder.getContext().getAuthentication()

위 소스로 사용자 정보를 가져올 수 있다.

profile
나만의 학습 노트

0개의 댓글