gi-soup-2.4.21: Libsoup bindings

CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (inaki@blueleaf.cc)
Safe HaskellNone
LanguageHaskell2010

GI.Soup.Objects.AuthDomain

Contents

Description

No description available in the introspection data.

Synopsis

Exported types

newtype AuthDomain Source #

Memory-managed wrapper type.

Instances
GObject AuthDomain Source # 
Instance details

Defined in GI.Soup.Objects.AuthDomain

Methods

gobjectType :: IO GType #

HasParentTypes AuthDomain Source # 
Instance details

Defined in GI.Soup.Objects.AuthDomain

type ParentTypes AuthDomain Source # 
Instance details

Defined 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
(GObject o, IsDescendantOf AuthDomain o) => IsAuthDomain o Source # 
Instance details

Defined 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.

Methods

accepts

authDomainAccepts Source #

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.

addPath

authDomainAddPath Source #

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

authDomainChallenge Source #

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.

checkPassword

authDomainCheckPassword Source #

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

authDomainCovers Source #

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

authDomainGetRealm Source #

Arguments

:: (HasCallStack, MonadIO m, IsAuthDomain a) 
=> a

domain: a AuthDomain

-> m Text

Returns: domain's realm

Gets the realm name associated with domain

removePath

authDomainRemovePath Source #

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

authDomainSetFilter Source #

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

authDomainSetGenericAuthCallback Source #

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

addPath

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

constructAuthDomainAddPath :: IsAuthDomain o => Text -> IO (GValueConstruct o) Source #

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

constructAuthDomainFilter :: IsAuthDomain o => FunPtr C_AuthDomainFilter -> IO (GValueConstruct o) Source #

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.

constructAuthDomainFilterData :: IsAuthDomain o => Ptr () -> IO (GValueConstruct o) Source #

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

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

constructAuthDomainGenericAuthCallback :: IsAuthDomain o => FunPtr C_AuthDomainGenericAuthCallback -> IO (GValueConstruct o) Source #

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

getAuthDomainGenericAuthCallback :: (MonadIO m, IsAuthDomain o) => o -> m (Maybe AuthDomainGenericAuthCallback_WithClosures) Source #

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

get authDomain #genericAuthCallback

setAuthDomainGenericAuthCallback :: (MonadIO m, IsAuthDomain o) => o -> FunPtr C_AuthDomainGenericAuthCallback -> m () Source #

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.

constructAuthDomainGenericAuthData :: IsAuthDomain o => Ptr () -> IO (GValueConstruct o) Source #

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.

constructAuthDomainProxy :: IsAuthDomain o => Bool -> IO (GValueConstruct o) Source #

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.

constructAuthDomainRealm :: IsAuthDomain o => Text -> IO (GValueConstruct o) Source #

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

constructAuthDomainRemovePath :: IsAuthDomain o => Text -> IO (GValueConstruct o) Source #

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 ]