Spring 기반 애플리케이션의 보안(인증과 인가 등)을 담당하는 스프링 하위 프레임워크
→ 모든 요청에 인증 필요
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
스프링 시큐리티 의존성을 주입하면 기존의 thymeleaf url에 접근하면 사진처럼 스프링 시큐리티에서 제공하는 로그인 페이지로 이동함.
기본적으로 제공하는 아이디는 user이고 비밀번호는 애플리케이션 실행할 때마다 콘솔창에 출력해준다.
로그인을 성공하면 원하던 페이지를 보여준다.
localhost/logout
을 입력하면 됨. 로그아웃을 하고 서버에 요청을 하면 다시 인증을 요구한다.package com.shop.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
}
// 비밀번호 암호화 기법으로 BCryptPasswordEncoder Bean 객체 생성
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}