Jump to >

reviewboard.accounts.backends.x509

X.509 authentication backend.

class X509Backend[source]

Bases: reviewboard.accounts.backends.base.BaseAuthBackend

Authenticate a user from a X.509 client certificate.

The certificate is passed in by the browser. This backend relies on the X509AuthMiddleware to extract a username field from the client certificate.

backend_id = u'x509'[source]
name = u'X.509 Public Key'[source]
settings_form[source]

alias of reviewboard.accounts.forms.auth.X509SettingsForm

supports_change_password = True[source]
authenticate(request, x509_field=u'', **kwargs)[source]

Authenticate the user.

This will extract the username from the provided certificate and return the appropriate User object.

Changed in version 4.0: The request argument is now mandatory as the first positional argument, as per requirements in Django.

Parameters:
  • request (django.http.HttpRequest) – The HTTP request from the caller. This may be None.
  • x509_field (unicode, optional) – The value of the field containing the username.
  • **kwargs (dict, unused) – Additional keyword arguments supplied by the caller.
Returns:

The authenticated user, or None if the user could not be authenticated for any reason.

Return type:

django.contrib.auth.models.User

clean_username(username)[source]

Validate the ‘username’ field.

This checks to make sure that the contents of the username field are valid for X509 authentication.

get_or_create_user(username, request)[source]

Get an existing user, or create one if it does not exist.