Пример #1
0
 def test_build_auth_header(self):
     header = oauth.build_authenticate_header()
     self.assertEqual(header["WWW-Authenticate"], 'OAuth realm=""')
     self.assertEqual(len(header), 1)
     realm = "http://example.myrealm.com/"
     header = oauth.build_authenticate_header(realm)
     self.assertEqual(header["WWW-Authenticate"], 'OAuth realm="%s"' % realm)
     self.assertEqual(len(header), 1)
Пример #2
0
 def test_build_auth_header(self):
     header = oauth.build_authenticate_header()
     self.assertEqual(header['WWW-Authenticate'], 'OAuth realm=""')
     self.assertEqual(len(header), 1)
     realm = 'http://example.myrealm.com/'
     header = oauth.build_authenticate_header(realm)
     self.assertEqual(header['WWW-Authenticate'],
                      'OAuth realm="%s"' % realm)
     self.assertEqual(len(header), 1)
Пример #3
0
 def send_error(self, err=None):
     # send a 401 error
     self.send_error(401, str(err.message))
     # return the authenticate header
     header = oauth2.build_authenticate_header(realm=REALM)
     for k, v in header.iteritems():
         self.send_header(k, v)
Пример #4
0
 def send_error(self, err=None):
     # send a 401 error
     self.send_error(401, str(err.message))
     # return the authenticate header
     header = oauth2.build_authenticate_header(realm=REALM)
     for k, v in header.iteritems():
         self.send_header(k, v)
Пример #5
0
 def _processOAuthError(self, e):
     res = json.dumps(e.fossilize())
     header = oauth.build_authenticate_header(realm=Config.getInstance().getBaseSecureURL())
     self._responseUtil.headers.extend(header)
     self._responseUtil.content_type = 'application/json'
     self._responseUtil.status = e.code
     return res
Пример #6
0
 def _processOAuthError(self, e):
     res = json.dumps(e.fossilize())
     header = oauth.build_authenticate_header(
         realm=Config.getInstance().getBaseSecureURL())
     self._responseUtil.headers.extend(header)
     self._responseUtil.content_type = 'application/json'
     self._responseUtil.status = e.code
     return res
Пример #7
0
def send_oauth_error(err=None):
    """Shortcut for sending an error."""
    # send a 401 error
    response = HttpResponse(err.message.encode('utf-8'), status=401, content_type="text/plain")
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in six.iteritems(header):
        response[k] = v
    return response
Пример #8
0
def send_oauth_error(err=None):
    """Shortcut for sending an error."""
    # send a 401 error
    response = HttpResponse(err.message.encode('utf-8'))
    response.status_code = 401
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in header.iteritems():
        response[k] = v
    return response
Пример #9
0
def send_oauth_error(err=None):
    """Shortcut for sending an error."""
    # send a 401 error
    response = HttpResponse(err.message.encode('utf-8'), mimetype="text/plain")
    response.status_code = 401
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in header.iteritems():
        response[k] = v
    return response
Пример #10
0
def send_oauth_error(err=None):
    """Shortcut for sending an error."""
    # send a 401 error
    # LRS CHANGE - BE ABLE TO SEND PLAIN TEXT ERROR MESSAGES
    # LRS CHANGE - DECIDE IF 400 OR 401 ERROR
    if isinstance(err, basestring):
        response = HttpResponse(err, content_type="text/plain")
    else:
        response = HttpResponse(err.message.encode('utf-8'), content_type="text/plain")
    
    response.status_code = 401
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in header.iteritems():
        response[k] = v
    return response
Пример #11
0
def oauth_error_response(err=None, status_code=401):
    """Shortcut for sending an error."""
    # send a 401 error

    if isinstance(err, oauth.Error):
        message = err.message.encode("utf-8")
    else:
        message = str(err).encode("utf-8")

    response = HttpResponse(message, mimetype="text/plain")
    response.status_code = status_code
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in header.iteritems():
        response[k] = v
    return response
Пример #12
0
def oauth_error_response(err=None, status_code=401):
    """Shortcut for sending an error."""
    # send a 401 error

    if isinstance(err, oauth.Error):
        message = err.message.encode('utf-8')
    else:
        message = str(err).encode('utf-8')

    response = HttpResponse(message, mimetype="text/plain")
    response.status_code = status_code
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in header.iteritems():
        response[k] = v
    return response
