티스토리 뷰

728x90
반응형

Spring Security In Action

1. 인증 필터가 요청을 가로 챈다.

스프링 시큐리티를 설정하는 경우 사용자의 요청을 "인증 필터"가 가로 챈다.

 

2. 인증 책임이 인증 관리자에게 위임된다.

"1. 인증 필터"는 "2.인증 관리자"에게 사용자 인증에 대한 권한을 위임한다.


사용자 인증

스프링 시큐리티의 기본 사용자 정보는 Username = user, Password = xxxx-xxxx... 으로 구성되어 있다.

스프링 시큐리티의 기본 사용자 정보가 아닌 관리되는 사용자 정보를 사용해서 사용자 정보를 재구성해 보자.

package com.example.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
public class SpringSecurityConfig {
	
	@Bean
	UserDetailsService userDetailsService() {
		var userDetailsService = new InMemoryUserDetailsManager();
		
		var user = User.withUsername("james")
				.password(passwordEncoder().encode("12345"))
				.authorities("auth_name")
				.build();
		
		userDetailsService.createUser(user);
		return userDetailsService;
		
	}
	
	@Bean
	PasswordEncoder passwordEncoder() {
		return new BCryptPasswordEncoder();
	}

}

 

사용자에 관한 세부 정보는 "UserDetailsService"를 구현하는 객체가 관리한다.

그래서 "userDetailsService.createUser(user)"를 사용해서 새로 정의한 사용자 정보를 스프링 시큐리티가 사용하도록 설정했다.

 

또한 "PasswordEncoder"도 스프링 시큐리티의 기본 구성임을 알 수 있게 되었다.


호출


추가 정보

스프링 시큐리티(Spring Security)-설정과 HTTP Basic 인증

 

스프링 시큐리티(Spring Security)-설정과 HTTP Basic 인증

개발 환경java 21.0.4 2024-07-16 LTSJava(TM) SE Runtime Environment (build 21.0.4+8-LTS-274)Java HotSpot(TM) 64-Bit Server VM (build 21.0.4+8-LTS-274, mixed mode, sharing) STS4스프링 시큐리티(Spring Security) 설정"Spring Start

jangjeonghun.tistory.com

 

728x90
반응형