Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
The GCredentials
type is a reference-counted wrapper for native
credentials.
The information in GCredentials
is typically used for identifying,
authenticating and authorizing other processes.
Some operating systems supports looking up the credentials of the remote
peer of a communication endpoint - see e.g. socketGetCredentials
.
Some operating systems supports securely sending and receiving
credentials over a Unix Domain Socket, see UnixCredentialsMessage
,
unixConnectionSendCredentials
and
unixConnectionReceiveCredentials
for details.
On Linux, the native credential type is a struct ucred
- see the
`unix(7)` man page) for details. This corresponds to
G_CREDENTIALS_TYPE_LINUX_UCRED
.
On Apple operating systems (including iOS, tvOS, and macOS), the native credential
type is a struct xucred
. This corresponds to G_CREDENTIALS_TYPE_APPLE_XUCRED
.
On FreeBSD, Debian GNU/kFreeBSD, and GNU/Hurd, the native credential type is a
struct cmsgcred
. This corresponds to G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED
.
On NetBSD, the native credential type is a struct unpcbid
.
This corresponds to G_CREDENTIALS_TYPE_NETBSD_UNPCBID
.
On OpenBSD, the native credential type is a struct sockpeercred
.
This corresponds to G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED
.
On Solaris (including OpenSolaris and its derivatives), the native credential type
is a ucred_t
. This corresponds to G_CREDENTIALS_TYPE_SOLARIS_UCRED
.
Since GLib 2.72, on Windows, the native credentials may contain the PID of a
process. This corresponds to G_CREDENTIALS_TYPE_WIN32_PID
.
Since: 2.26
Synopsis
- newtype Credentials = Credentials (ManagedPtr Credentials)
- class (GObject o, IsDescendantOf Credentials o) => IsCredentials o
- toCredentials :: (MonadIO m, IsCredentials o) => o -> m Credentials
- credentialsGetUnixPid :: (HasCallStack, MonadIO m, IsCredentials a) => a -> m Int32
- credentialsGetUnixUser :: (HasCallStack, MonadIO m, IsCredentials a) => a -> m Word32
- credentialsIsSameUser :: (HasCallStack, MonadIO m, IsCredentials a, IsCredentials b) => a -> b -> m ()
- credentialsNew :: (HasCallStack, MonadIO m) => m Credentials
- credentialsSetNative :: (HasCallStack, MonadIO m, IsCredentials a) => a -> CredentialsType -> Ptr () -> m ()
- credentialsSetUnixUser :: (HasCallStack, MonadIO m, IsCredentials a) => a -> Word32 -> m ()
- credentialsToString :: (HasCallStack, MonadIO m, IsCredentials a) => a -> m Text
Exported types
newtype Credentials Source #
Memory-managed wrapper type.
Instances
Eq Credentials Source # | |
Defined in GI.Gio.Objects.Credentials (==) :: Credentials -> Credentials -> Bool # (/=) :: Credentials -> Credentials -> Bool # | |
GObject Credentials Source # | |
Defined in GI.Gio.Objects.Credentials | |
ManagedPtrNewtype Credentials Source # | |
Defined in GI.Gio.Objects.Credentials | |
TypedObject Credentials Source # | |
Defined in GI.Gio.Objects.Credentials | |
HasParentTypes Credentials Source # | |
Defined in GI.Gio.Objects.Credentials | |
IsGValue (Maybe Credentials) Source # | Convert |
Defined in GI.Gio.Objects.Credentials gvalueGType_ :: IO GType # gvalueSet_ :: Ptr GValue -> Maybe Credentials -> IO () # gvalueGet_ :: Ptr GValue -> IO (Maybe Credentials) # | |
type ParentTypes Credentials Source # | |
Defined in GI.Gio.Objects.Credentials type ParentTypes Credentials = '[Object] |
class (GObject o, IsDescendantOf Credentials o) => IsCredentials o Source #
Type class for types which can be safely cast to Credentials
, for instance with toCredentials
.
Instances
(GObject o, IsDescendantOf Credentials o) => IsCredentials o Source # | |
Defined in GI.Gio.Objects.Credentials |
toCredentials :: (MonadIO m, IsCredentials o) => o -> m Credentials Source #
Cast to Credentials
, for types for which this is known to be safe. For general casts, use castTo
.
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, isSameUser, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, toString, unref, watchClosure.
Getters
getData, getProperty, getQdata, getUnixPid, getUnixUser.
Setters
getUnixPid
credentialsGetUnixPid Source #
:: (HasCallStack, MonadIO m, IsCredentials a) | |
=> a |
|
-> m Int32 | Returns: The UNIX process ID, or |
Tries to get the UNIX process identifier from credentials
. This
method is only available on UNIX platforms.
This operation can fail if Credentials
is not supported on the
OS or if the native credentials type does not contain information
about the UNIX process ID.
Since: 2.36
getUnixUser
credentialsGetUnixUser Source #
:: (HasCallStack, MonadIO m, IsCredentials a) | |
=> a |
|
-> m Word32 | Returns: The UNIX user identifier or |
Tries to get the UNIX user identifier from credentials
. This
method is only available on UNIX platforms.
This operation can fail if Credentials
is not supported on the
OS or if the native credentials type does not contain information
about the UNIX user.
Since: 2.26
isSameUser
credentialsIsSameUser Source #
:: (HasCallStack, MonadIO m, IsCredentials a, IsCredentials b) | |
=> a |
|
-> b |
|
-> m () | (Can throw |
Checks if credentials
and otherCredentials
is the same user.
This operation can fail if Credentials
is not supported on the
the OS.
Since: 2.26
new
:: (HasCallStack, MonadIO m) | |
=> m Credentials | Returns: A |
Creates a new Credentials
object with credentials matching the
the current process.
Since: 2.26
setNative
:: (HasCallStack, MonadIO m, IsCredentials a) | |
=> a |
|
-> CredentialsType |
|
-> Ptr () |
|
-> m () |
Copies the native credentials of type nativeType
from native
into credentials
.
It is a programming error (which will cause a warning to be
logged) to use this method if there is no Credentials
support for
the OS or if nativeType
isn't supported by the OS.
Since: 2.26
setUnixUser
credentialsSetUnixUser Source #
:: (HasCallStack, MonadIO m, IsCredentials a) | |
=> a |
|
-> Word32 |
|
-> m () | (Can throw |
Tries to set the UNIX user identifier on credentials
. This method
is only available on UNIX platforms.
This operation can fail if Credentials
is not supported on the
OS or if the native credentials type does not contain information
about the UNIX user. It can also fail if the OS does not allow the
use of "spoofed" credentials.
Since: 2.26
toString
:: (HasCallStack, MonadIO m, IsCredentials a) | |
=> a |
|
-> m Text | Returns: A string that should be freed with |
Creates a human-readable textual representation of credentials
that can be used in logging and debug messages. The format of the
returned string may change in future GLib release.
Since: 2.26