thingsboard-aplcache

Details

diff --git a/tools/src/main/shell/keygen.sh b/tools/src/main/shell/keygen.sh
index 5461605..a287292 100755
--- a/tools/src/main/shell/keygen.sh
+++ b/tools/src/main/shell/keygen.sh
@@ -15,8 +15,51 @@
 # limitations under the License.
 #
 
+usage() {
+    echo "This script generates thingsboard server's ssl certificate"
+    echo "and optionally copies it to the server's resource directory."
+    echo "usage: ./keygen.sh [-c flag] [-d directory]"
+    echo "    -c | --copy flag                  Set if copy keystore to server directory needed. Default value is true"
+    echo "    -d | --dir directory              Server keystore directory, where the generated keystore file will be copied."
+    echo "                                      Default value is SERVER_KEYSTORE_DIR property from properties file"
+    echo "    -p | --props | --properties file  Properties file. default value is ./keygen.properties"
+	echo "    -h | --help | ?                   Show this message"
+}
 
-. keygen.properties
+COPY=true;
+COPY_DIR="d"
+PROPERTIES_FILE=keygen.properties
+
+while true; do
+  case "$1" in
+    -c | --copy)                 COPY=$2 ;
+                                 shift
+                                 ;;
+    -d | --dir | --directory)    COPY_DIR=$2 ;
+                                 shift
+                                 ;;
+    -p | --props | --properties) PROPERTIES_FILE=$2 ;
+                                shift
+                                ;;
+    -h | --help | ?)            usage
+                                exit 0
+                                ;;
+    -- ) shift;
+         break
+         ;;
+    * ) break
+         ;;
+  esac
+  shift
+done
+
+if [[ "$COPY" != true ]] && [[ "$COPY" != false ]]; then
+   usage
+fi
+
+echo "copy: $COPY; copy_dir: $COPY_DIR; PROPERTIES_FILE=$PROPERTIES_FILE";
+
+. $PROPERTIES_FILE
 
 echo "Generating SSL Key Pair..."
 
@@ -30,29 +73,46 @@ keytool -genkeypair -v \
   -keysize 2048 \
   -validity 9999
 
+status=$?
+if [[ $status != 0 ]]; then
+    exit $status;
+fi
+
 keytool -export \
   -alias $SERVER_KEY_ALIAS \
   -keystore $SERVER_FILE_PREFIX.jks \
   -file $CLIENT_TRUSTSTORE -rfc \
   -storepass $PASSWORD
 
-read -p  "Do you want to copy $SERVER_FILE_PREFIX.jks to server directory? " yn
-    case $yn in
-        [Yy]) echo "Please, specify destination dir: "
-             read -p "(Default: $SERVER_KEYSTORE_DIR): " dir
-             if [[ !  -z  $dir  ]]; then
-                DESTINATION=$dir;
-             else
-                DESTINATION=$SERVER_KEYSTORE_DIR
-             fi;
-             mkdir -p $SERVER_KEYSTORE_DIR
-             cp $SERVER_FILE_PREFIX.jks $DESTINATION
-             if [ $? -ne 0 ]; then
-                echo "Failed to copy keystore file."
-             else
-                echo "File copied successfully."
-             fi
-             break;;
-        * ) ;;
-    esac
-echo "Done."
+status=$?
+if [[ $status != 0 ]]; then
+    exit $status;
+fi
+
+
+if [[ $COPY = true ]]; then
+    if [[ -z "$COPY_DIR" ]]; then
+        read -p  "Do you want to copy $SERVER_FILE_PREFIX.jks to server directory? " yn
+            case $yn in
+                [Yy]) echo "Please, specify destination dir: "
+                     read -p "(Default: copy_dir): " dir
+                     if [[ !  -z  $dir  ]]; then
+                        DESTINATION=$dir;
+                     else
+                        DESTINATION=$SERVER_KEYSTORE_DIR
+                     fi;
+                     break;;
+                * ) ;;
+            esac
+    else
+        DESTINATION=$COPY_DIR
+    fi
+    mkdir -p $DESTINATION
+    cp $SERVER_FILE_PREFIX.jks $DESTINATION
+    if [ $? -ne 0 ]; then
+        echo "Failed to copy keystore file."
+    else
+        echo "File copied successfully."
+    fi
+fi
+echo "Done."
\ No newline at end of file
diff --git a/tools/src/main/shell/securemqttclient.keygen.sh b/tools/src/main/shell/securemqttclient.keygen.sh
index eba141b..c85f2ff 100755
--- a/tools/src/main/shell/securemqttclient.keygen.sh
+++ b/tools/src/main/shell/securemqttclient.keygen.sh
@@ -15,8 +15,34 @@
 # limitations under the License.
 #
 
+usage() {
+    echo "This script generates client public/private rey pair, extracts them to a no-password RSA pem file,"
+    echo "and also imports server public key to client trust store"
+    echo "usage: ./securemqttclient.keygen.sh [-p file]"
+    echo "    -p | --props | --properties file  Properties file. default value is ./keygen.properties"
+	echo "    -h | --help  | ?                  Show this message"
+}
 
-. keygen.properties
+PROPERTIES_FILE=keygen.properties
+
+while true; do
+  case "$1" in
+    -p | --props | --properties) PROPERTIES_FILE=$2 ;
+                                shift
+                                ;;
+    -h | --help | ?)            usage
+                                exit 0
+                                ;;
+    -- ) shift;
+         break
+         ;;
+    * )  break
+         ;;
+  esac
+  shift
+done
+
+. $PROPERTIES_FILE
 
 echo "Generating SSL Key Pair..."
 
diff --git a/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttSslHandlerProvider.java b/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttSslHandlerProvider.java
index 6b29338..5701c71 100644
--- a/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttSslHandlerProvider.java
+++ b/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttSslHandlerProvider.java
@@ -1,12 +1,12 @@
 /**
  * Copyright © 2016-2017 The Thingsboard Authors
- * <p>
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.