Postman tests up 05/94105/1
authorDominik Mizyn <d.mizyn@samsung.com>
Thu, 22 Aug 2019 12:04:44 +0000 (14:04 +0200)
committerDominik Mizyn <d.mizyn@samsung.com>
Thu, 22 Aug 2019 12:04:47 +0000 (14:04 +0200)
Postman tests up

Issue-ID: PORTAL-710
Change-Id: I2bdb4ba12b35f7c17014eff2a68fd5534e307bbd
Signed-off-by: Dominik Mizyn <d.mizyn@samsung.com>
portal-BE/deliveries/postman/Portal.postman_collection.json [new file with mode: 0644]
portal-BE/src/main/java/org/onap/portal/configuration/SecurityConfig.java
portal-BE/src/main/java/org/onap/portal/controller/LanguageController.java
portal-BE/src/main/java/org/onap/portal/domain/db/fn/FnLanguage.java
portal-BE/src/main/resources/application.properties

diff --git a/portal-BE/deliveries/postman/Portal.postman_collection.json b/portal-BE/deliveries/postman/Portal.postman_collection.json
new file mode 100644 (file)
index 0000000..e0b51e9
--- /dev/null
@@ -0,0 +1,267 @@
+{
+       "info": {
+               "_postman_id": "1c6e52dd-039b-400b-a986-49d25e5a1428",
+               "name": "Portal",
+               "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+       },
+       "item": [
+               {
+                       "name": "LanguageController",
+                       "item": [
+                               {
+                                       "name": "localhost:8080/auxapi/languageSetting/user/2",
+                                       "event": [
+                                               {
+                                                       "listen": "test",
+                                                       "script": {
+                                                               "id": "2fc1aa20-6048-4500-bdd2-5b2cc070f27c",
+                                                               "exec": [
+                                                                       "pm.test(\"Status code is 200\", function () {",
+                                                                       "    pm.response.to.have.status(200);",
+                                                                       "});",
+                                                                       "pm.test(\"Response time is less than 200ms\", function () {",
+                                                                       "    pm.expect(pm.response.responseTime).to.be.below(200);",
+                                                                       "});"
+                                                               ],
+                                                               "type": "text/javascript"
+                                                       }
+                                               }
+                                       ],
+                                       "request": {
+                                               "auth": {
+                                                       "type": "basic",
+                                                       "basic": [
+                                                               {
+                                                                       "key": "password",
+                                                                       "value": "4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=",
+                                                                       "type": "string"
+                                                               },
+                                                               {
+                                                                       "key": "username",
+                                                                       "value": "demo",
+                                                                       "type": "string"
+                                                               }
+                                                       ]
+                                               },
+                                               "method": "GET",
+                                               "header": [],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": ""
+                                               },
+                                               "url": {
+                                                       "raw": "localhost:8080/auxapi/languageSetting/user/2",
+                                                       "host": [
+                                                               "localhost"
+                                                       ],
+                                                       "port": "8080",
+                                                       "path": [
+                                                               "auxapi",
+                                                               "languageSetting",
+                                                               "user",
+                                                               "2"
+                                                       ]
+                                               }
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "localhost:8080/auxapi/language",
+                                       "request": {
+                                               "method": "GET",
+                                               "header": [],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": ""
+                                               },
+                                               "url": {
+                                                       "raw": "localhost:8080/auxapi/language",
+                                                       "host": [
+                                                               "localhost"
+                                                       ],
+                                                       "port": "8080",
+                                                       "path": [
+                                                               "auxapi",
+                                                               "language"
+                                                       ]
+                                               }
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "localhost:8080/auxapi/language",
+                                       "event": [
+                                               {
+                                                       "listen": "test",
+                                                       "script": {
+                                                               "id": "2fc1aa20-6048-4500-bdd2-5b2cc070f27c",
+                                                               "exec": [
+                                                                       "pm.test(\"Status code is 200\", function () {",
+                                                                       "    pm.response.to.have.status(200);",
+                                                                       "});",
+                                                                       "pm.test(\"Response time is less than 200ms\", function () {",
+                                                                       "    pm.expect(pm.response.responseTime).to.be.below(200);",
+                                                                       "});"
+                                                               ],
+                                                               "type": "text/javascript"
+                                                       }
+                                               }
+                                       ],
+                                       "request": {
+                                               "auth": {
+                                                       "type": "basic",
+                                                       "basic": [
+                                                               {
+                                                                       "key": "password",
+                                                                       "value": "4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=",
+                                                                       "type": "string"
+                                                               },
+                                                               {
+                                                                       "key": "username",
+                                                                       "value": "demo",
+                                                                       "type": "string"
+                                                               }
+                                                       ]
+                                               },
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "name": "Content-Type",
+                                                               "value": "application/json",
+                                                               "type": "text"
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"languageName\": \"PL\",\n    \"languageAlias\": \"Polish\"\n}"
+                                               },
+                                               "url": {
+                                                       "raw": "localhost:8080/auxapi/language",
+                                                       "host": [
+                                                               "localhost"
+                                                       ],
+                                                       "port": "8080",
+                                                       "path": [
+                                                               "auxapi",
+                                                               "language"
+                                                       ]
+                                               }
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "localhost:8080/auxapi/language",
+                                       "event": [
+                                               {
+                                                       "listen": "test",
+                                                       "script": {
+                                                               "id": "2fc1aa20-6048-4500-bdd2-5b2cc070f27c",
+                                                               "exec": [
+                                                                       "pm.test(\"Status code is 200\", function () {",
+                                                                       "    pm.response.to.have.status(200);",
+                                                                       "});",
+                                                                       "",
+                                                                       "pm.test(\"Response time is less than 200ms\", function () {",
+                                                                       "    pm.expect(pm.response.responseTime).to.be.below(200);",
+                                                                       "});",
+                                                                       "",
+                                                                       "var customer = JSON.parse(responseBody);",
+                                                                       "",
+                                                                       "tests[\"Message is valid\"] = customer.message === \"FAILURE\"",
+                                                                       "tests[\"Status is valid\"] = customer.status === \"ERROR\"",
+                                                                       "tests[\"Response is valid\"] = customer.response === \"FnLanguage is not valid, may have unsafe html content\""
+                                                               ],
+                                                               "type": "text/javascript"
+                                                       }
+                                               }
+                                       ],
+                                       "request": {
+                                               "auth": {
+                                                       "type": "basic",
+                                                       "basic": [
+                                                               {
+                                                                       "key": "password",
+                                                                       "value": "4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=",
+                                                                       "type": "string"
+                                                               },
+                                                               {
+                                                                       "key": "username",
+                                                                       "value": "demo",
+                                                                       "type": "string"
+                                                               }
+                                                       ]
+                                               },
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "name": "Content-Type",
+                                                               "value": "application/json",
+                                                               "type": "text"
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"languageName\": \"PL\",\n    \"languageAlias\": \"<script>alert(“XSS”)</script>\"\n}"
+                                               },
+                                               "url": {
+                                                       "raw": "localhost:8080/auxapi/language",
+                                                       "host": [
+                                                               "localhost"
+                                                       ],
+                                                       "port": "8080",
+                                                       "path": [
+                                                               "auxapi",
+                                                               "language"
+                                                       ]
+                                               },
+                                               "description": "XSS test"
+                                       },
+                                       "response": []
+                               }
+                       ],
+                       "auth": {
+                               "type": "basic",
+                               "basic": [
+                                       {
+                                               "key": "password",
+                                               "value": "4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=",
+                                               "type": "string"
+                                       },
+                                       {
+                                               "key": "username",
+                                               "value": "demo",
+                                               "type": "string"
+                                       }
+                               ]
+                       }
+               },
+               {
+                       "name": "http://localhost:8080/logout",
+                       "request": {
+                               "auth": {
+                                       "type": "noauth"
+                               },
+                               "method": "GET",
+                               "header": [],
+                               "body": {
+                                       "mode": "raw",
+                                       "raw": ""
+                               },
+                               "url": {
+                                       "raw": "http://localhost:8080/logout",
+                                       "protocol": "http",
+                                       "host": [
+                                               "localhost"
+                                       ],
+                                       "port": "8080",
+                                       "path": [
+                                               "logout"
+                                       ]
+                               }
+                       },
+                       "response": []
+               }
+       ]
+}
\ No newline at end of file
index c73f7d5..b9e6033 100644 (file)
@@ -83,7 +83,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                       .permitAll()
                       .and()
                       .logout()
