diff options
author | Michael Elkins <melkins@tislabs.com> | 2013-01-31 01:13:24 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2013-01-31 01:13:24 +0000 |
commit | e065bbc64b4dc3fc51387eb5275ece174baf8242 (patch) | |
tree | 7cba90e23df1c22e0cedaa586f716a7fb0c2889a /rpkid/rpki/gui/decorators.py | |
parent | ef13cddc2f03d9e97d700e57454e164bfa6a4815 (diff) |
require a connection secured with TLS, otherwise return a HTTP 500 error
closes #401
svn path=/branches/tk401/; revision=4985
Diffstat (limited to 'rpkid/rpki/gui/decorators.py')
-rw-r--r-- | rpkid/rpki/gui/decorators.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/rpkid/rpki/gui/decorators.py b/rpkid/rpki/gui/decorators.py new file mode 100644 index 00000000..69d20c46 --- /dev/null +++ b/rpkid/rpki/gui/decorators.py @@ -0,0 +1,31 @@ +# Copyright (C) 2013 SPARTA, Inc. a Parsons Company +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND SPARTA DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL SPARTA BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +__version__ = '$Id$' + +from django import http + + +def tls_required(f): + """Decorator which returns a 500 error if the connection is not secured + with TLS (https). + + """ + def _tls_required(request, *args, **kwargs): + if not request.is_secure(): + return http.HttpResponseServerError( + 'This resource may only be accessed securely via https', + content_type='text/plain') + return f(request, *args, **kwargs) + return _tls_required |