class Gio::Credentials
- Gio::Credentials
- GObject::Object
- Reference
- Object
Overview
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. Gio::Socket#credentials
.
Some operating systems supports securely sending and receiving
credentials over a Unix Domain Socket, see Gio::UnixCredentialsMessage
,
Gio::UnixConnection#send_credentials
and
Gio::UnixConnection#receive_credentials
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
.
Defined in:
lib/gi-crystal/src/auto/gio-2.0/credentials.crConstructors
-
.new : self
Creates a new #GCredentials object with credentials matching the the current process.
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#hash(hasher)
See
Object#hash(hasher)
-
#is_same_user(other_credentials : Gio::Credentials) : Bool
Checks if credentials and other_credentials is the same user.
-
#set_native(native_type : Gio::CredentialsType, native : Pointer(Void)) : Nil
Copies the native credentials of type native_type from native into credentials.
-
#to_string : String
Creates a human-readable textual representation of credentials that can be used in logging and debug messages.
-
#unix_pid : Int32
Tries to get the UNIX process identifier from credentials.
-
#unix_user : UInt32
Tries to get the UNIX user identifier from credentials.
-
#unix_user=(uid : UInt32) : Bool
Tries to set the UNIX user identifier on credentials.
Instance methods inherited from class GObject::Object
==(other : self)
==,
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void) | Nil
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
hash(hasher)
hash,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void) | Nil
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void) | Nil) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void) | Nil
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void) | Nil
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
cast?(obj : GObject::Object) : self | Nil
cast?,
compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Macros inherited from class GObject::Object
previous_vfunc(*args)
previous_vfunc,
previous_vfunc!(*args)
previous_vfunc!,
signal(signature)
signal
Constructor Detail
Creates a new #GCredentials object with credentials matching the the current process.
Class Method Detail
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.
Checks if credentials and other_credentials is the same user.
This operation can fail if #GCredentials is not supported on the the OS.
Copies the native credentials of type native_type 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 #GCredentials support for the OS or if native_type isn't supported by the OS.
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.
Tries to get the UNIX process identifier from credentials. This method is only available on UNIX platforms.
This operation can fail if #GCredentials is not supported on the OS or if the native credentials type does not contain information about the UNIX process ID.
Tries to get the UNIX user identifier from credentials. This method is only available on UNIX platforms.
This operation can fail if #GCredentials is not supported on the OS or if the native credentials type does not contain information about the UNIX user.
Tries to set the UNIX user identifier on credentials. This method is only available on UNIX platforms.
This operation can fail if #GCredentials 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.