gi-soup-2.4.18: Libsoup bindings

Copyright Will Thompson Iñaki García Etxebarria and Jonas Platte LGPL-2.1 Iñaki García Etxebarria (inaki@blueleaf.cc) None Haskell2010

GI.Soup.Objects.AuthDomain

Description

No description available in the introspection data.

Synopsis

Exported types

newtype AuthDomain Source #

Memory-managed wrapper type.

Constructors

 AuthDomain (ManagedPtr AuthDomain)
Instances
 Source # Instance detailsDefined in GI.Soup.Objects.AuthDomain Methods Source # Instance detailsDefined in GI.Soup.Objects.AuthDomain Source # Instance detailsDefined in GI.Soup.Objects.AuthDomain type ParentTypes AuthDomain = Object ': ([] :: [Type])

class (GObject o, IsDescendantOf AuthDomain o) => IsAuthDomain o Source #

Type class for types which can be safely cast to AuthDomain, for instance with toAuthDomain.

Instances
 Source # Instance detailsDefined in GI.Soup.Objects.AuthDomain

toAuthDomain :: (MonadIO m, IsAuthDomain o) => o -> m AuthDomain Source #

Cast to AuthDomain, for types for which this is known to be safe. For general casts, use castTo.

A convenience alias for Nothing :: Maybe AuthDomain.

Methods

accepts

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a, IsMessage b) => a domain: a AuthDomain -> b msg: a Message -> m (Maybe Text) Returns: the username that msg has authenticated as, if in fact it has authenticated. Nothing otherwise.

Checks if msg contains appropriate authorization for domain to accept it. Mirroring authDomainCovers, this does not check whether or not domain <emphasis>cares</emphasis> if msg is authorized.

This is used by Server internally and is probably of no use to anyone else.

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a) => a domain: a AuthDomain -> Text path: the path to add to domain -> m ()

Adds path to domain, such that requests under path on domain's server will require authentication (unless overridden by authDomainRemovePath or authDomainSetFilter).

You can also add paths by setting the AUTH_DOMAIN_ADD_PATH property, which can also be used to add one or more paths at construct time.

challenge

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a, IsMessage b) => a domain: a AuthDomain -> b msg: a Message -> m ()

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 Server internally and is probably of no use to anyone else.

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a, IsMessage b) => a domain: a AuthDomain -> b msg: a Message -> Text username: a username -> Text password: a password -> m Bool Returns: whether or not the message is authenticated

Checks if msg authenticates to domain via username and password. This would normally be called from a AuthDomainGenericAuthCallback.

covers

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a, IsMessage b) => a domain: a AuthDomain -> b msg: a Message -> m Bool Returns: True if domain requires msg to be authenticated

Checks if domain requires msg to be authenticated (according to its paths and filter function). This does not actually look at whether msg <emphasis>is</emphasis> authenticated, merely whether or not it needs to be.

This is used by Server internally and is probably of no use to anyone else.

getRealm

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a) => a domain: a AuthDomain -> m Text Returns: domain's realm

Gets the realm name associated with domain

removePath

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a) => a domain: a AuthDomain -> Text path: the path to remove from domain -> m ()

Removes path from domain, such that requests under path on domain's server will NOT require authentication.

This is not simply an undo-er for authDomainAddPath; it can be used to "carve out" a subtree that does not require authentication inside a hierarchy that does. Note also that unlike with authDomainAddPath, 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 AUTH_DOMAIN_REMOVE_PATH property, which can also be used to remove one or more paths at construct time.

setFilter

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a) => a domain: a AuthDomain -> AuthDomainFilter filter: the auth filter for domain -> m ()

Adds filter as an authentication filter to domain. 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, or False if authentication is unnecessary for this request.

