본문 바로가기

Java/Spring

[Spring] 간단한 SNS 만들기 #2 What to do? 인증기능 JWT를 사용한 인증기능 구현 UserEntity UserDetail을 implement하고, 아래의 메써드들을 오버라이딩 @Entity public class UserEntity implements UserDetails { ... @Override public Collection 더보기
[Spring] 간단한 SNS 만들기 #1 What to do? Domain 코드 작성하기 User Post Comment User RoleType 권한 설정을 위해 만든 enum public enum RoleType { USER,MANAGER,ADMIN; } UserEntity 필드 아이디, 이메일, 유저명, 비밀번호, 권한, 생성시간, 수정시간, 삭제시간 인증기능을 구현하기 위해서 UserDetails를 implement getAuthroties, isAccountExpired, isAccountNonLocked, isCredentialsNonExpired, isEnabled 를 구현해주어야 함 @Entity @Getter @Setter @Table(name = "\"user\"") @SQLDelete(sql = "UPDATE \"user\".. 더보기
[Spring] 길찾기 서비스 #6 What to do? 예제 데이터 추가 1. Jpa Auditing 기능 추가하기 2. Docker파일 수정 Jpa Auditing 생성일/수정일/삭제일 필드 엔티티 삭제시 실제 데이터베이스에서 레코드를 삭제하지 않고, removed_at 컬럼에 삭제일자만 기록 @Where(clause = "removed_at is NULL") 엔티티 조회 시에는 removed_at 필드가 NULL인 경우만 조회 작성자, 수정자 필드는 인증 기능 후 구현 @Getter @ToString @EntityListeners(AuditingEntityListener.class) @MappedSuperclass @Where(clause = "removed_at is NULL") public abstract class Auditin.. 더보기
[Spring] 길찾기 서비스 #5 What to do? 테스트 코드 작성하기 application.yaml test/resources/application.yaml # properties for test spring: datasource: driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver url: jdbc:tc:mariadb:10:/// jpa: hibernate: ddl-auto: create show-sql: true kakao: api: base-url: "https://dapi.kakao.com/v2/local/search/address.json" secret-key: ${KAKAO_API_SECRET_KEY} Edit Configuration 메뉴를 통해서 카.. 더보기
[Spring] 게시판 만들기 #12 What to do? 인증기능 완성하기 #1 Spring Security 구현내용 회원가입 기능 및 화면 구현 게시글 작성 게시글을 작성자가 현재 로그인한 유저명으로 잘 뜨는걸 확인할 수 있음 댓글 작성 댓글작성 시에도 작성자 이름이 잘뜨는걸 확인할 수 있음 데이터 베이스 MySQL에서 직접 쿼리를 쏴서 확인 created_by에 로그인한 유저명이 Jpa Auditing을 통해서 잘 박힘 비밀번호도 Bcrypt Encoder로 Encoding된 비밀번호가 잘 박힘 Principal MyPricipal.java @Getter public class MyPrincipal implements UserDetails { private String email; private String username; priva.. 더보기
[Spring] 게시판 만들기 #11 What to do? 댓글 작성 기능 구현하기 구현내용 댓글 작성 후 제출 버튼 클릭 최신 댓글들을 위로 오게 정렬해서 댓글 보여주기 Controller 댓글 CRUD Create /comments/write 경로로 post 요청 saveComment 메써드 Read ArticleController에서 이미 구현함 Update /comments 경로로 put 요청 updateComment 메써드 Delete /comments 경로로 delete 요청 deleteComment 메써드 CommentController.java @Controller @RequestMapping("/comments") @RequiredArgsConstructor public class CommentController { priv.. 더보기
[Spring] 게시판 만들기 #10 What to do? 게시글 작성 게시글 작성 기능 및 뷰 구현하기 구현내용 네비게이션 바에 Write 버튼을 누르면 게시글 작성 페이지로 이동 제출하면 게시판 페이지로 redirection되며, 방금 작성한 게시물이 보임 Security Config 게시글 쓰기를 하는 경우 /articles/write 경로로 post요청을 보내도록 하기 때문에, 테스트를 할 수 없었다. 인증기능을 완전히 구현하기 전까지는 다음과 같이 모든 요청을 허용하도록 바꾸었다. @Bean public SecurityFilterChain securityFilterChain( HttpSecurity http ) throws Exception { http.csrf().disable(); return http .authorizeHttp.. 더보기
[Spring] 게시판 만들기 #9 What to do? 정렬 기능 제목, 글쓴이, 해쉬태그, 작성일자 검색기능 제목, 본문 : 부분검색 해쉬태그, 작성일자 : Exact Match 작성자 : 인증기능을 완성한 후 추가 수정(TODO) 구현내용 정렬기능 테이블 헤더에서 Title을 클릭하면, Title 기준으로 정렬 → a 로 시작하는 게시물들부터 출력 검색기능 zoo라는 Title을 가진 게시물들 검색 SearchType 검색유형을 enum으로 정의 제목(title), 본문(content), 작성자(author), 해쉬태그 description 필드는 드롭박스에 표시할 내용 @Getter @AllArgsConstructor public enum SearchType { TITLE("Title"), CONTENT("Content"), USE.. 더보기