UserPrincipalLookupService (Java Platform SE 8 )
Keywords: java.nio.file.attribute.UserPrincipalLookupService class
Date: 2026-04-17

compact1, compact2, compact3
java.nio.file.attribute

## Class UserPrincipalLookupService

- java.lang.Object
- - java.nio.file.attribute.UserPrincipalLookupService

-     public abstract class UserPrincipalLookupService
      extends Object

  An object to lookup user and group principals by name. A `UserPrincipal` represents an identity that may be used to determine access rights to objects in a file system. A `GroupPrincipal` represents a group identity. A `UserPrincipalLookupService` defines methods to lookup identities by name or group name (which are typically user or account names). Whether names and group names are case sensitive or not depends on the implementation. The exact definition of a group is implementation specific but typically a group represents an identity created for administrative purposes so as to determine the access rights for the members of the group. In particular it is implementation specific if the namespace for names and groups is the same or is distinct. To ensure consistent and correct behavior across platforms it is recommended that this API be used as if the namespaces are distinct. In other words, the `lookupPrincipalByName` should be used to lookup users, and `lookupPrincipalByGroupName` should be used to lookup groups.
  Since:
    1.7
  See Also:
    `FileSystem.getUserPrincipalLookupService()`

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `UserPrincipalLookupService()` Initializes a new instance of this class.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract GroupPrincipal` | `lookupPrincipalByGroupName(String group)` Lookup a group principal by group name.
    `abstract UserPrincipal` | `lookupPrincipalByName(String name)` Lookup a user principal by name.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### UserPrincipalLookupService

          protected UserPrincipalLookupService()

      Initializes a new instance of this class.

  - ### Method Detail

    - #### lookupPrincipalByName

          public abstract UserPrincipal lookupPrincipalByName(String name)
                                                       throws IOException

      Lookup a user principal by name.
      Parameters:
        `name` - the string representation of the user principal to lookup
      Returns:
        a user principal
      Throws:
        `UserPrincipalNotFoundException` - the principal does not exist
        `IOException` - if an I/O error occurs
        `SecurityException` - In the case of the default provider, and a security manager is installed, it checks `RuntimePermission``("lookupUserInformation")`

    - #### lookupPrincipalByGroupName

          public abstract GroupPrincipal lookupPrincipalByGroupName(String group)
                                                             throws IOException

      Lookup a group principal by group name.

      Where an implementation does not support any notion of group then this method always throws `UserPrincipalNotFoundException`. Where the namespace for user accounts and groups is the same, then this method is identical to invoking `lookupPrincipalByName`.

      Parameters:
        `group` - the string representation of the group to lookup
      Returns:
        a group principal
      Throws:
        `UserPrincipalNotFoundException` - the principal does not exist or is not a group
        `IOException` - if an I/O error occurs
        `SecurityException` - In the case of the default provider, and a security manager is installed, it checks `RuntimePermission``("lookupUserInformation")`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.