-                      .permitAll();
+                      .permitAll()
+                      .and()
+                      .httpBasic();
 
               http.csrf().disable();
               http.headers().frameOptions().disable();
index 2ea4ff2..97fe03d 100644 (file)
@@ -54,6 +54,7 @@ import org.onap.portal.service.fn.FnUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -102,8 +103,8 @@ public class LanguageController {
               return new FnLanguage();
        }
 
-       @PostMapping(value = "/language")
-       public PortalRestResponse<String> saveLanguage(final Principal principal, final FnLanguage fnLanguage){
+       @PostMapping(value = "/language", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+       public PortalRestResponse<String> saveLanguage(final Principal principal, @RequestBody final FnLanguage fnLanguage){
               PortalRestResponse<String> response = new PortalRestResponse<>();
               try {
                      response.setMessage("SUCCESS");
index 09cb5a6..996929e 100644 (file)
@@ -40,6 +40,7 @@
 
 package org.onap.portal.domain.db.fn;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
@@ -72,6 +73,7 @@ CREATE TABLE `fn_language` (
 @Getter
 @Setter
 @Entity
+@JsonInclude()
 @SequenceGenerator(name="seq", initialValue=3, allocationSize=100)
 public class FnLanguage {
 
@@ -82,12 +84,12 @@ public class FnLanguage {
        private Long languageId;
        @Column(name = "language_name", length = 100, nullable = false)
        @Size(max = 100)
-       @NotNull
+       @NotNull(message = "languageName must not be null")
        @SafeHtml
        private String languageName;
        @Column(name = "language_alias", length = 100, nullable = false)
        @Size(max = 100)
-       @NotNull
+       @NotNull(message = "languageAlias must not be null")
        @SafeHtml
        private String languageAlias;
 
index eb346ee..f3db062 100644 (file)
@@ -1,4 +1,4 @@
-server.port=8090
+server.port=8080
 
 spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver