From 83a732104d58f7773951def3b50b68c6181f004f Mon Sep 17 00:00:00 2001 From: Abdulwahaab Ahmed Date: Sat, 24 Mar 2018 14:53:51 -0400 Subject: [PATCH 1/7] microservice init --- .../communication/controller/MessageController.java | 11 +++++++++++ config-server/config/zuul-server.yml | 2 +- config-server/src/main/resources/application.yml | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/communication/src/main/java/com/ship/communication/controller/MessageController.java b/communication/src/main/java/com/ship/communication/controller/MessageController.java index 1d3d87a..e3184e4 100644 --- a/communication/src/main/java/com/ship/communication/controller/MessageController.java +++ b/communication/src/main/java/com/ship/communication/controller/MessageController.java @@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; +import org.apache.commons.lang3.ArrayUtils; + import javax.servlet.http.HttpSession; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @@ -34,8 +36,11 @@ public class MessageController { @RequestMapping(value = "/sendMessage", method = RequestMethod.POST) public Message sendMessage(@RequestBody Message message, @CookieValue("SESSION") String cookie) { + if (check_rank(authentication.getName(), message.getRecipient()) { checkAccess(new ActionDto(message.getRecipient()), cookie); return messageRepository.save(message); + } + return null; } @RequestMapping(value = "/messages", method = RequestMethod.GET) @@ -63,4 +68,10 @@ private void checkAccess(ActionDto actionDto, String session) { restTemplate.postForObject(url, entity, String.class); } + private boolean check_rank(String send_rank, String recipient_rank) { + String[] ranks = {"crewman", "ensign", "lieutenant", "commander", "captain", "vice_admiral", "admiral"}; + int rank = ArrayUtils.indexOf(ranks, send_rank.toLowerCase()); + return ArrayUtils.indexOf(ranks, send_rank) <= ArrayUtils.indexOf(ranks, recipient_rank.toLowerCase()); + } + } diff --git a/config-server/config/zuul-server.yml b/config-server/config/zuul-server.yml index a0813de..16c8ff4 100644 --- a/config-server/config/zuul-server.yml +++ b/config-server/config/zuul-server.yml @@ -2,7 +2,7 @@ spring: application.name: zuul-server server: - port: ${PORT:9090} + port: ${PORT:3000} eureka.client.region: default eureka.client.registryFetchIntervalSeconds: 5 diff --git a/config-server/src/main/resources/application.yml b/config-server/src/main/resources/application.yml index 8a7b0bc..85127c5 100644 --- a/config-server/src/main/resources/application.yml +++ b/config-server/src/main/resources/application.yml @@ -18,7 +18,7 @@ security.user: --- spring: profiles: native - cloud.config.server.native.search-locations: file:///${user.home}/Documents/wilau2/cs-games-2018-relay-cloud/config-server/config + cloud.config.server.native.search-locations: file:///Users/abdulwahaabahmed/dev/csgames/relay/cs-games-2018-relay-cloud/config-server/config eureka: client: From 27c779383a880ed0fe2623335e89db1eb9521305 Mon Sep 17 00:00:00 2001 From: MetaDark Date: Sat, 24 Mar 2018 15:21:08 -0400 Subject: [PATCH 2/7] Added java docker files for all projects --- authorization/Dockerfile | 24 ++++++++++++++++++++++++ communication/Dockerfile | 28 ++++++++++++++++++++++++++++ config-server/Dockerfile | 24 ++++++++++++++++++++++++ eureka-server/Dockerfile | 24 ++++++++++++++++++++++++ zuul-server/Dockerfile | 24 ++++++++++++++++++++++++ 5 files changed, 124 insertions(+) create mode 100644 authorization/Dockerfile create mode 100644 communication/Dockerfile create mode 100644 config-server/Dockerfile create mode 100644 eureka-server/Dockerfile create mode 100644 zuul-server/Dockerfile diff --git a/authorization/Dockerfile b/authorization/Dockerfile new file mode 100644 index 0000000..d16f95c --- /dev/null +++ b/authorization/Dockerfile @@ -0,0 +1,24 @@ +# +# OpenJDK Java 7 JRE Dockerfile +# +# https://github.com/dockerfile/java +# https://github.com/dockerfile/java/tree/master/openjdk-7-jre +# + +# Pull base image. +FROM dockerfile/ubuntu + +# Install Java. +RUN \ + apt-get update && \ + apt-get install -y openjdk-7-jre && \ + rm -rf /var/lib/apt/lists/* + +# Define working directory. +WORKDIR /data + +# Define commonly used JAVA_HOME variable +ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64 + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/communication/Dockerfile b/communication/Dockerfile new file mode 100644 index 0000000..cc406b9 --- /dev/null +++ b/communication/Dockerfile @@ -0,0 +1,28 @@ +# +# Oracle Java 8 Dockerfile +# +# https://github.com/dockerfile/java +# https://github.com/dockerfile/java/tree/master/oracle-java8 +# + +# Pull base image. +FROM dockerfile/ubuntu + +# Install Java. +RUN \ + echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \ + add-apt-repository -y ppa:webupd8team/java && \ + apt-get update && \ + apt-get install -y oracle-java8-installer && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/oracle-jdk8-installer + + +# Define working directory. +WORKDIR /data + +# Define commonly used JAVA_HOME variable +ENV JAVA_HOME /usr/lib/jvm/java-8-oracle + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/config-server/Dockerfile b/config-server/Dockerfile new file mode 100644 index 0000000..d16f95c --- /dev/null +++ b/config-server/Dockerfile @@ -0,0 +1,24 @@ +# +# OpenJDK Java 7 JRE Dockerfile +# +# https://github.com/dockerfile/java +# https://github.com/dockerfile/java/tree/master/openjdk-7-jre +# + +# Pull base image. +FROM dockerfile/ubuntu + +# Install Java. +RUN \ + apt-get update && \ + apt-get install -y openjdk-7-jre && \ + rm -rf /var/lib/apt/lists/* + +# Define working directory. +WORKDIR /data + +# Define commonly used JAVA_HOME variable +ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64 + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/eureka-server/Dockerfile b/eureka-server/Dockerfile new file mode 100644 index 0000000..d16f95c --- /dev/null +++ b/eureka-server/Dockerfile @@ -0,0 +1,24 @@ +# +# OpenJDK Java 7 JRE Dockerfile +# +# https://github.com/dockerfile/java +# https://github.com/dockerfile/java/tree/master/openjdk-7-jre +# + +# Pull base image. +FROM dockerfile/ubuntu + +# Install Java. +RUN \ + apt-get update && \ + apt-get install -y openjdk-7-jre && \ + rm -rf /var/lib/apt/lists/* + +# Define working directory. +WORKDIR /data + +# Define commonly used JAVA_HOME variable +ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64 + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/zuul-server/Dockerfile b/zuul-server/Dockerfile new file mode 100644 index 0000000..d16f95c --- /dev/null +++ b/zuul-server/Dockerfile @@ -0,0 +1,24 @@ +# +# OpenJDK Java 7 JRE Dockerfile +# +# https://github.com/dockerfile/java +# https://github.com/dockerfile/java/tree/master/openjdk-7-jre +# + +# Pull base image. +FROM dockerfile/ubuntu + +# Install Java. +RUN \ + apt-get update && \ + apt-get install -y openjdk-7-jre && \ + rm -rf /var/lib/apt/lists/* + +# Define working directory. +WORKDIR /data + +# Define commonly used JAVA_HOME variable +ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64 + +# Define default command. +CMD ["bash"] \ No newline at end of file From cd08f42dd9dc6404348f49aed031227e43257089 Mon Sep 17 00:00:00 2001 From: MetaDark Date: Sat, 24 Mar 2018 15:36:30 -0400 Subject: [PATCH 3/7] Added stubs for building docker --- authorization/build.gradle | 4 ++++ build.gradle | 4 ++++ communication/build.gradle | 4 ++++ config-server/build.gradle | 4 ++++ eureka-server/build.gradle | 4 ++++ zuul-server/build.gradle | 4 ++++ 6 files changed, 24 insertions(+) diff --git a/authorization/build.gradle b/authorization/build.gradle index fc88512..751c7ce 100644 --- a/authorization/build.gradle +++ b/authorization/build.gradle @@ -11,3 +11,7 @@ dependencies { testCompile 'org.springframework.boot:spring-boot-starter-test' compile 'org.springframework.cloud:spring-cloud-starter-config' } + +task buildDocker { + +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3b319c2..fc2a580 100644 --- a/build.gradle +++ b/build.gradle @@ -42,4 +42,8 @@ subprojects { maven { url 'https://repo.spring.io/libs-snapshot' } } +} + +task buildDocker { + } \ No newline at end of file diff --git a/communication/build.gradle b/communication/build.gradle index fc88512..751c7ce 100644 --- a/communication/build.gradle +++ b/communication/build.gradle @@ -11,3 +11,7 @@ dependencies { testCompile 'org.springframework.boot:spring-boot-starter-test' compile 'org.springframework.cloud:spring-cloud-starter-config' } + +task buildDocker { + +} \ No newline at end of file diff --git a/config-server/build.gradle b/config-server/build.gradle index a5e57f1..cb9b8c5 100644 --- a/config-server/build.gradle +++ b/config-server/build.gradle @@ -4,3 +4,7 @@ dependencies { compile 'org.springframework.boot:spring-boot-starter-security' testCompile 'org.springframework.boot:spring-boot-starter-test' } + +task buildDocker { + +} \ No newline at end of file diff --git a/eureka-server/build.gradle b/eureka-server/build.gradle index 67db293..a06fe52 100644 --- a/eureka-server/build.gradle +++ b/eureka-server/build.gradle @@ -5,4 +5,8 @@ dependencies { compile('org.springframework.boot:spring-boot-starter-data-redis') compile('org.springframework.session:spring-session') testCompile 'org.springframework.boot:spring-boot-starter-test' +} + +task buildDocker { + } \ No newline at end of file diff --git a/zuul-server/build.gradle b/zuul-server/build.gradle index 75cd697..90ef4ed 100644 --- a/zuul-server/build.gradle +++ b/zuul-server/build.gradle @@ -7,3 +7,7 @@ dependencies { compile 'org.springframework.cloud:spring-cloud-starter-eureka' testCompile 'org.springframework.boot:spring-boot-starter-test' } + +task buildDocker { + +} \ No newline at end of file From fdaedd0c1f35fc8c3b9cb0f94ed5efb740599d56 Mon Sep 17 00:00:00 2001 From: MetaDark Date: Sat, 24 Mar 2018 16:12:17 -0400 Subject: [PATCH 4/7] Allow sending message to one rank higher --- .../com/ship/communication/controller/MessageController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/communication/src/main/java/com/ship/communication/controller/MessageController.java b/communication/src/main/java/com/ship/communication/controller/MessageController.java index e3184e4..7b104c1 100644 --- a/communication/src/main/java/com/ship/communication/controller/MessageController.java +++ b/communication/src/main/java/com/ship/communication/controller/MessageController.java @@ -71,7 +71,7 @@ private void checkAccess(ActionDto actionDto, String session) { private boolean check_rank(String send_rank, String recipient_rank) { String[] ranks = {"crewman", "ensign", "lieutenant", "commander", "captain", "vice_admiral", "admiral"}; int rank = ArrayUtils.indexOf(ranks, send_rank.toLowerCase()); - return ArrayUtils.indexOf(ranks, send_rank) <= ArrayUtils.indexOf(ranks, recipient_rank.toLowerCase()); + return ArrayUtils.indexOf(ranks, send_rank) <= ArrayUtils.indexOf(ranks, recipient_rank.toLowerCase()) + 1; } } From d25fd3d281f39cc0de05d2fd433f8ec5c11443b4 Mon Sep 17 00:00:00 2001 From: MetaDark Date: Sat, 24 Mar 2018 16:18:18 -0400 Subject: [PATCH 5/7] Capitalized rank names --- .../com/ship/communication/controller/MessageController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/communication/src/main/java/com/ship/communication/controller/MessageController.java b/communication/src/main/java/com/ship/communication/controller/MessageController.java index 7b104c1..6dad2ce 100644 --- a/communication/src/main/java/com/ship/communication/controller/MessageController.java +++ b/communication/src/main/java/com/ship/communication/controller/MessageController.java @@ -69,7 +69,7 @@ private void checkAccess(ActionDto actionDto, String session) { } private boolean check_rank(String send_rank, String recipient_rank) { - String[] ranks = {"crewman", "ensign", "lieutenant", "commander", "captain", "vice_admiral", "admiral"}; + String[] ranks = {"CREWMAN", "ENSIGN", "LIEUTENANT", "COMMANDER", "CAPTAIN", "VICE_ADMIRAL", "ADMIRAL"}; int rank = ArrayUtils.indexOf(ranks, send_rank.toLowerCase()); return ArrayUtils.indexOf(ranks, send_rank) <= ArrayUtils.indexOf(ranks, recipient_rank.toLowerCase()) + 1; } From c13f2fc9bebe2f71d86e76e4b0b33b7f18049a41 Mon Sep 17 00:00:00 2001 From: MetaDark Date: Sat, 24 Mar 2018 16:33:10 -0400 Subject: [PATCH 6/7] Assuming the names have the rank (doubt it), fix getting the sender's rank --- .../com/ship/communication/controller/MessageController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/communication/src/main/java/com/ship/communication/controller/MessageController.java b/communication/src/main/java/com/ship/communication/controller/MessageController.java index 6dad2ce..3c77652 100644 --- a/communication/src/main/java/com/ship/communication/controller/MessageController.java +++ b/communication/src/main/java/com/ship/communication/controller/MessageController.java @@ -36,7 +36,7 @@ public class MessageController { @RequestMapping(value = "/sendMessage", method = RequestMethod.POST) public Message sendMessage(@RequestBody Message message, @CookieValue("SESSION") String cookie) { - if (check_rank(authentication.getName(), message.getRecipient()) { + if (check_rank(message.getSender(), message.getRecipient()) { checkAccess(new ActionDto(message.getRecipient()), cookie); return messageRepository.save(message); } From ff08f2d6407d55cd38d9e77d9ff976ff35b0b1ad Mon Sep 17 00:00:00 2001 From: MetaDark Date: Sat, 24 Mar 2018 16:40:28 -0400 Subject: [PATCH 7/7] Log messages --- .../ship/communication/controller/MessageController.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/communication/src/main/java/com/ship/communication/controller/MessageController.java b/communication/src/main/java/com/ship/communication/controller/MessageController.java index 3c77652..8e569f7 100644 --- a/communication/src/main/java/com/ship/communication/controller/MessageController.java +++ b/communication/src/main/java/com/ship/communication/controller/MessageController.java @@ -19,6 +19,7 @@ import org.apache.commons.lang3.ArrayUtils; import javax.servlet.http.HttpSession; +import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @@ -34,9 +35,15 @@ public class MessageController { @Autowired private MessageRepository messageRepository; + private Logger logger = Logger.getLogger(MyClass.class.getName()); + @RequestMapping(value = "/sendMessage", method = RequestMethod.POST) public Message sendMessage(@RequestBody Message message, @CookieValue("SESSION") String cookie) { if (check_rank(message.getSender(), message.getRecipient()) { + logger.info("message " + + messager.getSender() + " -> " + message.getRecipient() + ": " + + message.getTitle() + " - " + message.getContent()); + checkAccess(new ActionDto(message.getRecipient()), cookie); return messageRepository.save(message); }