Exemplo n.º 1
0
def _request_login(request):
    """ Return a 401 to force pip to upload its HTTP basic auth credentials """
    response = HTTPUnauthorized()
    realm = WWW_AUTHENTICATE.tuples('Basic realm="%s"' %
                                    request.registry.realm)
    response.headers.update(realm)
    return response
Exemplo n.º 2
0
 def build_authentication(self):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     if self._rc_auth_http_code and self._rc_auth_http_code == "403":
         # return 403 if alternative http return code is specified in
         # RhodeCode config
         return HTTPForbidden(headers=head)
     return HTTPUnauthorized(headers=head)
Exemplo n.º 3
0
 def build_authentication(self):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     if self._rc_auth_http_code and self._rc_auth_http_code == '403':
         # return 403 if alternative http return code is specified in
         # RhodeCode config
         return HTTPForbidden(headers=head)
     return HTTPUnauthorized(headers=head)
Exemplo n.º 4
0
def _request_login(request):
    """ Return a 401 to force pip to upload its HTTP basic auth credentials """
    response = HTTPUnauthorized()
    realm = WWW_AUTHENTICATE.tuples('Basic realm="%s"' %
                                    request.registry.realm)
    response.headers.update(realm)
    return response
Exemplo n.º 5
0
def get_login_page(request):
    """ Catch login and redirect to login wall """
    login_url = request.app_url('login')
    if request.userid is not None:
        # User is logged in and fetching /login, so redirect to /
        if request.url == login_url:
            return HTTPFound(location=request.app_url())
        else:
            # If user is not authorized, hide the fact that the page doesn't
            # exist
            request.response.status_code = 404
            return request.response
    if request.url != login_url:
        request.session['next'] = request.url
        # If pip requested a protected package and it's not authed, prompt for
        # credentials
        if (request.path.startswith('/simple')
                or request.path.startswith('/pypi')):
            request.response.status_code = 401
            realm = WWW_AUTHENTICATE.tuples('Basic realm="%s"' %
                                            request.registry.realm)
            request.response.headers.update(realm)
            return request.response
    elif 'next' in request.GET:
        request.session['next'] = request.GET['next']
    else:
        request.session['next'] = request.app_url()
    request.response.status_code = 403
    return {}
Exemplo n.º 6
0
def get_login_page(request):
    """ Catch login and redirect to login wall """
    login_url = request.app_url('login')
    if request.userid is not None:
        # User is logged in and fetching /login, so redirect to /
        if request.url == login_url:
            return HTTPFound(location=request.app_url())
        else:
            # If user is not authorized, hide the fact that the page doesn't
            # exist
            request.response.status_code = 404
            return request.response
    if request.url != login_url:
        request.session['next'] = request.url
        # If pip requested a protected package and it's not authed, prompt for
        # credentials
        if (request.path.startswith('/simple') or
                request.path.startswith('/pypi')):
            request.response.status_code = 401
            realm = WWW_AUTHENTICATE.tuples('Basic realm="%s"' %
                                            request.registry.realm)
            request.response.headers.update(realm)
            return request.response
    elif 'next' in request.GET:
        request.session['next'] = request.GET['next']
    else:
        request.session['next'] = request.app_url()
    request.response.status_code = 403
    return {}
Exemplo n.º 7
0
 def challenge(self, environ, status, app_headers, forget_headers):
     r"""If the request failed due to invalid or insufficient parameters or
     permissions return a WWW-Authenticate header with the realm.
     """
     # Add the WWW-Authenticate header
     headers = WWW_AUTHENTICATE.tuples('OAuth realm="%s"' % self.realm)
     if headers[0] not in forget_headers:
         headers += forget_headers
     return HTTPUnauthorized(headers=headers)
Exemplo n.º 8
0
 def challenge(self, environ, status, app_headers, forget_headers):
     r"""If the request failed due to invalid or insufficient parameters or
     permissions return a WWW-Authenticate header with the realm.
     """
     # Add the WWW-Authenticate header
     headers = WWW_AUTHENTICATE.tuples('OAuth realm="%s"' % self.realm)
     if headers[0] not in forget_headers:
         headers += forget_headers
     return HTTPUnauthorized(headers=headers)
Exemplo n.º 9
0
 def build_authentication(self):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     if self._rc_auth_http_code and not self.initial_call:
         # return alternative HTTP code if alternative http return code
         # is specified in RhodeCode config, but ONLY if it's not the
         # FIRST call
         custom_response_klass = self._get_response_from_code(
             self._rc_auth_http_code)
         return custom_response_klass(headers=head)
     return HTTPUnauthorized(headers=head)
Exemplo n.º 10
0
def _forbid(request):
    """
    Return a 403 if user is logged in, otherwise return a 401.

    This is required to force pip to upload its HTTP basic auth credentials

    """
    if request.userid is None:
        request.response.status_code = 401
        realm = WWW_AUTHENTICATE.tuples('Basic realm="%s"' %
                                        request.registry.realm)
        request.response.headers.update(realm)
        return request.response
    else:
        return HTTPForbidden()
Exemplo n.º 11
0
def _forbid(request):
    """
    Return a 403 if user is logged in, otherwise return a 401.

    This is required to force pip to upload its HTTP basic auth credentials

    """
    if request.userid is None:
        request.response.status_code = 401
        realm = WWW_AUTHENTICATE.tuples('Basic realm="%s"' %
                                        request.registry.realm)
        request.response.headers.update(realm)
        return request.response
    else:
        return HTTPForbidden()
Exemplo n.º 12
0
 def forget(self, request):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     return head
Exemplo n.º 13
0
 def forget(self, request):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     return head
Exemplo n.º 14
0
 def _get_wwwauth(self):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     return head
Exemplo n.º 15
0
 def _get_wwwauth(self):
     head = WWW_AUTHENTICATE.tuples('Basic realm="%s"' % self.realm)
     return head