From 4cb008c876190ffd72fb76234c602bbea7cadf2d Mon Sep 17 00:00:00 2001 From: kimyonghwa Date: Wed, 17 Apr 2019 19:25:48 +0900 Subject: [PATCH 1/3] modify security matcher path --- .../com/rest/api/config/security/SecurityConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/rest/api/config/security/SecurityConfiguration.java b/src/main/java/com/rest/api/config/security/SecurityConfiguration.java index bf8923d..923854e 100644 --- a/src/main/java/com/rest/api/config/security/SecurityConfiguration.java +++ b/src/main/java/com/rest/api/config/security/SecurityConfiguration.java @@ -32,7 +32,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { .and() .authorizeRequests() // 다음 리퀘스트에 대한 사용권한 체크 .antMatchers("/*/signin", "/*/signup").permitAll() // 가입 및 인증 주소는 누구나 접근가능 - .antMatchers(HttpMethod.GET, "helloworld/**").permitAll() // hellowworld로 시작하는 GET요청 리소스는 누구나 접근가능 + .antMatchers(HttpMethod.GET, "/helloworld/**").permitAll() // hellowworld로 시작하는 GET요청 리소스는 누구나 접근가능 .antMatchers("/*/users").hasRole("ADMIN") .anyRequest().hasRole("USER") // 그외 나머지 요청은 모두 인증된 회원만 접근 가능 .and() From 5b11d0e1b31c6c0ee23619ab3a443ef8639e3c42 Mon Sep 17 00:00:00 2001 From: kimyonghwa Date: Wed, 1 May 2019 01:21:00 +0900 Subject: [PATCH 2/3] Add logging preferences --- src/main/resources/application-alpha.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-alpha.yml b/src/main/resources/application-alpha.yml index 16ee0df..b854c06 100644 --- a/src/main/resources/application-alpha.yml +++ b/src/main/resources/application-alpha.yml @@ -12,7 +12,7 @@ spring: url: jdbc:mysql://127.0.0.1:33060/daddyprogrammer?useUnicode=true&autoReconnect=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver username: happydaddy - password: daddy!@#1004 + password: daddy1004 jpa: database-platform: org.hibernate.dialect.MySQL5InnoDBDialect properties.hibernate: From e390958e9a8182d89141b690fb469e7f2b78f43b Mon Sep 17 00:00:00 2001 From: kimyonghwa Date: Thu, 2 May 2019 22:41:22 +0900 Subject: [PATCH 3/3] Modify Unit Test --- .../api/controller/v1/SignControllerTest.java | 24 +++++++++++++++---- .../api/controller/v1/UserControllerTest.java | 23 +++++++++++++++++- .../api/service/social/KakaoServiceTest.java | 3 ++- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/rest/api/controller/v1/SignControllerTest.java b/src/test/java/com/rest/api/controller/v1/SignControllerTest.java index c21b831..b28322d 100644 --- a/src/test/java/com/rest/api/controller/v1/SignControllerTest.java +++ b/src/test/java/com/rest/api/controller/v1/SignControllerTest.java @@ -1,11 +1,15 @@ package com.rest.api.controller.v1; +import com.rest.api.entity.User; +import com.rest.api.repo.UserJpaRepo; +import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.transaction.annotation.Transactional; @@ -14,6 +18,7 @@ import org.springframework.util.MultiValueMap; import java.time.LocalDateTime; import java.time.ZoneId; +import java.util.Collections; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; @@ -29,6 +34,17 @@ public class SignControllerTest { @Autowired private MockMvc mockMvc; + @Autowired + private UserJpaRepo userJpaRepo; + + @Autowired + private PasswordEncoder passwordEncoder; + + @Before + public void setUp() throws Exception { + userJpaRepo.save(User.builder().uid("happydaddy@naver.com").name("happydaddy").password(passwordEncoder.encode("1234")).roles(Collections.singletonList("ROLE_USER")).build()); + } + @Test public void signin() throws Exception { MultiValueMap params = new LinkedMultiValueMap<>(); @@ -95,8 +111,8 @@ public class SignControllerTest { .andExpect(jsonPath("$.code").value(-1004)); } - @Test - public void signUpProvider() throws Exception { + @Test @Ignore + public void signUpSocial() throws Exception { MultiValueMap params = new LinkedMultiValueMap<>(); params.add("accessToken", "HizF3ir9522bMW3shkO0x0T9zBdXFCW1WsF56Qo9dVsAAAFqMwTqHw"); params.add("name", "kakaoKing!"); @@ -107,8 +123,8 @@ public class SignControllerTest { .andExpect(jsonPath("$.code").value(0)); } - @Test - public void signInProvider() throws Exception { + @Test @Ignore + public void signInSocial() throws Exception { MultiValueMap params = new LinkedMultiValueMap<>(); params.add("accessToken", "HizF3ir9522bMW3shkO0x0T9zBdXFCW1WsF56Qo9dVsAAAFqMwTqHw"); mockMvc.perform(post("/v1/signin/kakao").params(params)) diff --git a/src/test/java/com/rest/api/controller/v1/UserControllerTest.java b/src/test/java/com/rest/api/controller/v1/UserControllerTest.java index 1f54444..a4d410a 100644 --- a/src/test/java/com/rest/api/controller/v1/UserControllerTest.java +++ b/src/test/java/com/rest/api/controller/v1/UserControllerTest.java @@ -1,5 +1,8 @@ package com.rest.api.controller.v1; +import com.rest.api.entity.User; +import com.rest.api.repo.UserJpaRepo; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -7,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.json.JacksonJsonParser; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @@ -16,6 +20,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import java.util.Collections; +import java.util.Optional; + +import static org.junit.Assert.assertTrue; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @@ -29,10 +37,17 @@ public class UserControllerTest { @Autowired private MockMvc mockMvc; + @Autowired + private UserJpaRepo userJpaRepo; + + @Autowired + private PasswordEncoder passwordEncoder; + private String token; @Before public void setUp() throws Exception { + userJpaRepo.save(User.builder().uid("happydaddy@naver.com").name("happydaddy").password(passwordEncoder.encode("1234")).roles(Collections.singletonList("ROLE_USER")).build()); MultiValueMap params = new LinkedMultiValueMap<>(); params.add("id", "happydaddy@naver.com"); params.add("password", "1234"); @@ -50,6 +65,10 @@ public class UserControllerTest { token = jsonParser.parseMap(resultString).get("data").toString(); } + @After + public void tearDown() throws Exception { + } + @Test public void invalidToken() throws Exception { mockMvc.perform(MockMvcRequestBuilders @@ -109,8 +128,10 @@ public class UserControllerTest { @Test public void delete() throws Exception { + Optional user = userJpaRepo.findByUid("happydaddy@naver.com"); + assertTrue(user.isPresent()); mockMvc.perform(MockMvcRequestBuilders - .delete("/v1/user/2") + .delete("/v1/user/" + user.get().getMsrl()) .header("X-AUTH-TOKEN", token)) .andDo(print()) .andExpect(status().isOk()) diff --git a/src/test/java/com/rest/api/service/social/KakaoServiceTest.java b/src/test/java/com/rest/api/service/social/KakaoServiceTest.java index bd2f1da..a06288b 100644 --- a/src/test/java/com/rest/api/service/social/KakaoServiceTest.java +++ b/src/test/java/com/rest/api/service/social/KakaoServiceTest.java @@ -1,6 +1,7 @@ package com.rest.api.service.social; import com.rest.api.model.social.KakaoProfile; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +17,7 @@ public class KakaoServiceTest { @Autowired private KakaoService kakaoService; - @Test + @Test @Ignore public void whenGetKakaoProfile_thenReturnProfile() { String accessToken = "xjsMzpQtIr4w13FIQvL3R7BW7X4yvm1KmzXCTwopyWAAAAFqMxEcwA";