728x90
- Spring Security 5.0 이전에는 기본 PasswordEncoder 가 평문을 지원하는 NoOpPasswordEncoder(현재는 사용 X)
-
암호화 포맷 : {id} encodedPasswordencodedPassword
-
bcrypt, noop, pbkdf2, scrypt, sha256
- 기본 포맷은 Bcrypt : {bcrypt}$2a$10$dXJ3SW6G7P50lGmMkkmwe.20cQQubK3.HZWzG3YB1tlRy.fqvM/BG
-
- 생성
-
PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder()
-
- 인터페이스
-
encode(password)
-
패스워드 암호화
-
-
matches(rawPassword, encodedPassword)
- 패스워드 비교
-
구현하기
- Entity 생성

엔티티 생성
- Dto 생성

Dto생성
- Repository 생성

Repository
- Service , ServiceInterface 생성

ServiceInterface 
ServiceImpl
- Password 생성해주는 Encoder 빈으로 등록
- Controller 추가

등록화면 이동, 등록 동작
- html
- register.html
-
<html xmlns:th="http:www.thymeleaf.org"> <head th:replace="layout/header::userHead"></head> <body> <div th:replace="layout/top::header"></div> <body> <div class="container d-flex justify-content-center"> <div style="width:700px; margin-top: 30px;"> <form class="form-horizontal" th:action="@{/users}" method="post"> <div class="form-group"> <label for="username" class="col-sm-2 control-label">아이디</label> <div class="col-sm-10"> <input type="text" class="form-control input-large" name="username" id="username" placeholder="username" required> </div> </div> <div class="form-group"> <label for="password" class="col-sm-2 control-label">비밀번호</label> <div class="col-sm-10"> <input type="password" class="form-control input-large" name="password" id="password" placeholder="Password" data-minlength="6" required> </div> </div> <div class="form-group"> <label for="email" class="col-sm-2 control-label">이메일</label> <div class="col-sm-10"> <input type="email" class="form-control input-large" name="email" id="email" placeholder="이메일" required> </div> </div> <div class="form-group"> <label for="age" class="col-sm-2 control-label">나이</label> <div class="col-sm-10"> <input type="text" class="form-control input-large" name="age" id="age" placeholder="나이" required> </div> </div> <div class="form-group"> <label for="role" class="col-sm-2 control-label">권한</label> <div class="col-sm-10"> <input type="text" class="form-control input-large" name="role" id="role" placeholder="권한" required> </div> </div> <div class="form-group"> <div class="col-sm-offset-1 col-sm-10"> <button type="Submit" class="btn btn-dark btn-lg">가입하기</button> </div> </div> </form> </div> </div> </body> </html>
-

top을 li태그에 link추가
- register.html
728x90
'스프링 시큐리티' 카테고리의 다른 글
| Ch03. 실전프로젝트(인증 프로세스 Form 인증 구현) - 커스텀 로그인 페이지 생성하기 (0) | 2022.01.18 |
|---|---|
| Ch03. 실전프로젝트(인증 프로세스 Form 인증 구현) - DB 연동 인증 처리 CustomUserDetailsService (0) | 2022.01.18 |
| Ch03. 실전프로젝트(인증 프로세스 Form 인증 구현) - 정적 자원 관리(WebIgnore 설정) (0) | 2022.01.18 |
| Ch03. 실전프로젝트(인증 프로세스 Form 인증 구현) - 실전 프로젝트 생성 (0) | 2022.01.18 |
| Ch02. 스프링 시큐리티 주요 아키텍처 이해 - 스프링 시큐리티 필터 및 아키텍처 정리 (0) | 2022.01.17 |
