diff --git a/build.gradle b/build.gradle
index 2fbc11d..ecae9d9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -19,17 +19,27 @@ repositories {
}
dependencies {
+ // spring data jpa
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+ // security
implementation 'org.springframework.boot:spring-boot-starter-security'
+ // 웹 페이지를 쉽게 생성하기 위한 thymeleaf
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
+ // spring web mvc
implementation 'org.springframework.boot:spring-boot-starter-web'
+ // Thymeleaf에서 SpringSecurity를 Integration
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+ // lombok
compileOnly 'org.projectlombok:lombok'
-// developmentOnly 'org.springframework.boot:spring-boot-devtools'
- runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
+// developmentOnly 'org.springframework.boot:spring-boot-devtools'
+ // h2
+ runtimeOnly 'com.h2database:h2'
+ // starter test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
+ // security test
testImplementation 'org.springframework.security:spring-security-test'
+ // junit test
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}
diff --git a/src/main/java/com/example/springsecuritystudy/SpringSecurityStudyApplication.java b/src/main/java/com/example/springsecuritystudy/SpringSecurityStudyApplication.java
index 6e83066..bd4dd78 100644
--- a/src/main/java/com/example/springsecuritystudy/SpringSecurityStudyApplication.java
+++ b/src/main/java/com/example/springsecuritystudy/SpringSecurityStudyApplication.java
@@ -3,6 +3,10 @@ package com.example.springsecuritystudy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * SpringSecurity 학습용 Application
+ */
@SpringBootApplication
public class SpringSecurityStudyApplication {
diff --git a/src/main/java/com/example/springsecuritystudy/common/AlreadyRegisteredUserException.java b/src/main/java/com/example/springsecuritystudy/common/AlreadyRegisteredUserException.java
index bb4024f..4efa7b4 100644
--- a/src/main/java/com/example/springsecuritystudy/common/AlreadyRegisteredUserException.java
+++ b/src/main/java/com/example/springsecuritystudy/common/AlreadyRegisteredUserException.java
@@ -1,5 +1,8 @@
package com.example.springsecuritystudy.common;
+/**
+ * 이미 등록된 유저를 재등록하려고 할때 발생하는 Exception
+ */
public class AlreadyRegisteredUserException extends RuntimeException {
public AlreadyRegisteredUserException(String message) {
diff --git a/src/main/java/com/example/springsecuritystudy/common/UserNotFoundException.java b/src/main/java/com/example/springsecuritystudy/common/UserNotFoundException.java
index af9024a..23e809e 100644
--- a/src/main/java/com/example/springsecuritystudy/common/UserNotFoundException.java
+++ b/src/main/java/com/example/springsecuritystudy/common/UserNotFoundException.java
@@ -1,5 +1,8 @@
package com.example.springsecuritystudy.common;
+/**
+ * 유저를 찾을 수 없을 때 발생하는 Exception
+ */
public class UserNotFoundException extends RuntimeException {
public UserNotFoundException(String message) {
diff --git a/src/main/java/com/example/springsecuritystudy/config/InitializeConfig.java b/src/main/java/com/example/springsecuritystudy/config/InitializeConfig.java
index 52af503..70785cf 100644
--- a/src/main/java/com/example/springsecuritystudy/config/InitializeConfig.java
+++ b/src/main/java/com/example/springsecuritystudy/config/InitializeConfig.java
@@ -12,6 +12,9 @@ import com.example.springsecuritystudy.user.UserService;
import lombok.RequiredArgsConstructor;
+/**
+ * 초기 상태 등록 Config
+ */
@Configuration
@RequiredArgsConstructor
@Profile(value = "!test")
@@ -21,6 +24,12 @@ public class InitializeConfig {
private final PostService postService;
private final NoticeService noticeService;
+ /**
+ *
유저 등록
+ * 1. user / user
2. admin / admin
+ * 게시글 등록 4개
+ * 공지사항 등록 2개
+ */
@PostConstruct
public void adminAccount() {
User user = userService.signup("user", "user");
@@ -30,5 +39,6 @@ public class InitializeConfig {
postService.savePost(user, "테스트3", "테스트3입니다.");
postService.savePost(user, "여름 여행계획", "여름 여행계획 작성중...");
noticeService.saveNotice("환영합니다", "환영합니다 여러분");
+ noticeService.saveNotice("게시글 작성 방법 공지", "1. 회원가입\n2. 로그인\n3. 게시글 작성\n4. 저장\n* 본인 외에는 게시글을 볼 수 없습니다.");
}
}
diff --git a/src/main/java/com/example/springsecuritystudy/config/AuditorConfig.java b/src/main/java/com/example/springsecuritystudy/config/JpaAuditorConfig.java
similarity index 78%
rename from src/main/java/com/example/springsecuritystudy/config/AuditorConfig.java
rename to src/main/java/com/example/springsecuritystudy/config/JpaAuditorConfig.java
index dbd6a6a..389848c 100644
--- a/src/main/java/com/example/springsecuritystudy/config/AuditorConfig.java
+++ b/src/main/java/com/example/springsecuritystudy/config/JpaAuditorConfig.java
@@ -3,7 +3,10 @@ package com.example.springsecuritystudy.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
+/**
+ * JPA auditor enable
+ */
@Configuration
@EnableJpaAuditing
-public class AuditorConfig {
+public class JpaAuditorConfig {
}
diff --git a/src/main/java/com/example/springsecuritystudy/config/MvcConfig.java b/src/main/java/com/example/springsecuritystudy/config/MvcConfig.java
index c2323a2..b0d92e1 100644
--- a/src/main/java/com/example/springsecuritystudy/config/MvcConfig.java
+++ b/src/main/java/com/example/springsecuritystudy/config/MvcConfig.java
@@ -4,6 +4,9 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.HiddenHttpMethodFilter;
+/**
+ * WebMVC Config
+ */
@Configuration
public class MvcConfig {
diff --git a/src/main/java/com/example/springsecuritystudy/config/PasswordEncoderConfig.java b/src/main/java/com/example/springsecuritystudy/config/PasswordEncoderConfig.java
index 09c104b..de1ef4b 100644
--- a/src/main/java/com/example/springsecuritystudy/config/PasswordEncoderConfig.java
+++ b/src/main/java/com/example/springsecuritystudy/config/PasswordEncoderConfig.java
@@ -5,6 +5,9 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
+/**
+ * PasswordEncoder Config
+ */
@Configuration
public class PasswordEncoderConfig {
diff --git a/src/main/java/com/example/springsecuritystudy/config/SecurityConfig.java b/src/main/java/com/example/springsecuritystudy/config/SecurityConfig.java
index 1605fa2..2ec08fa 100644
--- a/src/main/java/com/example/springsecuritystudy/config/SecurityConfig.java
+++ b/src/main/java/com/example/springsecuritystudy/config/SecurityConfig.java
@@ -9,6 +9,9 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import lombok.RequiredArgsConstructor;
+/**
+ * Security 설정 Config
+ */
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig {
diff --git a/src/main/java/com/example/springsecuritystudy/notice/NoticeController.java b/src/main/java/com/example/springsecuritystudy/notice/NoticeController.java
index 879d49e..bb08a2d 100644
--- a/src/main/java/com/example/springsecuritystudy/notice/NoticeController.java
+++ b/src/main/java/com/example/springsecuritystudy/notice/NoticeController.java
@@ -15,6 +15,9 @@ import com.example.springsecuritystudy.post.PostDto;
import lombok.RequiredArgsConstructor;
+/**
+ * 공지사항 서비스 Controller
+ */
@Controller
@RequiredArgsConstructor
@RequestMapping("/notice")
diff --git a/src/main/java/com/example/springsecuritystudy/post/AdminController.java b/src/main/java/com/example/springsecuritystudy/post/AdminController.java
index f1c47b2..d236576 100644
--- a/src/main/java/com/example/springsecuritystudy/post/AdminController.java
+++ b/src/main/java/com/example/springsecuritystudy/post/AdminController.java
@@ -19,6 +19,10 @@ public class AdminController {
private final PostService postService;
+ /**
+ * 어드민인 경우 게시글 조회
+ * @return admin/index.html
+ */
@GetMapping
public String getPostForAdmin(Authentication authentication, Model model) {
User user = (User) authentication.getPrincipal();