97일차_SpringBoot

서창민·2023년 8월 2일
0

SpringBoot

목록 보기
6/13
post-thumbnail

23.08.02 97일차

Spring Boot

  • 암호화 적용하기
컨트롤러

	@Autowired
	private PasswordEncoder enc;

	@RequestMapping("/everyone/formOK.do")
	String formOK(LoginVO vo) {
		vo.setPassword(enc.encode(vo.getPassword()));
		service.formOK(vo);
		return "index.html";
	}

컨트롤러에 시큐리티 config에 있는 PasswordEncoder를 불러와 사용하여 패스워드의 암호화를 걸어 insert 동작으로 DB에 저장할 수있다.

  • DB 저장

해당 이미지 처럼 {bcrypt} 가 걸려있는 60자의 암호화된 패스워드로 확인할 수 있다.

  • Junit test


해당 경로에 클래스 파일을 사용하여 Junit을 통한 테스트 동작을 할 수있다.

Tip

테스트 동작 시 Junit의 버전이 실행하는 버전과 동일한지 확인하고 동일하게 맞춰주어야 정상적으로 동작이 가능하다

package com.psd.k4;

import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.test.annotation.Commit;
import org.springframework.test.context.junit4.SpringRunner;

import com.psd.k4.login.LoginServiceImpl;
import com.psd.k4.login.LoginVO;

@RunWith(SpringRunner.class)
@SpringBootTest
@Commit
public class PasswordEncoderTest {

	@Autowired
	private LoginServiceImpl service;
	
	@Autowired
	private PasswordEncoder enc;
	
	@Before
	public void testDelete() {
		LoginVO vo = new LoginVO();
		vo.setUsername("user1");
		service.deleteOK(vo);
		
		System.out.println("삭제하기~~~~~~~: ");
	}
	
	@After
	public void testSelect() {
		
		for(int i=0; i<5; i++) {
			LoginVO vo = new LoginVO();
			service.selectAll(vo);
			System.out.println("목록보기~~~~~~~: " + vo);
		}
		

	}
	@Test
	public void testInsert() {
		for (int i=6; i<11; i++) {
			LoginVO vo = new LoginVO();
				vo.setUsername("user" + i);
				vo.setPassword(enc.encode("user"+i));
				vo.setName("서유저"+i);
				vo.setRole("ROLE_USER");
				service.formOK(vo);
		}
		System.out.println("저장완료~~~~~~~");
	}
}

어노테이션을 활용하여 삭제, 목록, 추가 동작을 확인할 수 있다.

profile
Back-end Developer Preparation Students

0개의 댓글