Spring Security :: BCrypt

hyunjoon park·2023년 11월 25일
1

Spring Security

목록 보기
2/12

Bcrypt 암호화에 대해 알아보자

Spring Security는 암호화를 위해 BCrypt Password Encoder를 제공한다.
따라서 해당 클래스를 return 하는 메소드를 만들어 @Bean으로 등록하여 사용하면 된다


암호화

  1. 양방향
    • 대칭키
    • 비대칭키
  1. 단방향(다시 해독을 할 수 없는 암호화 방식)
    • 해시
package bsm.choi.fancafe.global.config;

import jakarta.servlet.DispatcherType;
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.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;

import static org.springframework.security.config.Customizer.withDefaults;

@Configuration
public class SecurityConfig {
    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests(
                        request -> request
                                .requestMatchers("/").permitAll()
                                .requestMatchers("/admin/**").hasRole("ADMIN")
                                .anyRequest().permitAll()
                )
                .csrf(
                        auth -> auth.disable()
                )
                .formLogin(
                        auth -> auth
                                .loginPage("/login")
                                .permitAll()
                );

        return http.build();
    }
}

리턴타입을 BCryptPasswordEncoder으로 가지고
BCryptPasswordEncoder 생성자를 return하는 메서드를
@Bean으로 등록시켜준다.

profile
Backend Developer

0개의 댓글