diff --git a/.classpath b/.classpath index 79126ac..7404ac4 100644 --- a/.classpath +++ b/.classpath @@ -19,6 +19,12 @@ + + + + + + diff --git a/build.gradle b/build.gradle index 179444a..ae4d6ae 100644 --- a/build.gradle +++ b/build.gradle @@ -39,6 +39,7 @@ dependencies { implementation 'com.google.code.gson:gson' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation('nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect') implementation 'io.springfox:springfox-boot-starter:3.0.0' compileOnly 'org.projectlombok:lombok' @@ -46,6 +47,9 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' + implementation 'org.springframework.boot:spring-boot-starter-jdbc' + implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' + } test { diff --git a/src/main/java/daeucna/Security/domain/mapper/Home.java b/src/main/java/daeucna/Security/domain/mapper/Home.java new file mode 100644 index 0000000..c5776dc --- /dev/null +++ b/src/main/java/daeucna/Security/domain/mapper/Home.java @@ -0,0 +1,13 @@ +package daeucna.Security.domain.mapper; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface Home { + + public List> getTestData(Map param); + +} diff --git a/src/main/java/daeucna/Security/domain/service/HomeService.java b/src/main/java/daeucna/Security/domain/service/HomeService.java new file mode 100644 index 0000000..0e3b54f --- /dev/null +++ b/src/main/java/daeucna/Security/domain/service/HomeService.java @@ -0,0 +1,26 @@ +package daeucna.Security.domain.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import daeucna.Security.domain.mapper.Home; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Service +@Transactional(readOnly = true) +public class HomeService { + + @Autowired + Home home; + + public List> getTestData(Map param) { + List> result = home.getTestData(param); + return result; + } + +} diff --git a/src/main/java/daeucna/Security/domain/service/SignService.java b/src/main/java/daeucna/Security/domain/service/SignService.java index 41ea91d..7fb1521 100644 --- a/src/main/java/daeucna/Security/domain/service/SignService.java +++ b/src/main/java/daeucna/Security/domain/service/SignService.java @@ -1,12 +1,17 @@ package daeucna.Security.domain.service; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import java.util.Optional; +import java.util.UUID; + import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import daeucna.Security.advice.exception.*; +import daeucna.Security.advice.exception.EmailNotAuthenticatedException; +import daeucna.Security.advice.exception.InvalidRefreshTokenException; +import daeucna.Security.advice.exception.LoginFailureException; +import daeucna.Security.advice.exception.MemberIdAlreadyExistsException; +import daeucna.Security.advice.exception.MemberNotFoundException; import daeucna.Security.config.security.jwt.JwtTokenProvider; import daeucna.Security.domain.auth.AccessToken; import daeucna.Security.domain.auth.Profile.ProfileDto; @@ -16,13 +21,11 @@ import daeucna.Security.domain.dto.TokenResponseDto; import daeucna.Security.domain.entity.Member; import daeucna.Security.domain.rediskey.RedisKey; import daeucna.Security.domain.repository.MemberRepository; -import daeucna.Security.web.dto.EmailAuthRequestDto; import daeucna.Security.web.dto.MemberLoginRequestDto; import daeucna.Security.web.dto.MemberRegisterRequestDto; import daeucna.Security.web.dto.ReIssueRequestDto; - -import java.util.Optional; -import java.util.UUID; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Slf4j @Service diff --git a/src/main/java/daeucna/Security/web/controller/HomeController.java b/src/main/java/daeucna/Security/web/controller/HomeController.java index 0a8b50a..bd682b8 100644 --- a/src/main/java/daeucna/Security/web/controller/HomeController.java +++ b/src/main/java/daeucna/Security/web/controller/HomeController.java @@ -3,22 +3,37 @@ package daeucna.Security.web.controller; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import daeucna.Security.domain.service.HomeService; import daeucna.Security.domain.service.SignService; @Slf4j @RestController @RequiredArgsConstructor public class HomeController { - + private Logger logger = LoggerFactory.getLogger(HomeController.class); + + @Autowired private final SignService memberService; + @Autowired + private final HomeService homeService; + @ApiOperation(value = "테스트 페이지", notes = "인증을 위한 테스트 페이지입니다.") @GetMapping("/hello") - public String hello() { - return "Hello"; + public List> hello() { + List> lResult = homeService.getTestData(new HashMap()); + return lResult; } } diff --git a/src/main/java/daeucna/Security/web/controller/SignController.java b/src/main/java/daeucna/Security/web/controller/SignController.java index 95447da..64533f3 100644 --- a/src/main/java/daeucna/Security/web/controller/SignController.java +++ b/src/main/java/daeucna/Security/web/controller/SignController.java @@ -1,9 +1,10 @@ package daeucna.Security.web.controller; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import daeucna.Security.domain.auth.AuthCode; import daeucna.Security.domain.dto.MemberLoginResponseDto; @@ -12,10 +13,12 @@ import daeucna.Security.domain.dto.TokenResponseDto; import daeucna.Security.domain.result.SingleResult; import daeucna.Security.domain.service.ResponseService; import daeucna.Security.domain.service.SignService; -import daeucna.Security.web.dto.EmailAuthRequestDto; import daeucna.Security.web.dto.MemberLoginRequestDto; import daeucna.Security.web.dto.MemberRegisterRequestDto; import daeucna.Security.web.dto.ReIssueRequestDto; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Slf4j @RestController diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 9f0ab84..496297a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -51,4 +51,16 @@ spring: url: login: https://nid.naver.com/oauth2.0/authorize token: https://nid.naver.com/oauth2.0/token - profile: https://openapi.naver.com/v1/nid/me \ No newline at end of file + profile: https://openapi.naver.com/v1/nid/me + + #jsp의 설정이 기존에 있기 때문에 thymeleaf/ 로 호출되면 타임리프가 처리되도록 반영하기 위한 코드 + thymeleaf: + prefix: classpath:/templates/ + suffix: .html + #thymeleaf 수정 사항 발생 시, 서버 재기동 없이 캐시를 무시하기 위한 코드 + cache: false + check-template-location: true + +mybatis: + mapper-locations: classpath:mybatis/mapper/**.xml + diff --git a/src/main/resources/mybatis/mapper/Home.xml b/src/main/resources/mybatis/mapper/Home.xml new file mode 100644 index 0000000..5e6e68d --- /dev/null +++ b/src/main/resources/mybatis/mapper/Home.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file -- libgit2 0.21.4