728x90
개발자 유미 | 커뮤니티
www.devyummi.com
단방향 해시 암호화
로그인을 통한 사용자 인증 시 사용자의 비밀번호에 대해 단방향 해시 암호화를 진행해야 한다.
이를 통해 비밀번호의 유출로부터 안전해지고, 복호화가 불가능해 보안을 지킬 수 있다.
스프링 시큐리티는 비밀번호의 암호화를 위해 BCrypt Passwrod Encoder를 사용하는 것을 권장한다.
BCrypt Passwrod Encoder 반환 빈 등록
BCrypt Passwrod Encoder를 반환하는 메소드를 만들고, 빈으로 등록하자.
package com.example.testsecurity.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.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder(){
return new BCryptPasswordEncoder();
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests((auth)->auth
.requestMatchers("/", "/login").permitAll()
.requestMatchers("/admin").hasRole("ADMIN")
.requestMatchers("/my/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
);
http
.formLogin((auth) -> auth.loginPage("/login")
.loginProcessingUrl("/loginProc")
.permitAll()
);
http
.csrf((auth) -> auth.disable());
return http.build();
}
}
728x90
'Spring > Spring Security' 카테고리의 다른 글
개발자 유미 - 스프링 시큐리티 6. DB 연결 (0) | 2025.03.07 |
---|---|
개발자 유미 - 스프링 시큐리티 4. 커스텀 로그인 설정 (0) | 2025.03.07 |
개발자 유미 - 스프링 시큐리티 3. Security Config 인가 작업 (0) | 2025.02.09 |
개발자 유미 - 스프링 시큐리티 2. 프로젝트 생성 (0) | 2025.02.09 |
개발자 유미 - 스프링 시큐리티 1 : 실습 목표 및 간단한 동작 원리 (0) | 2025.02.05 |