스프링과 JPA 기반 웹 어플리케이션 개발/1부 (개발환경, 회원가입, 로그인, 계정설정)31 27. 패스워드 수정 테스트 package me.weekbelt.studyolle.settings; @SpringBootTest @AutoConfigureMockMvc class SettingsControllerTest { // 기존 코드 ..... @Autowired PasswordEncoder passwordEncoder; // 기존 코드 ...... @WithAccount("joohyuk") @DisplayName("패스워드 수정 폼") @Test public void updatePassword_form() throws Exception { mockMvc.perform(get("/settings/password")) .andExpect(status().isOk()) .andExpect(model().attributeExists.. 2020. 4. 22. 26. 패스워드 수정 패스워드 변경 패스워드 탭 활성화 새 패스워드와 새 패스워드 확인의 값이 일치해야 한다. 패스워드 인코딩 할 것! 둘 다 최소 8자에서 최대 50자 사이. 사용자 정보를 변경하는 작업. 서비스로 위임해서 트랜잭션 안에서 처리해야 한다. 또는 Detached 상태의 객체를 변경한 다음 Repository의 save를 호출해서 상태 변경 내역을 적용 할 것(Merge) 새로운 패스워드를 입력받기위한 PasswordForm DTO를 생성 package me.weekbelt.studyolle.settings; @NoArgsConstructor @Data public class PasswordForm { @Length(min = 8, max = 50) private String newPassword; @Lengt.. 2020. 4. 21. 25. 프로필 이미지 변경 프론트 라이브러리 설치 Cropper.js npm install cropper npm install jquery-cropper Cropper.js 사용하기 Profile DTO에 이미지 경로를 위해 필드 추가 package me.weekbelt.studyolle.settings; @NoArgsConstructor @Data public class Profile { // 기존코드 ........ private String profileImage; public Profile(Account account) { // 기존코드 ............ this.profileImage = account.getProfileImage(); } } /settings/profile.html에 이미지 폼 추가 메시지 x we.. 2020. 4. 21. 24. 프로필 수정 테스트 인증된 사용자가 접근할 수 있는 기능 테스트하기 실제 DB에 저장되어 있는 정보에 대응하는 인증된 Authentication에 필요하다. @WithMockUser로는 처리할 수 없다.(버그) 인증된 사용자를 제공할 커스텀 애노테이션 만들기 @WithAccount 커스텀 애노테이션 생성 @Retention(RetentionPolicy.RUNTIME) @WithSecurityContext(factory = WithAccountSecurityContextFactory.class) public @interface WithAccount { String value(); } SecurityContextFactory 구현 package me.weekbelt.studyolle; @RequiredArgsConstructo.. 2020. 4. 21. 이전 1 2 3 4 5 ··· 8 다음