diff --git a/charts/airdrop-service/Chart.yaml b/charts/airdrop-service/Chart.yaml index 6e289d7c38859534b578336986c42de8bf85f597..c3f1ed92cb78333f84bbfc4a768ac19fbbef6917 100644 --- a/charts/airdrop-service/Chart.yaml +++ b/charts/airdrop-service/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Airdrop service. name: airdrop-service -version: 0.2.0 +version: 0.3.0 diff --git a/charts/airdrop-service/templates/qoinPro-header-secrets.yaml b/charts/airdrop-service/templates/qoinpro-header-sealedsecrets.yaml similarity index 61% rename from charts/airdrop-service/templates/qoinPro-header-secrets.yaml rename to charts/airdrop-service/templates/qoinpro-header-sealedsecrets.yaml index 9da1a4aa400d7f8758d6986c2c4d612ade65c7d9..b3e8bd11e5ee7be123bb8902e46e56b8a903f007 100644 --- a/charts/airdrop-service/templates/qoinPro-header-secrets.yaml +++ b/charts/airdrop-service/templates/qoinpro-header-sealedsecrets.yaml @@ -1,14 +1,15 @@ -{{- if .Values.authentication.qoinPro.header.value}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "airdrop-service.fullname" . }}-qoinpro-key - labels: - app: {{ template "airdrop-service.name" . }} - chart: {{ template "airdrop-service.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -type: Opaque -data: - qoinPro: {{ .Values.authentication.qoinPro.header.value | b64enc | quote }} -{{- end }} +{{- if .Values.authentication.qoinPro.header.value}} +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro-key + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + encryptedData: + # QoinPro header secrets. + qoinPro: {{ .Values.authentication.qoinPro.header.value }} +{{- end }} \ No newline at end of file diff --git a/charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml b/charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml new file mode 100644 index 0000000000000000000000000000000000000000..303224bfdf8aa613dc2ed6c3c3db9e0cac4cdbbe --- /dev/null +++ b/charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml @@ -0,0 +1,16 @@ +{{- if .Values.users.qoinPro.secret}} +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro-user + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + encryptedData: + # QoinPro header secrets. + secret: {{ .Values.users.qoinPro.secret }} + password: {{ .Values.users.qoinPro.password }} +{{- end }} \ No newline at end of file diff --git a/charts/airdrop-service/templates/qoinpro-users-secrets.yaml b/charts/airdrop-service/templates/qoinpro-users-secrets.yaml deleted file mode 100644 index 3df5b232db8b7ce25e203e58fde134ef2376a6ff..0000000000000000000000000000000000000000 --- a/charts/airdrop-service/templates/qoinpro-users-secrets.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "airdrop-service.fullname" . }}-qoinpro-user - labels: - app: {{ template "airdrop-service.name" . }} - chart: {{ template "airdrop-service.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -type: Opaque -data: - secret: {{ .Values.users.qoinPro.secret | b64enc | quote }} - password: {{ .Values.users.qoinPro.password | b64enc | quote }} \ No newline at end of file diff --git a/charts/airdrop-service/templates/serviceentry-qoinpro.yaml b/charts/airdrop-service/templates/serviceentry-qoinpro.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c382ab7b2f38ebae44ada85c0fa3bd4d3c75db05 --- /dev/null +++ b/charts/airdrop-service/templates/serviceentry-qoinpro.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: ServiceEntry +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + hosts: + - {{ .Values.external.hosts.qoinPro }} + location: MESH_EXTERNAL + ports: + - number: 443 + name: https + protocol: HTTPS + resolution: DNS \ No newline at end of file diff --git a/charts/airdrop-service/templates/virtualservice-qoinpro.yaml b/charts/airdrop-service/templates/virtualservice-qoinpro.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fc98eb7bee0aafaab4e158a8bad8871b42356dc3 --- /dev/null +++ b/charts/airdrop-service/templates/virtualservice-qoinpro.yaml @@ -0,0 +1,16 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + hosts: + - {{ .Values.external.hosts.qoinPro }} + https: + - route: + - destination: + host: {{ .Values.external.hosts.qoinPro }} \ No newline at end of file diff --git a/charts/airdrop-service/values.yaml b/charts/airdrop-service/values.yaml index 2cea37be20e700a3232b965c238be31444258ce3..781bedbbbb2e3d1c459e59d1793164afb74303aa 100644 --- a/charts/airdrop-service/values.yaml +++ b/charts/airdrop-service/values.yaml @@ -81,16 +81,16 @@ authentication: qoinPro: header: name: "x-api-key" - value: "NEzzAZLl0Ma1Jos1bqqfk2TFHTywQ0Qo9IAFaO0y" + value: "" # QOIN-PRO TOKEN AUTHENTICATION DETAILS users: qoinPro: client: "qoinPro" - secret: "qoinProSecret" - userName: "qoinPro" - password: "qoinProPassword" + secret: "" + userName: "" + password: "" readinessProbe: exec: diff --git a/releases/dev/airdrop-service.yaml b/releases/dev/airdrop-service.yaml index dfa22539b6dad7dac1c6c2bec030496d3c790b5f..e05ac8997f7384e47e5a0f8ca666504204e70b56 100644 --- a/releases/dev/airdrop-service.yaml +++ b/releases/dev/airdrop-service.yaml @@ -63,26 +63,33 @@ spec: # REST PROPERTIES rest: pushService: - address: "http://localhost:8082" + address: "http://35.198.110.223:8888" qoinPro: address: "https://apis.qoinpro.com" + # External Hosts + external: + hosts: + qoinPro: "apis.qoinpro.com" # LOGGING PROPERTIES logging: level: - root: WARN + root: INFO # QOIN PRO HEADER authentication: qoinPro: header: name: "x-api-key" - value: "NEzzAZLl0Ma1Jos1bqqfk2TFHTywQ0Qo9IAFaO0y" + # sealedsecret + value: "AgA5cMx5F5Pcx1gmBbwXm5LKOrsJf2R+0rTWHu3xmzaMxcEtj2Ov52I5EvoU40JqcUxwtV577PhkYuvGUZXTD407LiW2cduzyOuBBfc/FxV2Dr6ynvK8i+pLmRnKva86KThsVRSLA+ScRQS/h7GRMX1/OUm6da66qDeDsOzD1eB78MmNMq5WgiADGLI6kCzlzPfARo7ccMX0nnqQNuTJLsMbyjyi/qpy7BSShsUMxSliTOVFAQWNaxAz9qy36MIkM1+14J4OgcRP5zfLUxY+SFWeBRofkywjQYrsRG58jFDQenesmww/40sseZ8ZXJRjH4A+XyOxac1Hp22wGM8nv0RcCCopstKJuCLgxXjwN3RdeDfT4wW1vwZApvkz0CcqGOWb4NLoY2p8EsJYrYai1B4DkHyBo8pqKGLONOTD+culVWCipiH8vwrR0xqOjY6kOClf92r+I5Z4xfLnip8pA0ds3HyiUFskq12a3gZIjE4n3fhsfp94+BBJa9TbQY0LOqJ5QUbhiYjD+6/3lXxUr7xpZF+gHeMzXavJOBPQ+vRuKwHxa93JKIqkcGTqIt8tEHN7geshKjVMRd8EOctj7MsXQc/rny7AveEunHzRCWx4S/W0d7vDK8rtUIwmIXEY24WJeP8FJKvu4wfyZh93NfWpQKOwOkc7mc80KcDW6jCw91ec+3M88P8XSG2klTmoPqMd6bJaGuaJTn+F2x6vIO5rfPshkZ3Nb27OB3qE6ignsnPGerXCFVCk" # QOIN-PRO TOKEN AUTHENTICATION DETAILS users: qoinPro: client: "qoinPro" - secret: "qoinProSecret" + # sealedsecret + secret: "AgAk4triZRIrMV9UJe7j/4pu75rgGss1/nw/Lg/6kjx5DRHyr+/K3fvGGEqyln/rqdN7UMnjzBh5S4i922YIDI2Kq7PansE9IOJC34CpSXzPFjMeHL51QA0Fakq0p08m0BC/PgZu9n3/xndJhU0FDvyqmxnIsJX4hbe+C8+OX4i/prMev+Wy/kauadgUgeVhLJRmiX1fKvVH987c+RQTJBBpBUaBuli0KUeg9kmOUkLZ4okHgwoCeqH8/8GPAJWH1Dnv2rWrkNl8ktfrZXS7doN87afPoq1waaICOVz63pVvlbiapQ1K+Nos7h/0vphlV8RWzprCC3aQhiTsK1eEAKcc5i0WOJSOAkoBd+tBkKm2By9m1OuIWUYv+bPaNZP4apKOWfPERE8sXgdUJndcPtZ6R8BArho2PolJFzxdX7lPrJeYdsBj1N30SaFOMUoZt9LkRNU5LdORmDjy7bH7Gqsnvm70IgRvy0X2snBMhiCRZJ1tMhHesOfsoTEErFHdJRQQuQXpQ3V3MfI8QiTXjV3FnEYhOVA4DulORylTl47h8ElkRROw+T43GOYdN5H3mDaZ9bZg4eiDHyYlroBs6yZiXoE3iWPDP21tyWBXdAjmpK7h0xuy2RgjS+hIj0+ko4KrAhMgb8FbWCJUVILJBh/+edB/5zOccFEkRMrDCNi5tVEMZSBlLo/pCK2p6/eN99KL0YKbyIzmm/duHbW/" userName: "qoinPro" - password: "qoinProPassword" + # sealedsecret + password: "AgBZT9xKdEHVoHe4+tClMAFZgX0+ByihYOKb2JoefQQ0GN+YlWDZKZV5eCXIfHj6vJboy4dJ6J5/zWhyjdmVXNU1kKd8f7UpGpuPpem1SQH0YEFYQecJYOqjKE5wgGtm9mW40IjXJ090PkNWijRffrweZ+ST95gYON/D4N3DfJNc7nFEfK+uyjaGEiz7xqCynzFji/KwHhIMbNpvltB6ZDJ1oQrP+595p7i0i52IhqQPXrErzra7XzmHIemHbBQwNGchgAiUUCR67Sjaumh0//jg20TVGeaknxCsAF4y9rKvp6pFXmb6oknS1HhaEyIpTrSnXOqs1gqw/1Ez7LWl7fqGc6AuR4CRgsf035o6TZ2BB5KeBGRcUx+FhwxArqd/dSGWLWUeZUrREuIcJveD7qOicCymusgvNfq/3VgzzSAW0Cck/JBGqMdlGqHB+PHrW829h44dSjppQyA7QHJv62pz/NJqI6kawyUEfr8y/LEyXCxNoAp6SsMWFulo6xJiGis99n4vSFmCBRLdIUf0TSiZut0gLzfaZnCNsj1hfmGsm1a8oIbD/y3gfBjVKZIKkMvYk1RfGsjoWfEM2T3TyRxR9kXY0S6vBiIxArNsj11orDgf6qz27Dw9IBEu9q6e4+i60nM7pmGgTJHab6O33M9rsMxJDXxFFgzB27wR/RvXSzsMuI4RRR0Zz4jGjkB2XSJFwJvNey3qsOGYjkmwaDY=" # readinessProbe readinessProbe: exec: diff --git a/releases/staging/airdrop-service.yaml b/releases/staging/airdrop-service.yaml index 3a0c753a2218aa0a4c171fd21fa6b33826504b64..512bedc03133e9f6364a2f682442c0a8bd471d12 100644 --- a/releases/staging/airdrop-service.yaml +++ b/releases/staging/airdrop-service.yaml @@ -63,26 +63,33 @@ spec: # REST PROPERTIES rest: pushService: - address: "http://localhost:8082" + address: "http://35.198.110.223:8888" qoinPro: address: "https://apis.qoinpro.com" + # External Hosts + external: + hosts: + qoinPro: "apis.qoinpro.com" # LOGGING PROPERTIES logging: level: - root: WARN + root: INFO # QOIN PRO HEADER authentication: qoinPro: header: name: "x-api-key" - value: "NEzzAZLl0Ma1Jos1bqqfk2TFHTywQ0Qo9IAFaO0y" + # sealedsecret + value: "AgCZ+Ry2bVS5hkcWUp2dMqBBZwZCU/LygywUYHeFqYzssYYxMaZxTziyU8DTJxOesGxpKCWmb17mdFwmwrAcgTL4JJnibMNVsxMSN10wT9iRHFc+HgynXqU0112qoN5LBPvqNJz2zMitEf9u8KIe/lxwCd0WUCfdfk14Egt9BvK05Nus22j5qtNMOfS3+VpxGvfxF+d4kWGUm1uR+Ac0FLVNqDe3cgfOtw4gz+rsz9jETm5C5tW+sN5msW/iIZUQxfq2kUPdeNpv+07TKj5OQw1+TK0nTjYnTWkCTtgm0MzoK6327hmJ/DgKSjek8PWqxLp11CMPrmo5/xf9/n3PZ40N+tzS5I1jKnP0mZLdkybqxyvJkOnzAWy6HFrhd1aMMgVNVjvmdrWGmFNAwTrVgFMFSkPzQxVzJNQNM6AFhwooeUAqOAuWAoZiF40Zrg16Q2NBcUMrSqhn9zlCurmF1+DHhjgHPI5Vp8JXAqTsgUgx9Bz5M3t82PjTU+gOZeySkNnSewmkuUyniikBGwafF/sQEPsHyueCN0cWi2kqiO35JfO2PuRJvLj9GrvHc/oFLok6lWqtMejOoBkO+OxAOgJjy3WkwDqab4w73mDciUjI5Tu28+JaUt4kQIOjTAXOMH4D3rB5ck1NCRbV9c/ZUiTFP1dYa14SBNAPgRrmDDrMNq4+a7pKd5qaUq6p7XSQPt5YYzs5R1kpQCyMAmsxaZbyMKd2FQtylHjJPKXacfCP6bZTEtVGXeHa" # QOIN-PRO TOKEN AUTHENTICATION DETAILS users: qoinPro: client: "qoinPro" - secret: "qoinProSecret" + # sealedsecret + secret: "AgCZLGAR7zs9QGqAcXhu50g4I+zebR8sMINvA5cUWf2WekgtnOSJ7wP9pJQSkueARoWtwRX9gE8ei/lnyBg4BZR+ctqPY+YQwPU8o72fm481I8HM3mzTqe0Nsu0SP9uzfL/XXR//OEWGWBeKl7vvTyS7lLVLw4yTwcfLZE6oZfA60HCB9vFBmeXGuiYlxZLj/DvbJRAkuYKpCsKdGNOzq95lZR73vTfbXCh+VAn73jkisvyvDPgPqAkcJVCA/OCvPQtfPP1EJyxutIm1NdO/vufvecVtH/uSPopmVRvfjTkyCX65iDPE9Lr2kOW6WiUo0XBqxi4fxpBMR9HjjgIKOE7R9eEUz4/DtjSqcgjwOOkTNa7Jt+Od1xlxKdp7Z9CC07WPt52PtXZpdMdJmZQqOgfH6pvnqWW9CiNWJhgYe74XLU7NcHUCgYx4jEfYbv9+f+gYR0F4dBeQpsrd9bViTw22lolZPAnIRnUKyv/6ftRGy74IQP3r1OXb2izApSipKZYtUnwMFEJgW1P/l0RCsAdrx2vIVzb6qetOQRO8ysRrSB8LQxO/TFPxZ/LvnAuDXW4Owm9UW0/HQu86RaSX3nKgu+Of3HXQAuZcaFGw5EJHA20hcClwRz/cleVAn4jVqF6MiX0zc3PTp91fYHw27ePsgK2DnYgXbzOUce6zL1ouor9XXizqZwYuKL7wljXn0/rAyZuBiJT3zqM+WoQjNS4Kqz4IU8rbwUZ5bMq9" userName: "qoinPro" - password: "qoinProPassword" + # sealedsecret + password: "AgBxc+/q5gSCquoyNg2ADBKuyoNM0zqXBZKGLqNvdP7KwXeIn3RN/cury3NeQ4Gm5YQKDGAZ9+Tl3IUISskfPrKyKNbVQI5GzYJqaHUO1q2z1nx++kKGPNXkpjrAh/e4/LYmJwW5uUfeSXrHCqHB0YwBv9D81VdXZ8wGTGn/EJ1OW0by3OXrlOQjScUj/tJjF8efzY8qwZKhjECMyGAd2akyAOT0zd+2G9sye9tC34OXX8pmQk8+30JWy9DZ5oTsOTGBiK1ouFeHIZKdH5y4DE7uLwHDiaOGz0OHpYpH36vSqB7nK6T3X/XRUsYtACUuTYlQrnisMzQBWE9n6lXolcbyhVCbfIArQGB0q4ETNJbiiGh0+9VNzvgI/H13GqaqGYSoKA9bvlCxVBKpWJ68qLlf2YGmPgU2tOXSW6YW2q6GdBLx8Z4sbDMfu73nKSsf1ozcEOUvuDMbYrwXcQxR8oYPg8oRnb97o2rKj5YqEoQWwX/VKUXpRC+f7pYe6TYgz4jox1cN90Hvi3riPRG80j8MI8vwwcnnzXjyDlBd42o6GF0AR3DRXtCb13NEMCrHekcsQW977cdZXEuRAQM6Cl1o0Y/MVKowcFaE+wEFkqdpM2P4A35jdZm6Pw28yWtryYR23Sbhgdclsm0nYXAjBm9frCX2tHpCLcMyJKVVO2JEDScQUIEqxsEbjPkY7dQbZd59IXOhIVhJLZkFdsb8" # readinessProbe readinessProbe: exec: diff --git a/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java b/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java index b52b90bf95505f89e83567a2ba1ca46460e17a12..8bcdaf2c14d0a159b24713dc625c996cad0b1f27 100644 --- a/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java +++ b/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java @@ -8,7 +8,7 @@ public interface ServiceAPIs { } interface pushService { - String pushNotification = "/dummy/pushNotification"; + String pushNotification = "/chat"; } } diff --git a/src/main/java/biz/nynja/airdrop/controller/AirdropController.java b/src/main/java/biz/nynja/airdrop/controller/AirdropController.java index 8b1ad154c434564a0fda722bf0021245ce507120..76d33d06c486d7a624a694f66999662ea241622c 100644 --- a/src/main/java/biz/nynja/airdrop/controller/AirdropController.java +++ b/src/main/java/biz/nynja/airdrop/controller/AirdropController.java @@ -198,13 +198,22 @@ public class AirdropController { return "Push Notification Test done : " + basic; } - @GetMapping("/") public String index() { + return "Airdrop Service"; + } + + @GetMapping("/test/rest/push") + public String restPush() { + + System.out.println(""); + System.out.println("Sending Push Notification"); restTemplateUtil.sendPushNotification("3dd830d4-ffa3-4327-9866-9f8d8efbb23c", 0000); + System.out.println(""); - return "Airdrop Service"; + + return "Push Notification Sent"; } diff --git a/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java b/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java index 7dec8318a6e7dd8df6ea4dec1eab84eb285beb8c..b53f09d06d12c56b9487b7afa2117771d54ce10b 100644 --- a/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java +++ b/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java @@ -13,7 +13,6 @@ import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; -import org.springframework.web.util.UriComponentsBuilder; import java.util.Base64; @@ -109,6 +108,9 @@ public class RestTemplateUtil { System.out.println("nynjaP2PUserName : " + nynjaP2PUserName); System.out.println("nynjaP2PPassword : " + nynjaP2PPassword); System.out.println(""); + System.out.println("pushNotification : "); + System.out.println(pushNotification); + System.out.println(""); String authCredentials = nynjaP2PUserName + ":" + nynjaP2PPassword; byte[] authCredentialsBytes = authCredentials.getBytes(); @@ -119,10 +121,7 @@ public class RestTemplateUtil { httpHeaders.add("Authorization", "Basic " + new String(base64Credentials)); HttpEntity request = new HttpEntity<>(httpHeaders); - - - ResponseEntity response = restTemplate.exchange("http://35.198.110.223:8888/chat/" + accountId + "/qoinpro?sender=" + nynjaP2PSender + "&message=Your verification OTP is " + otp +"", HttpMethod.GET, request, String.class); - + ResponseEntity response = restTemplate.exchange(pushNotification + "/" + accountId + "/qoinpro?sender=" + nynjaP2PSender + "&message=Your verification OTP is " + otp + "", HttpMethod.GET, request, String.class); System.out.println(""); System.out.println("Response : "); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8a3b4dd8808459903c9fc789c01ec0446b83ba3d..23ba912172c57fbe7a159b7f87391ee53653ebbf 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -37,7 +37,7 @@ grpc: # REST PROPERTIES rest: pushService: - address: "http://localhost:8082" + address: "http://35.198.110.223:8888" qoinPro: address: "https://apis.qoinpro.com" @@ -83,6 +83,7 @@ authentication: sender: qoin_pro # This will be send in request parameters. # QOIN-PRO TOKEN AUTHENTICATION DETAILS +# localhost:8080/airdrop/oauth/token -> Use this url to get access Token. for calling Airdrop APIs users: qoinPro: client: qoinPro