diff --git a/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java new file mode 100644 index 0000000..c848e70 --- /dev/null +++ b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java @@ -0,0 +1,4 @@ +package io.bluemoon.authorizationserver2.controller; + +public class SignController { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/config/WebMvcConfig.java b/test-service/src/main/java/io/bluemoon/testservice/config/WebMvcConfig.java new file mode 100644 index 0000000..d52dbd4 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/config/WebMvcConfig.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.config; + +public class WebMvcConfig { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/config/WebSecurityConfig.java b/test-service/src/main/java/io/bluemoon/testservice/config/WebSecurityConfig.java new file mode 100644 index 0000000..d0afa68 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/config/WebSecurityConfig.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.config; + +public class WebSecurityConfig { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/controller/SignController.java b/test-service/src/main/java/io/bluemoon/testservice/controller/SignController.java new file mode 100644 index 0000000..ffd6e72 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/controller/SignController.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.controller; + +public class SignController { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/domain/user/User.java b/test-service/src/main/java/io/bluemoon/testservice/domain/user/User.java new file mode 100644 index 0000000..a8c0460 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/domain/user/User.java @@ -0,0 +1,10 @@ +package io.bluemoon.testservice.domain; + +import lombok.Data; + +@Data +public class User { + + private String username; + private String password; +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/domain/user/UserRepository.java b/test-service/src/main/java/io/bluemoon/testservice/domain/user/UserRepository.java new file mode 100644 index 0000000..c6913e5 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/domain/user/UserRepository.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.domain.user; + +public interface UserRepository { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/handler/CustomAuthFailureHandler.java b/test-service/src/main/java/io/bluemoon/testservice/handler/CustomAuthFailureHandler.java new file mode 100644 index 0000000..67351f6 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/handler/CustomAuthFailureHandler.java @@ -0,0 +1,21 @@ +package io.bluemoon.authorizationserver.config.handler; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.AuthenticationFailureHandler; +import org.springframework.stereotype.Component; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@Component +@Slf4j +public class CustomAuthFailureHandler implements AuthenticationFailureHandler { + @Override + public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { + // logging 붙이기 + System.out.println(exception.getMessage()); + } +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java new file mode 100644 index 0000000..2a1651a --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.service.user; + +public class UserEventListener { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java new file mode 100644 index 0000000..0cb9a7b --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.service.user; + +public interface UserService { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java new file mode 100644 index 0000000..59ce7a8 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java @@ -0,0 +1,4 @@ +package io.bluemoon.testservice.service.user; + +public class UserServiceImpl { +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/utils/APIRequest.java b/test-service/src/main/java/io/bluemoon/testservice/utils/APIRequest.java new file mode 100644 index 0000000..1f2d634 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/utils/APIRequest.java @@ -0,0 +1,110 @@ +package io.bluemoon.testservice.utils; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import io.bluemoon.testservice.domain.user.User; +import lombok.Getter; +import okhttp3.*; + +import java.io.IOException; +import java.lang.reflect.Modifier; +import java.util.List; +import java.util.Map; + +public class APIRequest { + + private static IRequestExecutor iRequestExecutor = new DefaultRequestExecutor(); + + public static IRequestExecutor getIRequestExecutor() { + return iRequestExecutor; + } + + public interface IRequestExecutor { + ResponseWrapper createOAuthUser(User user) throws IOException; + ResponseWrapper updateOAuthUser(User user); + + ResponseWrapper createOAuthClientDetails(); + ResponseWrapper updateOAuthClientDetials(); + } + + public static class DefaultRequestExecutor implements IRequestExecutor { + static okhttp3.OkHttpClient client = null; + static void init() { + client = new okhttp3.OkHttpClient(); + } + static { + init(); + } + + + @Override + public ResponseWrapper createOAuthUser(User user) throws IOException { + String url = ""; + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + String jsonString = gson.toJson(user); + + RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonString); + + Request request = new Request.Builder() + .url(url) + .post(body) + .header("Content-type", "application/json") + .build(); + + Call call = client.newCall(request); + Response response = call.execute(); + ResponseWrapper result = new ResponseWrapper(response.body().string(), convertToString(response.headers())); + + return null; + } + + @Override + public ResponseWrapper updateOAuthUser(User user) { + return null; + } + + @Override + public ResponseWrapper createOAuthClientDetails() { + return null; + } + + @Override + public ResponseWrapper updateOAuthClientDetials() { + return null; + } + } + + private static String convertToString(Object input) { + if (input == null) { + return "null"; + } else if (input instanceof Map) { + Gson gson = new GsonBuilder() + .excludeFieldsWithModifiers(Modifier.STATIC) + .excludeFieldsWithModifiers(Modifier.PROTECTED) + .disableHtmlEscaping() + .create(); + return gson.toJson((Map)input); + } else if (input instanceof List) { + Gson gson = new GsonBuilder() + .excludeFieldsWithModifiers(Modifier.STATIC) + .excludeFieldsWithModifiers(Modifier.PROTECTED) + .disableHtmlEscaping() + .create(); + return gson.toJson((List)input); + } else { + return input.toString(); + } + } + + @Getter + public static class ResponseWrapper { + private String body; + private String header; + + public ResponseWrapper(String body, String header) { + this.body = body; + this.header = header; + } + } + +} diff --git a/test-service/src/main/resources/templates/signIn.html b/test-service/src/main/resources/templates/signIn.html new file mode 100644 index 0000000..f6bb88b --- /dev/null +++ b/test-service/src/main/resources/templates/signIn.html @@ -0,0 +1,47 @@ + + + + + + +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+ + + +
+ +
+ Facebook +
+ +
+ Google +
+
+ + + + + + + + + + + + \ No newline at end of file