Spring Security

JinKyung·2023년 4월 21일
0

SpringBoot 쇼핑몰

목록 보기
11/12

스프링 시큐리티

Spring 기반 애플리케이션의 보안(인증과 인가 등)을 담당하는 스프링 하위 프레임워크

인증과 인가

  1. 인증 (Authentication): 해당 리소스에 대해 작업을 수행할 수 있는 주체인지 확인
  2. 인가 (Authorization): 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차

security dependency 추가하기

→ 모든 요청에 인증 필요

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();
    }
}

0개의 댓글