Browse Source

oauth db fixes

mom040267 11 years ago
parent
commit
fe19f4dee0

+ 1 - 1
examples/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh

@@ -32,4 +32,4 @@ fi
 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/
 export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/
 
-PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 -r north.gov --mysql-userdb="host=localhost dbname=turn user=turn password=turn cipher=DHE-RSA-AES256-SHA connect_timeout=30" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 $@
+PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 -r north.gov --mysql-userdb="host=localhost dbname=coturn user=turn password=turn cipher=DHE-RSA-AES256-SHA connect_timeout=30" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 $@

+ 2 - 2
src/apps/relay/dbdrivers/dbd_mongo.c

@@ -244,7 +244,7 @@ static int mongo_get_oauth_key(const u08bits *kid, oauth_key_data_raw *key) {
 
 	bson_t query;
 	bson_init(&query);
-	BSON_APPEND_UTF8(&query, "kid", (const char *)key->kid);
+	BSON_APPEND_UTF8(&query, "kid", (const char *)kid);
 
 	bson_t fields;
 	bson_init(&fields);
@@ -398,7 +398,7 @@ static int mongo_set_oauth_key(oauth_key_data_raw *key) {
 
   bson_t doc;
   bson_init(&doc);
-  BSON_APPEND_UTF8(&query, "kid", (const char *)key->kid);
+  BSON_APPEND_UTF8(&doc, "kid", (const char *)key->kid);
   BSON_APPEND_UTF8(&doc, "as_rs_alg", (const char *)key->as_rs_alg);
   BSON_APPEND_UTF8(&doc, "as_rs_key", (const char *)key->as_rs_key);
   BSON_APPEND_UTF8(&doc, "auth_alg", (const char *)key->auth_alg);

+ 36 - 0
src/apps/relay/userdb.c

@@ -1109,7 +1109,43 @@ void run_db_test(void)
 {
 	turn_dbdriver_t * dbd = get_dbdriver();
 	if (dbd) {
+
+		printf("DB TEST 1:\n");
+		dbd->list_oauth_keys();
+
+		printf("DB TEST 2:\n");
+		oauth_key_data_raw key_;
+		oauth_key_data_raw *key=&key_;
+		dbd->get_oauth_key((const u08bits*)"north",key);
+		printf("  kid=%s, ikm_key=%s, timestamp=%llu, lifetime=%lu, hkdf_hash_func=%s, as_rs_alg=%s, as_rs_key=%s, auth_alg=%s, auth_key=%s\n",
+		    		key->kid, key->ikm_key, (unsigned long long)key->timestamp, (unsigned long)key->lifetime, key->hkdf_hash_func,
+		    		key->as_rs_alg, key->as_rs_key, key->auth_alg, key->auth_key);
+
+		printf("DB TEST 3:\n");
+
+		STRCPY(key->as_rs_alg,"as_rs_alg");
+		STRCPY(key->as_rs_key,"as_rs_key");
+		STRCPY(key->auth_alg,"auth_alg");
+		STRCPY(key->auth_key,"auth_key");
+		STRCPY(key->hkdf_hash_func,"hkdf");
+		STRCPY(key->ikm_key,"ikm_key");
+		STRCPY(key->kid,"kid");
+		key->timestamp = 123;
+		key->lifetime = 456;
+		dbd->del_oauth_key((const u08bits*)"kid");
+		dbd->set_oauth_key(key);
+		dbd->list_oauth_keys();
+
+		printf("DB TEST 4:\n");
+		dbd->get_oauth_key((const u08bits*)"kid",key);
+		printf("  kid=%s, ikm_key=%s, timestamp=%llu, lifetime=%lu, hkdf_hash_func=%s, as_rs_alg=%s, as_rs_key=%s, auth_alg=%s, auth_key=%s\n",
+		    		key->kid, key->ikm_key, (unsigned long long)key->timestamp, (unsigned long)key->lifetime, key->hkdf_hash_func,
+		    		key->as_rs_alg, key->as_rs_key, key->auth_alg, key->auth_key);
+
+		printf("DB TEST 5:\n");
+		dbd->del_oauth_key((const u08bits*)"kid");
 		dbd->list_oauth_keys();
+		printf("DB TEST END\n");
 	}
 }