전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (174)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Springboot/블로그만들기

[Springboot] 블로그 만들기 (23)_스프링 시큐리티(4)_비밀번호 해쉬, 회원가입

2023. 11. 28. 18:55

DB

현재 DB에는 비밀번호가 자연어로 들어가서 보안에 취약하다.

개발자가 사용자들의 민감한 정보를 확인할 수 있다.

따라서 이 비밀번호를 암호화 시켜서 DB에 저장해야 된다. 


Application.yml

먼저 application의 ddl-auto 를 create 로 변경

  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create

 

 

SecurityConfig.java

해쉬 암호화 하는 메서드 추가

@Bean // IoC가 된다!!
BCryptPasswordEncoder encodePWD() {
    return new BCryptPasswordEncoder();
}

 

UserApiController.java

@PostMapping("/auth/joinProc")
public ResponseDto<Integer> save(@RequestBody User user) { //userName, password, email
    System.out.println("UserApiController : save 호출됨");
    // 실제로 DB에 insert를 하고 아래에서 return이 되면 된다.
    userService.회원가입(user);
    // user.setRole(RoleType.USER); Service에서하자
    return new ResponseDto<Integer>(HttpStatus.OK.value(), 1); // 자바오브젝트를 JSON으로 변환해서 리턴(Jackson)
}

 

UserService.java

@Autowired
private BCryptPasswordEncoder encoder;

@Transactional // 전체가 성공하면 commit 실패시 rollback
public void 회원가입(User user) {
    String rawPassword = user.getPassword(); // 1234 원문
    String encPassword = encoder.encode(rawPassword); // 해쉬암호화
    user.setPassword(encPassword); // 암호화된 비밀번호를 user객체에 set
    user.setRole(RoleType.USER);
    userRepository.save(user);
}

 

테스트

 

비밀번호가 해쉬암호화 돼서 DB에 잘 저장된다.

    'Springboot/블로그만들기' 카테고리의 다른 글
    • [Springboot] 블로그 만들기 (25)_썸머노트를 이용한 글쓰기
    • [Springboot] 블로그 만들기 (24)_스프링 시큐리티(5)_로그인
    • [Springboot] 블로그 만들기 (22)_스프링 시큐리티(3)_커스터마이징
    • [Springboot] 블로그 만들기 (21)_스프링 시큐리티(2)_의존성 주입
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바