To help prevent security holes, your filter should return True by default, and only return False 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 return False in that case, and then return True for all other methods (rather than returning True for PUT and False 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 AUTH_DOMAIN_FILTER and AUTH_DOMAIN_FILTER_DATA properties, which can also be used to set the filter at construct time.

setGenericAuthCallback

Arguments

 :: (HasCallStack, MonadIO m, IsAuthDomain a) => a domain: a AuthDomain -> AuthDomainGenericAuthCallback authCallback: the auth callback -> m ()

Sets authCallback as an authentication-handling callback for domain. Whenever a request comes in to domain which cannot be authenticated via a domain-specific auth callback (eg, AuthDomainDigestAuthCallback), the generic auth callback will be invoked. See AuthDomainGenericAuthCallback for information on what the callback should do.

tryGenericAuthCallback

authDomainTryGenericAuthCallback :: (HasCallStack, MonadIO m, IsAuthDomain a, IsMessage b) => a -> b -> Text -> m Bool Source #

No description available in the introspection data.

Properties

No description available in the introspection data.

clearAuthDomainAddPath :: (MonadIO m, IsAuthDomain o) => o -> m () Source #

Set the value of the “add-path” property to Nothing. When overloading is enabled, this is equivalent to

clear #addPath


Construct a GValueConstruct with valid value for the “add-path” property. This is rarely needed directly, but it is used by new.

setAuthDomainAddPath :: (MonadIO m, IsAuthDomain o) => o -> Text -> m () Source #

Set the value of the “add-path” property. When overloading is enabled, this is equivalent to

set authDomain [ #addPath := value ]


filter

The AuthDomainFilter for the domain

clearAuthDomainFilter :: (MonadIO m, IsAuthDomain o) => o -> m () Source #

Set the value of the “filter” property to Nothing. When overloading is enabled, this is equivalent to

clear #filter


Construct a GValueConstruct with valid value for the “filter” property. This is rarely needed directly, but it is used by new.

getAuthDomainFilter :: (MonadIO m, IsAuthDomain o) => o -> m (Maybe AuthDomainFilter_WithClosures) Source #

Get the value of the “filter” property. When overloading is enabled, this is equivalent to

get authDomain #filter


setAuthDomainFilter :: (MonadIO m, IsAuthDomain o) => o -> FunPtr C_AuthDomainFilter -> m () Source #

Set the value of the “filter” property. When overloading is enabled, this is equivalent to

set authDomain [ #filter := value ]


filterData

No description available in the introspection data.

Construct a GValueConstruct with valid value for the “filter-data” property. This is rarely needed directly, but it is used by new.

getAuthDomainFilterData :: (MonadIO m, IsAuthDomain o) => o -> m (Ptr ()) Source #

Get the value of the “filter-data” property. When overloading is enabled, this is equivalent to

get authDomain #filterData


setAuthDomainFilterData :: (MonadIO m, IsAuthDomain o) => o -> Ptr () -> m () Source #

Set the value of the “filter-data” property. When overloading is enabled, this is equivalent to

set authDomain [ #filterData := value ]


genericAuthCallback

The AuthDomainGenericAuthCallback for the domain

clearAuthDomainGenericAuthCallback :: (MonadIO m, IsAuthDomain o) => o -> m () Source #

Set the value of the “generic-auth-callback” property to Nothing. When overloading is enabled, this is equivalent to

clear #genericAuthCallback


Construct a GValueConstruct with valid value for the “generic-auth-callback” property. This is rarely needed directly, but it is used by new.

Get the value of the “generic-auth-callback” property. When overloading is enabled, this is equivalent to

get authDomain #genericAuthCallback


Set the value of the “generic-auth-callback” property. When overloading is enabled, this is equivalent to

set authDomain [ #genericAuthCallback := value ]


genericAuthData

No description available in the introspection data.

Construct a GValueConstruct with valid value for the “generic-auth-data” property. This is rarely needed directly, but it is used by new.

getAuthDomainGenericAuthData :: (MonadIO m, IsAuthDomain o) => o -> m (Ptr ()) Source #

Get the value of the “generic-auth-data” property. When overloading is enabled, this is equivalent to

get authDomain #genericAuthData


setAuthDomainGenericAuthData :: (MonadIO m, IsAuthDomain o) => o -> Ptr () -> m () Source #

Set the value of the “generic-auth-data” property. When overloading is enabled, this is equivalent to

set authDomain [ #genericAuthData := value ]


proxy

No description available in the introspection data.

Construct a GValueConstruct with valid value for the “proxy” property. This is rarely needed directly, but it is used by new.

getAuthDomainProxy :: (MonadIO m, IsAuthDomain o) => o -> m Bool Source #

Get the value of the “proxy” property. When overloading is enabled, this is equivalent to

get authDomain #proxy


realm

No description available in the introspection data.

Construct a GValueConstruct with valid value for the “realm” property. This is rarely needed directly, but it is used by new.

getAuthDomainRealm :: (MonadIO m, IsAuthDomain o) => o -> m Text Source #

Get the value of the “realm” property. When overloading is enabled, this is equivalent to

get authDomain #realm


removePath

No description available in the introspection data.

clearAuthDomainRemovePath :: (MonadIO m, IsAuthDomain o) => o -> m () Source #

Set the value of the “remove-path” property to Nothing. When overloading is enabled, this is equivalent to

clear #removePath


Construct a GValueConstruct with valid value for the “remove-path” property. This is rarely needed directly, but it is used by new.

setAuthDomainRemovePath :: (MonadIO m, IsAuthDomain o) => o -> Text -> m () Source #

Set the value of the “remove-path” property. When overloading is enabled, this is equivalent to

set authDomain [ #removePath := value ]