mirror of https://github.com/D4-project/d4-core
chg: [server UI v0.2] change uuid-hmac key
parent
8b4e7ffd1e
commit
eb2cafbafa
|
@ -60,6 +60,9 @@ except redis.exceptions.ConnectionError:
|
|||
print('Error: Redis server {}:{}, ConnectionError'.format(host_redis_metadata, port_redis_metadata))
|
||||
sys.exit(1)
|
||||
|
||||
# set hmac default key
|
||||
redis_server_metadata.set('server:hmac_default_key', hmac_key)
|
||||
|
||||
# init redis_server_metadata
|
||||
redis_server_metadata.delete('server:accepted_type')
|
||||
for type in accepted_type:
|
||||
|
@ -73,6 +76,7 @@ class Echo(Protocol, TimeoutMixin):
|
|||
self.session_uuid = str(uuid.uuid4())
|
||||
self.data_saved = False
|
||||
self.stream_max_size = None
|
||||
self.hmac_key = None
|
||||
logger.debug('New session: session_uuid={}'.format(self.session_uuid))
|
||||
|
||||
def dataReceived(self, data):
|
||||
|
@ -218,7 +222,12 @@ class Echo(Protocol, TimeoutMixin):
|
|||
self.buffer = b''
|
||||
# set hmac_header to 0
|
||||
data = data.replace(data_header['hmac_header'], hmac_reset, 1)
|
||||
HMAC = hmac.new(hmac_key, msg=data, digestmod='sha256')
|
||||
if self.hmac_key is None:
|
||||
self.hmac_key = redis_server_metadata.hget('metadata_uuid:{}'.format(data_header['uuid_header']), 'hmac_key')
|
||||
if self.hmac_key is None:
|
||||
self.hmac_key = redis_server_metadata.get('server:hmac_default_key')
|
||||
|
||||
HMAC = hmac.new(self.hmac_key, msg=data, digestmod='sha256')
|
||||
data_header['hmac_header'] = data_header['hmac_header'].hex()
|
||||
|
||||
### Debug ###
|
||||
|
|
|
@ -187,14 +187,17 @@ def uuid_management():
|
|||
else:
|
||||
max_uuid_stream = default_max_entries_by_stream
|
||||
|
||||
uuid_key = redis_server_metadata.hget('metadata_uuid:{}'.format(uuid_sensor), 'hmac_key')
|
||||
if uuid_key is None:
|
||||
uuid_key = redis_server_metadata.get('server:hmac_default_key')
|
||||
|
||||
list_ip = redis_server_metadata.lrange('list_uuid_ip:{}'.format(uuid_sensor), 0, -1)
|
||||
all_ip = []
|
||||
for elem in list_ip:
|
||||
ip, d_time = elem.split('-')
|
||||
all_ip.append({'ip': ip,'datetime': '{}/{}/{} - {}:{}.{}'.format(d_time[0:4], d_time[5:6], d_time[6:8], d_time[8:10], d_time[10:12], d_time[12:14])})
|
||||
print(all_ip)
|
||||
|
||||
return render_template("uuid_management.html", uuid_sensor=uuid_sensor, data_uuid=data_uuid, max_uuid_stream=max_uuid_stream, all_ip=all_ip)
|
||||
return render_template("uuid_management.html", uuid_sensor=uuid_sensor, uuid_key=uuid_key, data_uuid=data_uuid, max_uuid_stream=max_uuid_stream, all_ip=all_ip)
|
||||
else:
|
||||
return 'Invalid uuid'
|
||||
|
||||
|
@ -342,6 +345,17 @@ def delete_data():
|
|||
redis_server_metadata.delete('daily_uuid:{}'.format(date))
|
||||
return render_template("index.html")
|
||||
|
||||
# demo function
|
||||
@app.route('/set_uuid_hmac_key')
|
||||
def set_uuid_hmac_key():
|
||||
uuid_sensor = request.args.get('uuid')
|
||||
user = request.args.get('redirect')
|
||||
key = request.args.get('key')
|
||||
redis_server_metadata.hset('metadata_uuid:{}'.format(uuid_sensor), 'hmac_key', key)
|
||||
if user:
|
||||
return redirect(url_for('uuid_management', uuid=uuid_sensor))
|
||||
|
||||
|
||||
# demo function
|
||||
@app.route('/whois_data')
|
||||
def whois_data():
|
||||
|
|
|
@ -117,6 +117,13 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-dark mt-3" style="max-width: 18rem;">
|
||||
<div class="card-body text-dark">
|
||||
<h5 class="card-title">Change UUID Key</h5>
|
||||
<input class="form-control" type="text" id="uuid_key" value="{{uuid_key}}" required>
|
||||
<button type="button" class="btn btn-outline-secondary mt-1" onclick="window.location.href ='{{ url_for('set_uuid_hmac_key') }}?uuid={{uuid_sensor}}&redirect=1&key='+$('#uuid_key').val();">Change UUID Key</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row ml-0 mr-0">
|
||||
|
|
Loading…
Reference in New Issue