Class Credentials

All Implemented Interfaces:
PointerInterface

public class Credentials extends Object
The #GCredentials type is a reference-counted wrapper for native
credentials. This information 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.
g_socket_get_credentials().

Some operating systems supports securely sending and receiving
credentials over a Unix Domain Socket, see
#GUnixCredentialsMessage, g_unix_connection_send_credentials() and
g_unix_connection_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.

https://docs.gtk.org/gio/class.Credentials.html

  • Constructor Details

    • Credentials

      public Credentials(PointerContainer pointer)
    • Credentials

      public Credentials()
      Creates a new #GCredentials object with credentials matching the
      the current process.
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • getNative

      public Pointer getNative(int native_type)
      Gets a pointer to native credentials of type @native_type from
      @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.
      Parameters:
      native_type - The type of native credentials to get.
      Returns:
      The pointer to native credentials or %NULL if there is no #GCredentials support for the OS or if @native_type isn't supported by the OS. Do not free the returned data, it is owned by @credentials.
    • isSameUser

      public boolean isSameUser(@Nonnull Credentials other_credentials) throws AllocationError
      Checks if @credentials and @other_credentials is the same user.

      This operation can fail if #GCredentials is not supported on the
      the OS.
      Parameters:
      other_credentials - A #GCredentials.
      Returns:
      %TRUE if @credentials and @other_credentials has the same user, %FALSE otherwise or if @error is set.
      Throws:
      AllocationError
    • setNative

      public void setNative(int native_type, @Nonnull Pointer _native)
      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.
      Parameters:
      native_type - The type of native credentials to set.
      _native - A pointer to native credentials.
    • toStr

      public Str toStr()
      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.
      Returns:
      A string that should be freed with g_free().
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()