Spring Boot: study.diary 접근보안 (feat. Postman)

Spring Boot 를 이용해서 학습차원에서 개발해보고 있는 diary 프로그램이 프로그램으로서의 기본 골격은 갖추었다고 생각했어. 그런데, A 라는 사용자가 로그인해서 B 사용자가 작성한 일기를 볼 수 있다거나, 편집할 수 있는 허점이 있어. 그리고 일단 사용자로 등록한 후에 비밀번호를 변경하는 작업 역시 불가능한 상태야. 이런 보안상 허점이라거나 미진한 기능들을 한꺼번에 모아서 처리해볼께. 일기 작성자 확인하기 사용자를 한 … Read more

Spring Boot: study.diary : 로그인정보 조회

diary 프로그램은 회원가입 기능이 완료되었다. 로그인 기능이 완료되었다. 이제 로그인해서 일기를 쓸 때 로그인정보를 가져와서 해당 일기의 주인을 표시하는 기능을 구현해야 한다. 로그인한 사용자의 정보는 아래 코드를 통해서 가져올 수가 있다. 위 코드로 구해지는 값을 테스트하기 위해서 DiaryService 의 테스트 클래스를 작성해볼께. createDiary 테스트 함수에 붙인 @WithMockUser 애노테이션은 Spring Security 로 작성한 프로젝트에서 인증된 정보를 … Read more

Spring Boot: study.diary 멤버 가입

데이터베이스에 사용자 테이블 member 를 추가 일기데이터 테이블(diary) 에도 누가 작성한 일기인지를 알 수 있도록 email 컬럼을 추가 Member 클래스에 멤버를 추가 Diary 클래스에도 멤버를 추가 member 테이블에 대한 기본적인 CRUD 매퍼를 작성 member 에 대한 매퍼 인터페이스 작성 매퍼 환경(mybatis-config.xml) 수정 member 테이블과 Member 에 대한 매퍼 인터페이스가 만들어졌으니 LoginService 의 loadUserByUsername 에 작성해두었던 … Read more

spring boot : 설정파일 분리 (IntelliJ, Jenkins)

spring boot 프로젝트의 설정 파일인 application.yml (application.properties 확장자가 기본이야) 은 resources 디렉토리에 존재하기 때문에 프로그램을 빌드하면 해당 파일이 포함되어 보안에 문제가 있어. Gradle 의 Tasks 항목 아래의 build/bootJar 를 선택해서 실행해보면 배포를 위한 빌드를 할 수 있어. 빌드된 파일은 프로젝트 폴더 아래의 build/libs 디렉토리에서 찾을 수가 있는데, study.diary-0.0.1-SNAPSHOT.jar 라고 되어 있네. 확장자는 .jar 이지만, 압축파일 … Read more

jenkins: diary 서비스화

프로젝트 가장 상위에 script 디렉토리를 만들고 그 아래에 4개의 파일을 생성한다. script 디렉토리를 src 디렉토리의 바깥에 둔 이유는 소스에 포함시키지 않기 위해서이다. 서버에 동작하고 있는 프로그램의 프로세스를 종료시킨다. 위 명령어로 동작중인 프로세스의 PID 를 확인하고 위 명령어로 프로세스를 종료시킨다. jenkins 에 아래 스크립트를 등록한다. 10.10.1.2 서버에 ssh 로 접속하여 관리자권한으로 명령어를 실행시키기 위해서 sudo 를 … Read more