Пример #13
0
def send_oauth_error(err=None):
    """Shortcut for sending an error."""
    # send a 401 error
    # LRS CHANGE - BE ABLE TO SEND PLAIN TEXT ERROR MESSAGES
    # LRS CHANGE - DECIDE IF 400 OR 401 ERROR
    if isinstance(err, basestring):
        response = HttpResponse(err, content_type="text/plain")
    else:
        response = HttpResponse(err.message.encode('utf-8'),
                                content_type="text/plain")

    response.status_code = 401
    # return the authenticate header
    header = oauth.build_authenticate_header(realm=OAUTH_REALM_KEY_NAME)
    for k, v in header.iteritems():
        response[k] = v
    return response
Пример #14
0
    def prepare(self):
        realm = SGSettings.get('web', 'realm')
        header, value = oauth.build_authenticate_header(realm).items()[0]
        self.set_header(header, value)

        try:
            uri = '%s://%s%s' % (self.request.protocol, self.request.host,
                self.request.path)

            # Builder our request object.
            request = oauth.Request.from_request(
                self.request.method, uri, self.request.headers, None,
                self.request.query)
        except Exception, e:
            _logger.info("Could not parse request from method = %s,"
                "uri = %s, headers = %s, query = %s, exception = %s" % (
                self.request.method, uri, self.request.headers,
                self.request.query, e))
            raise NotAuthorized()
Пример #15
0
    def challenge(self):
        """
        Returns a 401 response with a small bit on
        what OAuth is, and where to learn more about it.

        When this was written, browsers did not understand
        OAuth authentication on the browser side, and hence
        the helpful template we render. Maybe some day in the
        future, browsers will take care of this stuff for us
        and understand the 401 with the realm we give it.
        """
        response = HttpResponse()
        response.status_code = 401

        for k, v in oauth.build_authenticate_header(realm=self.realm).iteritems():
            response[k] = v

        response.content = """
            Unable to authenticate.
            Make sure you use oAuth 1.0 authentication and a valid consumer key.
             """

        return response
Пример #16
0
    def challenge(self):
        """
        Returns a 401 response with a small bit on
        what OAuth is, and where to learn more about it.

        When this was written, browsers did not understand
        OAuth authentication on the browser side, and hence
        the helpful template we render. Maybe some day in the
        future, browsers will take care of this stuff for us
        and understand the 401 with the realm we give it.
        """
        response = HttpResponse()
        response.status_code = 401

        for k, v in oauth.build_authenticate_header(realm=self.realm).iteritems():
            response[k] = v

        tmpl = loader.render_to_string('piston/oauth/challenge.html',
            { 'MEDIA_URL': settings.MEDIA_URL })

        response.content = tmpl

        return response
Пример #17
0
    def challenge(self):
        """
        Returns a 401 response with a small bit on
        what OAuth is, and where to learn more about it.

        When this was written, browsers did not understand
        OAuth authentication on the browser side, and hence
        the helpful template we render. Maybe some day in the
        future, browsers will take care of this stuff for us
        and understand the 401 with the realm we give it.
        """
        response = HttpResponse()
        response.status_code = 401

        for k, v in oauth.build_authenticate_header(realm=self.realm).iteritems():
            response[k] = v

        response.content = """
            Unable to authenticate.
            Make sure you use oAuth 1.0 authentication and a valid consumer key.
             """

        return response
Пример #18
0
            res = self._processRestrictedHTML(e)
            DBMgr.getInstance().endRequest(False)
        except MaKaCError, e:
            res = self._processGeneralError( e )
            DBMgr.getInstance().endRequest(False)
            if Config.getInstance().getPropagateAllExceptions():
                raise
        except ValueError, e:
            res = self._processGeneralError( e )
            DBMgr.getInstance().endRequest(False)
            if Config.getInstance().getPropagateAllExceptions():
                raise
        except OAuthError, e:
            from indico.util import json
            res = json.dumps(e.fossilize())
            header = oauth.build_authenticate_header(realm=Config.getInstance().getBaseSecureURL())
            self._responseUtil.headers.extend(header)
            self._responseUtil.content_type = 'application/json'
            self._responseUtil.status = e.code
            DBMgr.getInstance().endRequest(False)
        except Exception, e:
            res = self._processUnexpectedError(e)
            self._endRequestSpecific2RH(False)
            DBMgr.getInstance().endRequest(False)

            if Config.getInstance().getEmbeddedWebserver() or Config.getInstance().getPropagateAllExceptions():
                # Re-raise to get the nice werkzeug exception view
                raise

            #cancels any redirection
            self._responseUtil.redirect = None