{"info":{"_postman_id":"aba535f0-f0c0-459e-96ec-197d825c563c","name":"SSH Tunneling Server","description":"<html><head></head><body><p>SSH Tunneling 연결을 제공하고, 이를 관리해 주는 서비스.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"474408","collectionId":"aba535f0-f0c0-459e-96ec-197d825c563c","publishedId":"SzKPWhMh","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2020-02-16T01:50:11.000Z"},"item":[{"name":"List SSH Connections","id":"1b61318e-a122-46c2-88d9-44e97965eab4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"description":"<p>API authorization token.</p>\n","key":"Authorization","type":"text","value":"parkjunhong"},{"key":"Accept","value":"application/json","description":"<p>Only supports 'text/plain, application/json'.</p>\n","type":"text"}],"url":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections","urlObject":{"protocol":"{{scheme}}","port":"{{port}}","path":["{{context}}","connections"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"1db0e03f-cacf-40d8-b355-607a077790a5","name":"400 / Accept Type Not Supported / ","originalRequest":{"method":"GET","header":[{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"},{"key":"Accept","value":"text/plain","type":"text","disabled":true}],"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections?rtype=json","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections"],"query":[{"key":"rtype","value":"json","description":"(optional) Response Type ( json|plain)"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 16 Feb 2020 15:21:34 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"timestamp\": 1581866494114,\n    \"status\": \"400 BAD_REQUEST/Bad Request\",\n    \"session\": \"74F0A2CE00E8CBE0DC0CAAC39821C049\",\n    \"uri\": \"/sshtcm/connections\",\n    \"headers\": {\n        \"accept\": [\n            \"*/*\"\n        ],\n        \"accept-encoding\": [\n            \"gzip, deflate, br\"\n        ],\n        \"authorization\": [\n            \"parkjunhong\"\n        ],\n        \"cache-control\": [\n            \"no-cache\"\n        ],\n        \"connection\": [\n            \"keep-alive\"\n        ],\n        \"cookie\": [\n            \"JSESSIONID=74F0A2CE00E8CBE0DC0CAAC39821C049; XSRF-TOKEN=9399aa72-4ecb-47ae-9441-e0c70da18d39\"\n        ],\n        \"host\": [\n            \"127.0.0.1:18080\"\n        ],\n        \"postman-token\": [\n            \"e3e46a77-a3a5-4158-9c47-d608675e44c1\"\n        ],\n        \"user-agent\": [\n            \"PostmanRuntime/7.22.0\"\n        ]\n    },\n    \"parameters\": {\n        \"rtype\": [\n            \"json\"\n        ]\n    },\n    \"exception\": {\n        \"cause\": \"Failed to convert value of type 'java.lang.String' to required type 'open.commons.tools.ssh.controller.dto.AcceptType'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestHeader @javax.validation.constraints.NotNull open.commons.tools.ssh.controller.dto.AcceptType] for value '*/*'; nested exception is java.lang.UnsupportedOperationException: There is not a converter (interface org.springframework.core.convert.converter.Converter) for class open.commons.tools.ssh.controller.dto.AcceptType\",\n        \"type\": \"org.springframework.web.method.annotation.MethodArgumentTypeMismatchException\"\n    }\n}"},{"id":"4a457f34-0f72-426f-b1dc-972d86af8e5a","name":"200 / OK / TEXT","originalRequest":{"method":"GET","header":[{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"}],"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections?rtype=plain","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections"],"query":[{"key":"rtype","value":"plain","description":"(optional) Response Type ( json|plain)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"51"},{"key":"Date","value":"Sun, 16 Feb 2020 14:36:10 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"[0] sshtcm:10.11.1.14:22\n  [0] 30100:127.0.0.1:8080"},{"id":"b6dee95d-80b9-4a55-ad9c-29b168bb8cba","name":"200 / OK / JSON","originalRequest":{"method":"GET","header":[{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"}],"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections"],"query":[{"key":"rtype","value":"plain","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 16 Feb 2020 01:04:05 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"username\": \"sshtcm\",\n            \"host\": \"10.11.1.14\",\n            \"port\": 22,\n            \"remotePortForwardings\": [\n                {\n                    \"remotePort\": 30103,\n                    \"serviceHost\": \"127.0.0.1\",\n                    \"servicePort\": 8080,\n                    \"remotPortForwarding\": \"30103:127.0.0.1:8080\"\n                },\n                {\n                    \"remotePort\": 30100,\n                    \"serviceHost\": \"127.0.0.1\",\n                    \"servicePort\": 8080,\n                    \"remotPortForwarding\": \"30100:127.0.0.1:8080\"\n                }\n            ],\n            \"id\": \"sshtcm:10.11.1.14:22\",\n            \"tunnelingInfo\": \"sshtcm:10.11.1.14:22\\n  [0] 30103:127.0.0.1:8080\\n  [1] 30100:127.0.0.1:8080\"\n        }\n    ],\n    \"result\": true,\n    \"message\": null\n}"}],"_postman_id":"1b61318e-a122-46c2-88d9-44e97965eab4"},{"name":"Create  SSH Connection","id":"abd85aaf-f842-4117-be53-fc9e872232c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"key":"Accept","value":"application/json","description":"<p>Only supports 'text/plain, application/json'.</p>\n","type":"text"},{"description":"<p>API Authorization Token</p>\n","key":"Authorization","type":"text","value":"parkjunhong"}],"body":{"mode":"raw","raw":"{\r\n  \"tunneling\": {\r\n    \"username\": \"{{username}}\",\r\n    \"password\": \"{{password}}\",\r\n    \"sshServerHost\": \"{{ssh-server-host}}\",\r\n\t  \"sshServerPort\": 22,\r\n    \"remotePort\": {{remote-port}},\r\n    \"description\": \"test-connection\"\r\n  },\r\n  \"execution\": {\r\n    \"type\": \"NOW\",\r\n    \"begin\": 123456789,\r\n    \"end\": {\r\n      \"type\": \"DURATION\",\r\n      \"duration\": \"2d\",\r\n      \"until\": 123456789\r\n    }\r\n  }\r\n}"},"url":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{service-host}}/{{service-port}}","urlObject":{"protocol":"{{scheme}}","port":"{{port}}","path":["{{context}}","connections","{{service-host}}","{{service-port}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"60b3e36f-0f12-4723-bc7a-e6b0e18dc49c","name":"400 / Accept Type Not Supported /","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"key":"Accept","value":"application/json","description":"Only supports 'text/plain, application/json'.","type":"text","disabled":true},{"description":"API Authorization Token","key":"Authorization","type":"text","value":"parkjunhong"}],"body":{"mode":"raw","raw":"{\r\n  \"tunneling\": {\r\n    \"username\": \"{{username}}\",\r\n    \"password\": \"{{password}}\",\r\n    \"sshServerHost\": \"{{ssh-server-host}}\",\r\n\t\"sshServerPort\": 22,\r\n    \"remotePort\": {{remote-port}}\r\n  },\r\n  \"execution\": {\r\n    \"type\": \"NOW\",\r\n    \"begin\": 123456789,\r\n    \"end\": {\r\n      \"type\": \"DURATION\",\r\n      \"duration\": \"2d\",\r\n      \"until\": 123456789\r\n    }\r\n  }\r\n}"},"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{service-host}}/{{service-port}}?rtype=plain","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections","{{service-host}}","{{service-port}}"],"query":[{"key":"rtype","value":"plain","description":"(optional) Response Type ( json|plain)"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 16 Feb 2020 15:23:49 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"timestamp\": 1581866629658,\n    \"status\": \"400 BAD_REQUEST/Bad Request\",\n    \"session\": \"74F0A2CE00E8CBE0DC0CAAC39821C049\",\n    \"uri\": \"/sshtcm/connections/127.0.0.1/8080\",\n    \"headers\": {\n        \"accept\": [\n            \"*/*\"\n        ],\n        \"accept-encoding\": [\n            \"gzip, deflate, br\"\n        ],\n        \"authorization\": [\n            \"parkjunhong\"\n        ],\n        \"cache-control\": [\n            \"no-cache\"\n        ],\n        \"connection\": [\n            \"keep-alive\"\n        ],\n        \"content-length\": [\n            \"354\"\n        ],\n        \"content-type\": [\n            \"application/json\"\n        ],\n        \"cookie\": [\n            \"JSESSIONID=74F0A2CE00E8CBE0DC0CAAC39821C049; XSRF-TOKEN=9399aa72-4ecb-47ae-9441-e0c70da18d39\"\n        ],\n        \"host\": [\n            \"127.0.0.1:18080\"\n        ],\n        \"postman-token\": [\n            \"b62836e2-a3c8-44e7-8717-618ebc8cad79\"\n        ],\n        \"user-agent\": [\n            \"PostmanRuntime/7.22.0\"\n        ]\n    },\n    \"parameters\": {\n        \"rtype\": [\n            \"plain\"\n        ]\n    },\n    \"exception\": {\n        \"cause\": \"Failed to convert value of type 'java.lang.String' to required type 'open.commons.tools.ssh.controller.dto.AcceptType'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestHeader @javax.validation.constraints.NotEmpty open.commons.tools.ssh.controller.dto.AcceptType] for value '*/*'; nested exception is java.lang.UnsupportedOperationException: There is not a converter (interface org.springframework.core.convert.converter.Converter) for class open.commons.tools.ssh.controller.dto.AcceptType\",\n        \"type\": \"org.springframework.web.method.annotation.MethodArgumentTypeMismatchException\"\n    }\n}"},{"id":"64c735e7-94cd-4d4a-bde2-83b25d7005b4","name":"200 / OK / JSON","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"}],"body":{"mode":"raw","raw":"{\r\n  \"tunneling\": {\r\n    \"username\": \"{{username}}\",\r\n    \"password\": \"{{password}}\",\r\n    \"sshServerHost\": \"{{ssh-server-host}}\",\r\n\t\"sshServerPort\": 22,\r\n    \"remotePort\": {{remote-port}}\r\n  },\r\n  \"execution\": {\r\n    \"type\": \"NOW\",\r\n    \"begin\": 123456789,\r\n    \"end\": {\r\n      \"type\": \"DURATION\",\r\n      \"duration\": \"2d\",\r\n      \"until\": 123456789\r\n    }\r\n  }\r\n}"},"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{service-host}}/{{service-port}}","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections","{{service-host}}","{{service-port}}"],"query":[{"key":"rtype","value":"plain","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 16 Feb 2020 01:04:00 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"30100/sshtcm:10.11.1.14:22\",\n    \"result\": true,\n    \"message\": \"Created\"\n}"},{"id":"d35ddca4-c14c-4998-a040-d558cbbe30ed","name":"200 / OK / TEXT","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"key":"Accept","value":"text/plain","type":"text"},{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"}],"body":{"mode":"raw","raw":"{\r\n  \"tunneling\": {\r\n    \"username\": \"{{username}}\",\r\n    \"password\": \"{{password}}\",\r\n    \"sshServerHost\": \"{{ssh-server-host}}\",\r\n\t\"sshServerPort\": 22,\r\n    \"remotePort\": {{remote-port}}\r\n  },\r\n  \"execution\": {\r\n    \"type\": \"NOW\",\r\n    \"begin\": 123456789,\r\n    \"end\": {\r\n      \"type\": \"DURATION\",\r\n      \"duration\": \"2d\",\r\n      \"until\": 123456789\r\n    }\r\n  }\r\n}"},"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{service-host}}/{{service-port}}?rtype=text","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections","{{service-host}}","{{service-port}}"],"query":[{"key":"rtype","value":"text","description":"(optional) Response Type ( json|plain)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"41"},{"key":"Date","value":"Sun, 16 Feb 2020 14:36:52 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"30100/sshtcm:10.11.1.14:22\tAlready exists"}],"_postman_id":"abd85aaf-f842-4117-be53-fc9e872232c9"},{"name":"Delete SSH Connection","id":"e0d6d2f4-e738-4bd1-8e95-21b32cbedb44","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[{"description":"<p>API Authorization Token</p>\n","key":"Authorization","type":"text","value":"parkjunhong"},{"key":"Accept","value":"application/json","description":"<p>Only supports 'text/plain, application/json'.</p>\n","type":"text"}],"url":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{session-id}}/{{remote-port}}","urlObject":{"protocol":"{{scheme}}","port":"{{port}}","path":["{{context}}","connections","{{session-id}}","{{remote-port}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"2f307e88-a93b-48d5-b0cd-99af398d7690","name":"404 / NOT FOUND / JSON","originalRequest":{"method":"DELETE","header":[{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"},{"key":"Con","value":"*/*","type":"text"}],"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{session-id}}/{{remote-port}}","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections","{{session-id}}","{{remote-port}}"],"query":[{"key":"rtype","value":"plain","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 16 Feb 2020 01:04:15 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"timestamp\": 1581815055853,\n    \"status\": \"404 NOT_FOUND/Not Found\",\n    \"session\": \"F04BAF5CC4DCDEB3AA783237BA8A85E0\",\n    \"uri\": \"/sshtcm/connections/sshtcm:10.11.1.14:22/30100\",\n    \"headers\": {\n        \"accept\": [\n            \"*/*\"\n        ],\n        \"accept-encoding\": [\n            \"gzip, deflate, br\"\n        ],\n        \"authorization\": [\n            \"parkjunhong\"\n        ],\n        \"cache-control\": [\n            \"no-cache\"\n        ],\n        \"con\": [\n            \"*/*\"\n        ],\n        \"connection\": [\n            \"keep-alive\"\n        ],\n        \"content-length\": [\n            \"0\"\n        ],\n        \"cookie\": [\n            \"JSESSIONID=F04BAF5CC4DCDEB3AA783237BA8A85E0; XSRF-TOKEN=9399aa72-4ecb-47ae-9441-e0c70da18d39\"\n        ],\n        \"host\": [\n            \"127.0.0.1:18080\"\n        ],\n        \"postman-token\": [\n            \"ec73282a-ef03-4a58-93ca-5487fea0064a\"\n        ],\n        \"user-agent\": [\n            \"PostmanRuntime/7.22.0\"\n        ]\n    },\n    \"parameters\": {},\n    \"exception\": {\n        \"cause\": \"There is no remote port of session. session-id: sshtcm:10.11.1.14:22, port: 30100\",\n        \"type\": \"open.commons.tools.ssh.service.impl.RemotePortNotFoundException\"\n    }\n}"},{"id":"6efabb86-ebb2-4072-a543-c542381f03ea","name":"200 / OK / TEXT","originalRequest":{"method":"DELETE","header":[{"description":"API Authorization Token\n","key":"Authorization","type":"text","value":"parkjunhong"},{"key":"Accept","value":"text/plain","description":"Only supports 'text/plain, application/json'.","type":"text"}],"url":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{session-id}}/{{remote-port}}"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Accept","value":"text/plain"},{"key":"Content-Type","value":"text/plain;charset=ISO-8859-1"},{"key":"Content-Length","value":"34"},{"key":"Date","value":"Sun, 16 Feb 2020 15:28:34 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"30100/sshtcm:10.11.1.14:22\tDeleted"},{"id":"b379d474-3b5b-4a66-a5a4-ca6518fbca77","name":"200 / OK / JSON","originalRequest":{"method":"DELETE","header":[{"description":"API 인증 토큰","key":"Authorization","type":"text","value":"parkjunhong"},{"key":"Con","value":"*/*","type":"text"}],"url":{"raw":"{{scheme}}://{{host}}:{{port}}/{{context}}/connections/{{session-id}}/{{remote-port}}","protocol":"{{scheme}}","host":["{{host}}"],"port":"{{port}}","path":["{{context}}","connections","{{session-id}}","{{remote-port}}"],"query":[{"key":"rtype","value":"plain","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 16 Feb 2020 01:48:55 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"30100/sshtcm:10.11.1.14:22\",\n    \"result\": true,\n    \"message\": \"Deleted\"\n}"}],"_postman_id":"e0d6d2f4-e738-4bd1-8e95-21b32cbedb44"}]}