1
0
mirror of https://github.com/Yubico/yubiadmin.git synced 2025-03-15 02:29:16 +01:00
yubiadmin/bin/yubiadmin-server

43 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/usr/bin/python
import os
2013-04-29 11:19:09 +02:00
import base64
from wsgiref.simple_server import make_server
from webob.dec import wsgify
2013-04-29 11:19:09 +02:00
from webob import exc
from yubiadmin import server
from yubiadmin.static import FileApp, DirectoryApp
2013-04-29 11:19:09 +02:00
from yubiadmin.config import settings
REALM = 'YubiADMIN'
STATIC_ASSETS = ['js', 'css', 'img', 'favicon.ico']
if __name__ == '__main__':
2013-04-29 11:19:09 +02:00
# TODO: Take command line args to set port.
mod_dir = os.path.dirname(server.__file__)
2013-04-29 14:09:30 +02:00
base_dir = os.path.abspath(os.path.join(mod_dir))
static_dir = os.path.join(base_dir, 'static')
static_app = DirectoryApp(static_dir)
favicon_app = FileApp(os.path.join(static_dir, 'favicon.ico'))
@wsgify
def with_static(request):
2013-04-29 11:19:09 +02:00
if request.authorization:
_, auth = request.authorization
if base64.b64decode(auth) == '%s:%s' % (settings['user'],
settings['pass']):
base = request.path_info_peek()
if base in STATIC_ASSETS:
return request.get_response(static_app)
return request.get_response(server.application)
#Deny access
response = exc.HTTPUnauthorized()
response.www_authenticate = ('Basic', {'realm': REALM})
return response
2013-04-29 11:19:09 +02:00
httpd = make_server(settings['iface'], settings['port'], with_static)
httpd.serve_forever()