스터디-Spring

[스프링 시큐리티] 스프링 시큐리티 연동

일태우 2022. 1. 7. 11:46

스프링 시큐리티 의존성 설정

pom.xml

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

스프링 시큐리티가 제공하는 자동 설정이 적용된다.

 

적용 전의 문제

  1. 인증할 방법이 없었다
  2. 현재 사용자가 누군지 알 수가 없다

 

자동 설정( 스프링 시큐리티 의존성을 추가하게 되면)

  1. 모든 요청은 인증을 필요로 한다 - 위와 같은 로그인 폼으로 리다이렉트
  2. 기본 유저가 생성된다
    • username: user
    • password: 로그 확인

@GetMapping("/")
public String index(Model model, Principal principal) {
    if (principal == null) {
        model.addAttribute("message", "Hello Spring Security");
    } else {
        model.addAttribute("message", "Hello, " + principal.getName());
    }
    return "index";
}

적용 후

  1. 인증을 할 수 있다
  2. 현재 사용자 정보를 알 수 있다.
    • 적용 전엔 Principal == null이어서 Hello Spring Security만 노출되었지만 이제는 로그인 후에 Hello, user 가 노출됨을 알 수 있다

현재 문제점

  1. 유저가 단 하나 user만 존재한다
  2. 패스워드가 어플리케이션 재시작시 변경된다
  3. 패스워드가 로그에 출력되는건 보안문제가 있다 (로그엔 보안관련 정보는 출력X)