Spring

회원가입 시 설정한 조건에 맞지않는 경우 오류 발생_Spring

주탱2 2022. 9. 23. 01:53

회원가입 시 설정한 조건에 맞지않는 경우 오류 발생

@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}" />