Package org.apache.wiki.auth.user

# Interface UserProfile

All Superinterfaces:
  `Serializable`

All Known Implementing Classes:
  `DefaultUserProfile`

public interface UserProfile extends Serializable
Class for representing wiki user information, such as the login name, full name, wiki name, and e-mail address. Note that since 2.6 the wiki name is required to be automatically computed from the full name. As of 2.8, user profiles can store custom key/value String/Serializable attributes, and store a unique ID. Locks are checked by `AuthenticationManager`; if a profile is locked, the user cannot log with that profile.

Since:
  2.3

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ATTR_CURRENT_LOGIN_IP`
IP
`static final String`
`ATTR_CURRENT_LOGIN_TIMESTAMP`
LONG time in ms since epoch
`static final String`
`ATTR_PREVIOUS_LOGIN_IP`
IP
`static final String`
`ATTR_PREVIOUS_LOGIN_TIMESTAMP`
LONG time in ms since epoch

## Method Summary

Modifier and Type
Method
Description
`Map<String,Serializable>`
`getAttributes()`
Returns the attributes associated with this profile as a Map of key/value pairs.
`Date`
`getCreated()`
Returns the creation date.
`String`
`getEmail()`
Returns the user's e-mail address.
`String`
`getFullname()`
Returns the user's full name.
`Date`
`getLastModified()`
Returns the last-modified date.
`Date`
`getLockExpiry()`
Returns the date/time of expiration of the profile's lock, if it has been previously locked via `setLockExpiry(Date)` and the lock is still active.
`String`
`getLoginName()`
Returns the user's login name.
`String`
`getPassword()`
Returns the user password for use with custom authentication.
`default List<String>`
`getPreviousHashedCredentials()`
List of recently used passwords in hashed format. may be empty
`String`
`getUid()`
Returns the unique identifier for the user profile.
`String`
`getWikiName()`
Returns the user's wiki name, based on the full name with all whitespace removed.
`boolean`
`isLocked()`
Returns `true` if the profile is currently locked (disabled); `false` otherwise.
`boolean`
`isNew()`
Returns `true` if the profile has never been saved before.
`void`
`setCreated(Date date)`
Sets the created date.
`void`
`setEmail(String email)`
Sets the user's e-mail address.
`void`
`setFullname(String arg)`
Sets the user's full name.
`void`
`setLastModified(Date date)`
Sets the last-modified date
`void`
`setLockExpiry(Date expiry)`
Locks the profile until a specified lock expiration date.
`void`
`setLoginName(String name)`
Sets the name by which the user logs in.
`void`
`setPassword(String arg)`
Sets the user's password for use with custom authentication.
`void`
`setUid(String uid)`
Sets the unique identifier for the user profile.
`String`
`toString()`
Returns a string representation of this user profile.

## Field Details

### ATTR_PREVIOUS_LOGIN_IP

static final String ATTR_PREVIOUS_LOGIN_IP
IP

See Also:
  - Constant Field Values

### ATTR_PREVIOUS_LOGIN_TIMESTAMP

static final String ATTR_PREVIOUS_LOGIN_TIMESTAMP
LONG time in ms since epoch

See Also:
  - Constant Field Values

### ATTR_CURRENT_LOGIN_IP

static final String ATTR_CURRENT_LOGIN_IP
IP

See Also:
  - Constant Field Values

### ATTR_CURRENT_LOGIN_TIMESTAMP

static final String ATTR_CURRENT_LOGIN_TIMESTAMP
LONG time in ms since epoch

See Also:
  - Constant Field Values

## Method Details

### getAttributes

Map<String,Serializable> getAttributes()
Returns the attributes associated with this profile as a Map of key/value pairs. The Map should generally be a "live" Map; changes to the keys or values will be reflected in the UserProfile.

Returns:
  the attributes

### getCreated

Date getCreated()
Returns the creation date.

Returns:
  the creation date

### getEmail

String getEmail()
Returns the user's e-mail address.

Returns:
  the e-mail address

### getFullname

String getFullname()
Returns the user's full name.

Returns:
  the full name

### getLastModified

Date getLastModified()
Returns the last-modified date.

Returns:
  the date and time of last modification

### getLockExpiry

Date getLockExpiry()
Returns the date/time of expiration of the profile's lock, if it has been previously locked via `setLockExpiry(Date)` and the lock is still active. If the profile is unlocked, this method returns `null`. Note that calling this method after the expiration date, even if had previously been set explicitly by `setLockExpiry(Date)`, will always return `null</null>.`

Returns:
  the lock expiration date

### getLoginName

String getLoginName()
Returns the user's login name.

Returns:
  the login name

### getPassword

String getPassword()
Returns the user password for use with custom authentication. Note that the password field is not meaningful for container authentication; the user's private credentials are generally stored elsewhere. While it depends on the `UserDatabase`implementation, in most cases the value returned by this method will be a password hash, not the password itself.

Returns:
  the password

### getUid

String getUid()
Returns the unique identifier for the user profile. If not previously set, the value will be `null`.

Returns:
  the unique ID.

### getWikiName

String getWikiName()
Returns the user's wiki name, based on the full name with all whitespace removed.

Returns:
  the wiki name.

### isLocked

boolean isLocked()
Returns `true` if the profile is currently locked (disabled); `false` otherwise. By default, profiles are created unlocked. Strictly speaking, calling this method is equivalent to calling `getLockExpiry()` and, if it returns a non-`null` value, checking if the date returned is later than the current time.

Returns:
  the result

### isNew

boolean isNew()
Returns `true` if the profile has never been saved before. Implementing classes might check the last modified date, for example, to determine this.

Returns:
  whether the profile is new

### setCreated

void setCreated(Date date)
Sets the created date.

Parameters:
  `date` - the creation date

### setEmail

void setEmail(String email)
Sets the user's e-mail address.

Parameters:
  `email` - the e-mail address

### setFullname

void setFullname(String arg)
Sets the user's full name. For example, "Janne Jalkanen."

Parameters:
  `arg` - the full name

### setLastModified

void setLastModified(Date date)
Sets the last-modified date

Parameters:
  `date` - the last-modified date

### setLockExpiry

void setLockExpiry(Date expiry)
Locks the profile until a specified lock expiration date.

Parameters:
  `expiry` - the date the lock expires; setting this value to `null` will cause the lock to be cleared.

### setLoginName

void setLoginName(String name)
Sets the name by which the user logs in. The login name is used as the username for custom authentication (see `AuthenticationManager.login(org.apache.wiki.api.core.Session, jakarta.servlet.http.HttpServletRequest, String, String)`, `UserDatabaseLoginModule`). The login name is typically a short name ("jannej"). In contrast, the wiki name is typically of type FirstnameLastName ("JanneJalkanen").

Parameters:
  `name` - the login name

### setPassword

void setPassword(String arg)
Sets the user's password for use with custom authentication. It is not the responsibility of implementing classes to hash the password; that responsibility is borne by the UserDatabase implementation during save operations (see `UserDatabase.save(UserProfile)`). Note that the password field is not meaningful for container authentication; the user's private credentials are generally stored elsewhere.

Parameters:
  `arg` - the password

### setUid

void setUid(String uid)
Sets the unique identifier for the user profile. Note that UserDatabase implementations are required not to change the unique identifier after the initial save.

Parameters:
  `uid` - the unique identifier to set

### toString

String toString()
Returns a string representation of this user profile.

Overrides:
  `toString` in class `Object`
Returns:
  the string

### getPreviousHashedCredentials

default List<String> getPreviousHashedCredentials()
List of recently used passwords in hashed format. may be empty

Returns:
  non null list
Since:
  3.0.0