Soup.AuthDomain¶
- Subclasses:
Methods¶
- Inherited:
- Structs:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Virtual Methods¶
- Inherited:
|
|
|
|
|
Properties¶
Name |
Type |
Flags |
Short Description |
---|---|---|---|
w |
Add a path covered by this auth domain |
||
r/w |
A filter for deciding whether or not to require authentication |
||
r/w |
Data to pass to filter |
||
r/w |
An authentication callback that can be used with any |
||
r/w |
Data to pass to auth callback |
||
r/w/co |
Whether or not this is a proxy auth domain |
||
r/w/co |
The realm of this auth domain |
||
w |
Remove a path covered by this auth domain |
Signals¶
- Inherited:
Fields¶
- Inherited:
Name |
Type |
Access |
Description |
---|---|---|---|
parent |
r |
Class Details¶
- class Soup.AuthDomain(**kwargs)¶
- Bases:
- Abstract:
Yes
- Structure:
- accepts(msg)¶
- Parameters:
msg (
Soup.Message
) – aSoup.Message
- Returns:
the username that msg has authenticated as, if in fact it has authenticated.
None
otherwise.- Return type:
Checks if msg contains appropriate authorization for self to accept it. Mirroring
Soup.AuthDomain.covers
(), this does not check whether or not self cares if msg is authorized.This is used by
Soup.Server
internally and is probably of no use to anyone else.
- add_path(path)¶
- Parameters:
path (
str
) – the path to add to self
Adds path to self, such that requests under path on self's server will require authentication (unless overridden by
Soup.AuthDomain.remove_path
() orSoup.AuthDomain.set_filter
()).You can also add paths by setting the
Soup.AUTH_DOMAIN_ADD_PATH
property, which can also be used to add one or more paths at construct time.
- challenge(msg)¶
- Parameters:
msg (
Soup.Message
) – aSoup.Message
Adds a “WWW-Authenticate” or “Proxy-Authenticate” header to msg, requesting that the client authenticate, and sets msg's status accordingly.
This is used by
Soup.Server
internally and is probably of no use to anyone else.
- check_password(msg, username, password)¶
- Parameters:
msg (
Soup.Message
) – aSoup.Message
username (
str
) – a usernamepassword (
str
) – a password
- Returns:
whether or not the message is authenticated
- Return type:
Checks if msg authenticates to self via username and password. This would normally be called from a
Soup.AuthDomainGenericAuthCallback
.
- covers(msg)¶
- Parameters:
msg (
Soup.Message
) – aSoup.Message
- Returns:
True
if self requires msg to be authenticated- Return type:
Checks if self requires msg to be authenticated (according to its paths and filter function). This does not actually look at whether msg is authenticated, merely whether or not it needs to be.
This is used by
Soup.Server
internally and is probably of no use to anyone else.
- remove_path(path)¶
- Parameters:
path (
str
) – the path to remove from self
Removes path from self, such that requests under path on self's server will NOT require authentication.
This is not simply an undo-er for
Soup.AuthDomain.add_path
(); it can be used to “carve out” a subtree that does not require authentication inside a hierarchy that does. Note also that unlike withSoup.AuthDomain.add_path
(), this cannot be overridden by adding a filter, as filters can only bypass authentication that would otherwise be required, not require it where it would otherwise be unnecessary.You can also remove paths by setting the
Soup.AUTH_DOMAIN_REMOVE_PATH
property, which can also be used to remove one or more paths at construct time.
- set_filter(filter, *filter_data)¶
- Parameters:
filter (
Soup.AuthDomainFilter
) – the auth filter for self
Adds filter as an authentication filter to self. The filter gets a chance to bypass authentication for certain requests that would otherwise require it. Eg, it might check the message’s path in some way that is too complicated to do via the other methods, or it might check the message’s method, and allow GETs but not PUTs.
The filter function returns
True
if the request should still require authentication, orFalse
if authentication is unnecessary for this request.To help prevent security holes, your filter should return
True
by default, and only returnFalse
under specifically-tested circumstances, rather than the other way around. Eg, in the example above, where you want to authenticate PUTs but not GETs, you should check if the method is GET and returnFalse
in that case, and then returnTrue
for all other methods (rather than returningTrue
for PUT andFalse
for all other methods). This way if it turned out (now or later) that some paths supported additional methods besides GET and PUT, those methods would default to being NOT allowed for unauthenticated users.You can also set the filter by setting the
Soup.AUTH_DOMAIN_FILTER
andSoup.AUTH_DOMAIN_FILTER_DATA
properties, which can also be used to set the filter at construct time.
- set_generic_auth_callback(auth_callback, *auth_data)¶
- Parameters:
auth_callback (
Soup.AuthDomainGenericAuthCallback
) – the auth callback
Sets auth_callback as an authentication-handling callback for self. Whenever a request comes in to self which cannot be authenticated via a domain-specific auth callback (eg,
Soup.AuthDomainDigestAuthCallback
), the generic auth callback will be invoked. SeeSoup.AuthDomainGenericAuthCallback
for information on what the callback should do.
- try_generic_auth_callback(msg, username)¶
- Parameters:
msg (
Soup.Message
) –username (
str
) –
- Return type:
- do_accepts(msg, header) virtual¶
- Parameters:
msg (
Soup.Message
) –header (
str
) –
- Return type:
- do_challenge(msg) virtual¶
- Parameters:
msg (
Soup.Message
) – aSoup.Message
- Return type:
Adds a “WWW-Authenticate” or “Proxy-Authenticate” header to msg, requesting that the client authenticate, and sets msg's status accordingly.
This is used by
Soup.Server
internally and is probably of no use to anyone else.
- do_check_password(msg, username, password) virtual¶
- Parameters:
msg (
Soup.Message
) – aSoup.Message
username (
str
) – a usernamepassword (
str
) – a password
- Returns:
whether or not the message is authenticated
- Return type:
Checks if msg authenticates to domain via username and password. This would normally be called from a
Soup.AuthDomainGenericAuthCallback
.
Property Details¶
- Soup.AuthDomain.props.add_path¶
-
Add a path covered by this auth domain
- Soup.AuthDomain.props.filter¶
-
The
Soup.AuthDomainFilter
for the domain
- Soup.AuthDomain.props.filter_data¶
-
Data to pass to filter
- Soup.AuthDomain.props.generic_auth_callback¶
-
The
Soup.AuthDomainGenericAuthCallback
for the domain
- Soup.AuthDomain.props.generic_auth_data¶
-
Data to pass to auth callback
- Soup.AuthDomain.props.proxy¶
- Name:
proxy
- Type:
- Default Value:
- Flags:
Whether or not this is a proxy auth domain
- Soup.AuthDomain.props.realm¶
- Name:
realm
- Type:
- Default Value:
- Flags:
The realm of this auth domain