[Spring JPA ] - 시큐리티 회원가입 -7

JEONG SUJIN·2022년 11월 20일
0

스프링부트 JPA

목록 보기
8/24

회원가입을 할때 비밀번호를 1234 라고 입력하면 바로 데이터베이스에 1234 라고 들어가는데
그 부분을 암호화를 시켜서 넣을거다. 그게 바로 해쉬화(암호화)를 할것이다.

시큐리티는 기본적으로 1234로 로그인이 절대 안되고,
해시로 암호화를 시켜야 로그인된다.
해시암호로 만들어야한다.

시큐리티 > 로그인 요청

시큐리티가 요청을 가로채서 유저네임,패스워드를 가저간다.
로그인요청할때 파라미터를 가로챈다. 그리고 로그인을 진행시킨다.

로그인을 진행시키고 완료가 되면, 시큐리티전용세션으로 등록을 한다.
유저정보를 우리는 유저정보를 필요할때마다 가져와서 사용할 수 있다.
스프링이 Ioc로 관리하기 때분에


🔖 여기서 중요한게
우리가 만든 유저오브젝트를 넣을 수 없다.
타입이 정해져있음 userType: userDetails

🔑 두가지 방법 있음
방법1: 시큐리티 타입으로 맞춰서
방법2: 해쉬화(암호화)로 변경


BCryptPasswordEncoder메서드는 시큐리티 내장함수

1234를암호화해서 넣어준다.

/*
	 * encodePWD() 를 호출하면 new BCryptPasswordEncoder() 객체를 리턴받을 수 있다.
	 * */
	public BCryptPasswordEncoder encodePWD() {
		 String encPassword = new BCryptPasswordEncoder().encode("1234");
		 return new BCryptPasswordEncoder();
	 }
    

이걸 테스트용으로 한번 확인했을때

test.java

@Test
	public void 해쉬암호화() {
		String encPassoword = new BCryptPasswordEncoder().encode("1234");
		System.out.println("encPassoword 암호화  :" +encPassoword  );
	}

코드에 encode("1234")로 넣은 부분이 콘솔창에 해쉬화 된걸 볼 수 있다 🙂


SecurityConfig.java


//빈등록 :  스프링 컨테이너에서 객체를 관리할 수 있게 하는 것
@Configuration //빈 등록(Ioc관리)
@EnableWebSecurity //시큐리티에 필터가 등록이 된다. 설정은 아래에서 하면된다.
@EnableGlobalMethodSecurity(prePostEnabled=true) //특정 주소로 접근을 하면 권한 및 인증을 미리 체크하겠다.

public class SecurityConfig   {
 
	
	/*
	 * encodePWD() 를 호출하면 new BCryptPasswordEncoder() 객체를 리턴받을 수 있다.
	 * */
	
	@Bean
	public BCryptPasswordEncoder encodePWD() {
		 String encPassword = new BCryptPasswordEncoder().encode("1234");
		 return new BCryptPasswordEncoder(); //스프링이관리 , 필요할때마다 가져다가 사용하면 된다.
	 }
	 
	 
     @Bean	
	 public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
          
	        http
	        .csrf().disable()//csrf 토큰 비활성화 (테스트시걸어두는게 좋음)
	        .authorizeRequests()
	        .antMatchers("/","/auth/**","/js/**","/css/**", "/images/**").permitAll()
            .anyRequest()
            .authenticated()
            .and()
            .formLogin()
            .loginPage("/auth/loginForm");
	        
	             
	        return http.build();
	    }
     	 
	 
}

🔎 CSRF 비활성화
시큐리티를 작동시켰을때 csrf토큰이없으면 막아버림.
그래서 일단 비활성해야함. 테스트용일땐 비활성으로 하고,
토큰을 작업하는게 좋음 !

회원가입을 진행

데이터베이스 확인

비밀번호가 해쉬화해서 잘 들어간걸 볼 수 있다.!!

profile
기록하기

0개의 댓글