회원가입 시 설정한 조건에 맞지않는 경우 오류 발생
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
//SecurityConfig.java 파일에 삽입
위 코드를 삽입하면 아래 코드를 사용 가능
//userService.java
user.setPassword(passwordEncoder.encode(password));
//사용 가능
//userController.java
public String signup(@Valid UserCreateForm userCreateForm, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "signup_form";
}
if (!userCreateForm.getPassword1().equals(userCreateForm.getPassword2())) {
bindingResult.rejectValue("password2", "passwordInCorrect",
"2개의 패스워드가 일치하지 않습니다.");
return "signup_form";
}
try {
userService.create(userDto);
}catch(DataIntegrityViolationException e) {
e.printStackTrace();
bindingResult.reject("signupFailed", "이미 등록된 사용자입니다.");
return "signup_form";
}catch(Exception e) {
e.printStackTrace();
bindingResult.reject("signupFailed", e.getMessage());
return "signup_form";
}
아래 코드를 html에 삽입하면 꼭 필요한 값이 입력되지 않은 상태로 제출했을 때
미리 입력한 오류 문구가 뜬다.
//join.html
<form th:action="@{/user/join}" th:object="${userDto}" method="post">
<div class="alert alert-danger" role="alert" th:if="${#fields.hasAnyErrors()}">
<div th:each="err : ${#fields.allErrors()}" th:text="${err}" />
'Spring' 카테고리의 다른 글
@Scheduled, cron (2) | 2022.10.12 |
---|---|
Spring 프로젝트에 템플릿 적용하기 (2) | 2022.09.27 |
Spring 회원가입(1) _ SecurityConfig 설정 (2) | 2022.09.20 |
Spring_Entity : mappedBy , cascade (2) | 2022.09.15 |
점프 투 스프링부트 _ 1日 (2) | 2022.09.15 |