thingsboard-aplcache
Changes
tools/src/main/shell/keygen.sh 102(+81 -21)
Details
tools/src/main/shell/keygen.sh 102(+81 -21)
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.