[Spring Boot] 암호화 처리를 이용한 회원가입과 로그인

2023. 4. 22. 20:09·Java/Spring Boot
728x90
728x90

#  관련 포스팅

  - 암호화 처리 : https://young0105.tistory.com/238

 


#  WebMvcConfigurer 구현 클래스에 암호화 처리 인코더 선언

1
2
3
4
5
6
7
8
9
10
11
12
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
 
    // 암호화 처리 인코더
    // 이렇게 설정해두면 PasswordEncoder를 멤버 변수로 선언해서 사용 가능
    @Bean // IoC 관리 대상 처리
    public PasswordEncoder passwordEncoder() {
        
        return new BCryptPasswordEncoder();
    }
 
}
Colored by Color Scripter
cs

  - 암호화 처리는 Service 레이어에서 수행

 

#  UserService

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@Service // IoC 대상
public class UserService {
 
    // DAO 표준을 정의해둔 인터페이스
    @Autowired // 객체 생성 시 의존 주입 처리
    private UserRepository userRepository;
    
    // 암호화 처리 인코더
    @Autowired
    private PasswordEncoder passwordEncoder;
    
 
    @Transactional 
    public void createUser(SignUpFormDto signUpFormDto) {
 
        // 비밀번호 암호화 처리
        String rawPwd = signUpFormDto.getPassword();
        String hashPwd = passwordEncoder.encode(rawPwd);
        signUpFormDto.setPassword(hashPwd);
        
        // 암호화된 비밀번호를 DB에 저장
        int result = userRepository.insert(signUpFormDto);
        
        if (result != 1) {
            throw new CustomRestfullException("회원 가입에 실패했습니다.", HttpStatus.INTERNAL_SERVER_ERROR);
        }
        
    }
    
    @Transactional
    public User signIn(SignInFormDto signInFormDto) {
        
        // username을 조건 컬럼으로 사용해서 사용자를 찾음
        User userEntity = userRepository.findByUsername(signInFormDto);
 
        // 검색 결과가 존재하지 않는다면
        if (userEntity == null) {
            throw new CustomRestfullException("존재하지 않는 username입니다.", HttpStatus.INTERNAL_SERVER_ERROR);
        }
        
        // username이 존재하는 경우에 대해서 비밀번호를 
        if (passwordEncoder.matches(signInFormDto.getPassword(), userEntity.getPassword()) == false) {
            throw new CustomRestfullException("비밀번호가 틀렸습니다.", HttpStatus.INTERNAL_SERVER_ERROR);
        }
        
        return userEntity;
    }
    
}
Colored by Color Scripter
cs

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'Java > Spring Boot' 카테고리의 다른 글

[Spring Boot] 리소스 처리 : HOST 컴퓨터의 리소스 활용하기  (0) 2023.04.24
[Spring Boot] 프로젝트 외부 HOST 컴퓨터에 파일 업로드하기  (0) 2023.04.24
[Spring Boot] 암호화 처리  (0) 2023.04.22
[Spring Boot] 마이그레이션 : H2 DB에서 MySQL DB로 변경하기  (0) 2023.04.22
[Spring Boot] 파비콘 설정 방법  (0) 2023.04.21
'Java/Spring Boot' 카테고리의 다른 글
  • [Spring Boot] 리소스 처리 : HOST 컴퓨터의 리소스 활용하기
  • [Spring Boot] 프로젝트 외부 HOST 컴퓨터에 파일 업로드하기
  • [Spring Boot] 암호화 처리
  • [Spring Boot] 마이그레이션 : H2 DB에서 MySQL DB로 변경하기
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (384)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • etc. (13)
      • Error Note (16)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    Codeigniter
    SWAGGER
    오블완
    vuejs
    티스토리챌린지
    C#
    java
    Wordpress
    CSS
    errorNote
    typeScript
    SQL
    SpringBoot
    Android
    Hotkeys
    HTML
    js
    zapier
    cs
    http
    Swing
    개발일지
    jQuery
    tailwindcss
    SEO
    면접
    jsp
    git
    php
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Spring Boot] 암호화 처리를 이용한 회원가입과 로그인
상단으로

티스토리툴바