JAVA/SPRING

SPRING SECURITY - 기본 설정

으악꿈 2021. 2. 18. 10:23
728x90

1. Spring Security 란?

  • Spring Security는 Spring 기반의 어플리케이션의 보안(인증, 인가 등)을 담당하는 스프링 하위 프레임워크다.
  • '인증'과 '인가'에 대한 부분을 Filter로 등록하여 처리한다.
  • 보안과 관련하여 여러가지 옵션을 제공해주기 때문에 개발자 입장에서는 보안 로직을 작성하지 않아도 된다는 장점이 있다.

2. pom.xml 설정

 

 

3. web.xml 설정

spring-security 설정 파일을 읽어들일 수 있도록 설정
모든 url에 대한 spring-security 필터 등록

 

 

4. web-security 설정

login.do 페이지는 누구나 접근 가능하고 그외의 모든 페이지는 'ROLE_USER' 권한을 가진 사용자만 접근 가능

 

1) auto-config : 스프링에서 제공하는 기본 로그인페이지 / http기본인증 / 로그아웃 기능 등 사용 여부

 

2) use-expressions : SpEL(Spring Expression Language) 사용여부 - 추후 jsp에서 spring-security 태그 사용과 연관있음.

 

3) create-session : never로 설정한 경우 권한이 필요한 페이지로 접근시 로그인 페이지로 redirect되고, 로그인 하기 전까지 세션아이디가 생성되지 않음.

 

4) entry-point-ref : 인증되지 않은 사용자가 보호된 리소스에 접근했을 때, 스프링이 지원하는 인증 방식이 아닌 다른 방식을 사용하는 경우 Entry Point를 설정할 수 있음.

  • 인증되지 않은 사용자가 보호된 소스로 접근했을 때, 로그인 페이지로 이동 or 분기처리

5) denied-handler 설정 

  • <access-denied-handler ref="BeanName"/> 형식으로 등록
  • denied-handler는 접근 권한이 없는 소스(인가)에 접근하는 경우에 대한 처리가 가능하다.
  • BeanName은 <beans:bean id="id" class="ClassPath"/> 형식으로 설정

 

※ 인증, 인가의 차이 ?

1. 인증 : 유저가 누구인지 확인하는 절차 ( Authentication )

  • 로그인, 회원가입 등

2. 인가 : 유저에 대한 권한을 허락하는 것 ( Authorization )

  •  - 유저가 요청하는 request를 실행할 수 있는 권한이 있는 유저인가를 확인하는 절차
728x90

'JAVA > SPRING' 카테고리의 다른 글

[JAVA] spring MVC @ModelAttribute 사용법  (0) 2021.03.26
spring form태그 readonly  (0) 2021.03.15
스프링(SPRING) 이란?  (0) 2021.02.18