***  This class provides Binary Compatibility only, not Source Compatibility  ***

com.sas.services.user
Class UserService

com.sas.services.user.UserService
All Implemented Interfaces:
com.sas.entities.EntityKeyInterface, ServiceNotificationBroadcasterInterface, RemoteServiceInterface, UserServiceInterface, java.rmi.Remote

public class UserService
implements UserServiceInterface

The UserServiceInterface provides mechanisms for storing information about users and retrieving user information. Methods are provided to store and retrieve user contexts, retrieve user profile information, retrieve credential sets, and create new user contexts.

Since:
1.1
See Also:
UserServiceFactory, UserServiceInitObject

Field Summary
 
Fields inherited from interface com.sas.services.RemoteServiceInterface
CLASS_IDENTIFIER, CLASS_IDENTIFIER_1_1, CLASS_IDENTIFIER_1_2, CLASS_IDENTIFIER_SERVICE_TYPE, CLASS_IDENTIFIER_SERVICE_TYPE_1_1, CLASS_IDENTIFIER_SERVICE_TYPE_1_2
 
Method Summary
 void configure(ServiceConfigurationInterface serviceConfiguration)
          Configures service.
 ProfileInterface createProfile(UserContextInterface user, java.lang.String application)
          Create a new profile.
 ProfileInterface createProfile(UserContextInterface privUser, UserContextInterface user, java.lang.String application)
          Create a new profile.
 void destroy()
          Destroys the service.
 UserContextInterface fromByteArray(byte[] data)
          Create a UserContext from a byte array returned from the UserContext.toByteArray() method.
 RemoteCallbackHandler getChallengeCallbackHandler()
          Get the object that will handle credential challenge callbacks.
 boolean getGroupLoginEnabled()
          Get the flag indicating if group logins are allowed to be used to create User Contexts.
 java.util.List<IdentityGroupInterface> getGroups(UserContextInterface user)
          Get all the identity groups that a user belongs to.
static InformationServiceInterface getInformationService()
          Gets a foundation Information Service.
static UserServiceInterface getInstance(ServiceConfigurationInterface serviceConfiguration, DiscoveryServiceInterface discoveryService)
          Gets a singleton instance of the user service for the specified service configuration.
 ProfileInterface getProfile(PersonInterface person, java.lang.String application)
          Get the profile for a Person object.
 ProfileDomain getProfileDefinition(java.lang.String application)
          Get the profile definition for an application.
 RemoteServiceInterface getServiceProxy()
          Gets the service proxy.
 SummaryData getSummaryData(boolean includeDetails)
          Get the summary data regarding the active users.
 UserContextInterface getUser(java.lang.String user)
          Get a user from the user service.
 UserContextInterface getUser(UserContextInterface privUser, java.lang.String user)
          Get a user from the user service.
 int getUserCount()
          Get the count of users that are currently logged in.
 void initialize(com.sas.services.user.UserServiceInitObject initObject)
          Initializes the user service.
 ProfileInterface loadProfile(UserContextInterface user, java.lang.String application)
          Get the profile object for the user from the user's connected repositories.
 ProfileInterface loadProfile(UserContextInterface searchContext, UserContextInterface user, java.lang.String application)
          Get the profile object for the user from the searchContext's connected repositories.
 void loadUserCredentials(UserContextInterface user)
          Get credential sets for a user.
 void loadUserCredentials(UserContextInterface searchContext, UserContextInterface user)
          Get the profile for a Person object.
 void logFormat(org.apache.log4j.Level level, java.lang.String context, java.util.ResourceBundle bundle, java.lang.String key, java.lang.Object arg0)
           
 void logFormat(org.apache.log4j.Level level, java.lang.String context, java.util.ResourceBundle bundle, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1)
           
 void logFormat(org.apache.log4j.Level level, java.lang.String context, java.util.ResourceBundle bundle, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2)
           
 void logFormat(org.apache.log4j.Level level, java.lang.String context, java.util.ResourceBundle bundle, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
 void logMessage(org.apache.log4j.Level level, java.lang.String message)
           
 void logMessage(org.apache.log4j.Level level, java.lang.String message, java.lang.String context, java.lang.Throwable t)
           
 UserContextInterface newAuthenticatedUser(javax.security.auth.Subject subject)
          Create a new UserContext based on the Subject provided.
 UserContextInterface newRemoteUser(SubjectMatter subject)
          Create a new UserContext using a SubjectMatter object that is populated with the PFS principals and credentials of an authenticated user.
 UserContextInterface newRemoteUser(SubjectMatter subject, java.util.Map advancedOptions)
          Create a new UserContext using a SubjectMatter object that is populated with the PFS principals and credentials of an authenticated user.
 UserContextInterface newUser()
           
 UserContextInterface newUser(java.lang.String clientSource, java.lang.String appSource)
          Create a new UserContext based on the current OS identity of the user.
 UserContextInterface newUser(java.lang.String clientSource, java.lang.String appSource, java.util.Map advancedOptions)
          Create a new UserContext based on the current OS identity of the user.
 UserContextInterface newUser(java.lang.String uid, java.lang.String password, java.lang.String domain)
          Create a new user context given a user id, password, and authentication domain.
 UserContextInterface newUser(java.lang.String uid, java.lang.String password, java.lang.String domain, java.lang.String clientSource, java.lang.String appSource)
          Create a new user context given a user id, password, and authentication domain.
 UserContextInterface newUser(UserContext privUser, java.lang.String uid, java.lang.String password, java.lang.String domain)
          Create a new user context given a user id, password, and authentication domain.
 UserContextInterface newUser(UserContext privUser, java.lang.String uid, java.lang.String password, java.lang.String domain, java.lang.String clientSource, java.lang.String appSource)
          Create a new user context given a privileged context, user id, password, and authentication domain.
 UserContextInterface newUser(UserContext privUser, java.lang.String uid, java.lang.String password, java.lang.String domain, java.lang.String clientSource, java.lang.String appSource, java.util.Map advancedOptions)
          Create a new user context given a privileged context, user id, password, and authentication domain.
 UserIdentityInterface newUserIdentity(java.lang.Object principal, java.lang.Object credential, java.lang.String domain, java.lang.String mechanism)
          Return a new user identity object given the Pricipal, credential, domain, and authentication mechanism.
 UserContextInterface newUserWithInfoService(UserContext privUser, java.lang.String uid, java.lang.String password, java.lang.String domain, InformationServiceInterface infoService)
          Deprecated. This method should no longer be used. In order for the platform to effectively direct requests in a clustered environment, the Discovery Service needs to be able to select the correct available service rather than having the client specify one. If this method is used, the Information Service parameter will be ignored.
 boolean removeUser(UserContextInterface user)
          Remove a user from the user service.
 void resetInternalPassword(java.lang.String host, java.lang.String port, java.lang.String username, java.lang.String oldPassword, java.lang.String newPassword)
          Reset a user's internal metadata password.
 void setChallengeCallbackHandler(RemoteCallbackHandler handler)
          Set the object that will be used to handle credential challenge callbacks.
 void setGroupLoginEnabled(boolean groupLoginFlag)
          Set the UserService to allow group logins to be used to create User Contexts.
 void setUser(UserContextInterface user)
          Add a user to the user service.
 void userDestroyed(UserContextInterface user)
          For internal use only.
 
Methods inherited from class com.sas.services.AbstractRemoteService
addServiceObserver, bindToDiscoveryService, getCreationTime, getDetails, getDiscoveryService, getEntityKey, getEnvironment, getServiceConfiguration, getServiceConfiguration, getServiceState, handleJVMShutdown, isAccessibleToRemoteClients, isExported, isHandlingJVMShutdown, notifyServiceObservers, reconfigure, removeAllServiceObservers, removeServiceObserver, sameEntity, setDiscoveryService, setEntityKey, setRemoteableExporter, setServiceState, toString, unbindFromDiscoveryService
 
Methods inherited from interface com.sas.services.RemoteServiceInterface
getCreationTime, getServiceConfiguration, getServiceConfiguration, getServiceState, isAccessibleToRemoteClients, isExported, reconfigure, setServiceState
 
Methods inherited from interface com.sas.services.mgmt.ServiceNotificationBroadcasterInterface
addServiceObserver, notifyServiceObservers, removeAllServiceObservers, removeServiceObserver
 

Method Detail

getInformationService

public static InformationServiceInterface getInformationService()
                                                         throws ServiceException
Gets a foundation Information Service.

Returns:
Information Service.
Throws:
ServiceException - if unable to obtain a foundation Information Service.

initialize

public void initialize(com.sas.services.user.UserServiceInitObject initObject)
Initializes the user service.

Parameters:
initObject - User service initialization data.

configure

public void configure(ServiceConfigurationInterface serviceConfiguration)
               throws java.rmi.RemoteException,
                      ServiceException
Configures service. Note that this method may used to initialize a service or to re-configure a previously initialized service.

Specified by:
configure in interface RemoteServiceInterface
Overrides:
configure in class AbstractRemoteService
Parameters:
serviceConfiguration - An object containing configuration data necessary to initialize or re-configure a service. Note that the service provider must verify that the object type is supported. An InitializationException should be thrown if the initialization was not completed successfully to indicate that the instance should not be used.
Throws:
ServiceException - if unable to configure the service.
java.rmi.RemoteException - if a network anomaly is encountered.

destroy

public void destroy()
             throws ServiceException,
                    java.rmi.RemoteException
Destroys the service. The service should release any resources it holds in preparation for termination of use of this service.

Specified by:
destroy in interface RemoteServiceInterface
Overrides:
destroy in class AbstractRemoteService
Throws:
java.rmi.RemoteException - if a network anomaly is encountered.
ServiceException - if the service is unable to prepare itself for destruction.

getServiceProxy

public final RemoteServiceInterface getServiceProxy()
Gets the service proxy.

Specified by:
getServiceProxy in interface RemoteServiceInterface
Overrides:
getServiceProxy in class AbstractRemoteService
Returns:
A proxy to this service or null if a proxy is not available.

getInstance

public static UserServiceInterface getInstance(ServiceConfigurationInterface serviceConfiguration,
                                               DiscoveryServiceInterface discoveryService)
                                        throws ServiceException
Gets a singleton instance of the user service for the specified service configuration. If a user service has not yet been instantiated then one will be created. Otherwise the pre-existing user service will be reconfigured using the new configuration.

Parameters:
serviceConfiguration - Configuration to be used to initialize the User Service.
discoveryService - The DiscoveryService object to use to bind the new UserService instance.
Returns:
Configured User Service.
Throws:
ServiceException - if unable to obtain the user service.

setUser

public void setUser(UserContextInterface user)
             throws java.rmi.RemoteException
Add a user to the user service. If a UserContext already exists with the same key, the new user will be added to a List of users with that key. Since this can make things confusing to try keep track of who's who, it is strongly recommended that applications set the key on the UserContext to some unique value before calling the setUser method.

Specified by:
setUser in interface UserServiceInterface
Parameters:
user - A new user context to add to the service.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

userDestroyed

public void userDestroyed(UserContextInterface user)
                   throws ServiceException,
                          java.rmi.RemoteException
Description copied from interface: UserServiceInterface
For internal use only.

Specified by:
userDestroyed in interface UserServiceInterface
Parameters:
user - A user being destroyed.
Throws:
ServiceException - In case of service error.
java.rmi.RemoteException - In the event of remote object failure.

removeUser

public boolean removeUser(UserContextInterface user)
                   throws java.rmi.RemoteException
Remove a user from the user service.

Specified by:
removeUser in interface UserServiceInterface
Parameters:
user - The user to remove.
Returns:
true if the user was found and removed, false otherwise.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

getUser

public UserContextInterface getUser(java.lang.String user)
                             throws java.rmi.RemoteException
Get a user from the user service. This method is protected using JAAS permissions. A UserContextPermission is required to read a UserContext. UserContextPermission can be granted globally to specific UserContext names if they are known in advance to be publicly available.

Specified by:
getUser in interface UserServiceInterface
Parameters:
user - The user to retrieve. The string may be the name or key. The name is checked first. If it's found, the user is returned. If not, the key is searched.
Returns:
The user context, or null if not found.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

getUser

public UserContextInterface getUser(UserContextInterface privUser,
                                    java.lang.String user)
                             throws java.rmi.RemoteException
Get a user from the user service. This method is protected using JAAS permissions. A UserContextPermission is required to read a UserContext. UserContextPermission can be granted globally to specific UserContext names if they are known in advance to be publicly available.

Specified by:
getUser in interface UserServiceInterface
Parameters:
privUser - A UserContext whose principals will be checked for permission to perform the getUser function. This can be null, but if the method is invoked remotely, it will always fail with a null UserContext.
user - The user to retrieve. The string may be the name or key. The name is checked first. If it's found, the user is returned. If not, the key is searched.
Returns:
The user context, or null if not found.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

newUserIdentity

public UserIdentityInterface newUserIdentity(java.lang.Object principal,
                                             java.lang.Object credential,
                                             java.lang.String domain,
                                             java.lang.String mechanism)
                                      throws java.rmi.RemoteException,
                                             ServiceException
Return a new user identity object given the Pricipal, credential, domain, and authentication mechanism.

Specified by:
newUserIdentity in interface UserServiceInterface
Parameters:
principal - An object (usually a string) that represents the user within a security domain.
credential - An object that is used to authenticate a principal. Depending on the mechanism, this may be a password string, or a complex object such as a certificate.
domain - A String representing a security domain. While this string is arbitrary, it should be consistent within an installation so that credential sets match with services.
mechanism - A String that indicates the authentication mechanism to use, e.g., "simple", "Kerberos", etc.
Returns:
A new user identity.
Throws:
ServiceException - in the event of service object failure;
java.rmi.RemoteException - in the event of remote object failure.

getProfileDefinition

public ProfileDomain getProfileDefinition(java.lang.String application)
                                   throws ServiceException,
                                          java.rmi.RemoteException
Get the profile definition for an application.

Specified by:
getProfileDefinition in interface UserServiceInterface
Parameters:
application - The application to get the profile definition for.
Returns:
A ProfileDomain object for the application, or null if none is defined.
Throws:
ServiceException - In the event of a service failure.
java.rmi.RemoteException - in the event of a network problem.

loadProfile

public ProfileInterface loadProfile(UserContextInterface user,
                                    java.lang.String application)
                             throws java.rmi.RemoteException,
                                    ServiceException
Get the profile object for the user from the user's connected repositories. The initialization information should describe how to retrieve the information, and the user should have access to the required repository(s) before making this call.

Specified by:
loadProfile in interface UserServiceInterface
Parameters:
user - The user to retrieve the profile for.
application - The name of the application requesting profile information.
Returns:
User's profile obtained from connected repositories.
Throws:
ServiceException - in the event of Platform Service failure.
java.rmi.RemoteException - in the event of remote object failure.

loadProfile

public ProfileInterface loadProfile(UserContextInterface searchContext,
                                    UserContextInterface user,
                                    java.lang.String application)
                             throws java.rmi.RemoteException,
                                    ServiceException
Get the profile object for the user from the searchContext's connected repositories. The initialization information should describe how to retrieve the information, and the user should have access to the required repository(s) before making this call. This method allows a client to use one context (possibly privileged) to search for profile information for another user.

Specified by:
loadProfile in interface UserServiceInterface
Parameters:
searchContext - The context to use to perform the search. The repository connections in this context will be used to perform the search for the profile information.
user - The user to retrieve the profile for.
application - The name of the application requesting profile information.
Returns:
User's profile obtained from the search context.
Throws:
ServiceException - in the event of Service failure.
java.rmi.RemoteException - in the event of remote object failure.

getProfile

public ProfileInterface getProfile(PersonInterface person,
                                   java.lang.String application)
                            throws ServiceException,
                                   java.rmi.RemoteException
Get the profile for a Person object. This method is intended for use when an application has a Person object representing a person that's not actively using the application, but may have profile data that affects a current user's interaction with them. A primary use is going to be getting the URL for the personal repository from the profile when publishing to a DAV subscriber.

Specified by:
getProfile in interface UserServiceInterface
Parameters:
person - The person to retrieve the profile for.
application - The application whose profile you want.
Returns:
A profile object for the person and application requested, or null if it doesn't exist.
Throws:
ServiceException - In the event of a repository failure.
java.rmi.RemoteException - in the event of a network error.

createProfile

public ProfileInterface createProfile(UserContextInterface user,
                                      java.lang.String application)
                               throws ServiceException,
                                      java.rmi.RemoteException
Create a new profile. This will create the new repository entry, and return the ProfileInterface to the user.

Specified by:
createProfile in interface UserServiceInterface
Parameters:
user - The UserContextInterface of the user for whom the Profile is being created.
application - The application string for the new profile.
Returns:
The new ProfileInterface.
Throws:
ServiceException - in the event of a service failure.
java.rmi.RemoteException - in the event of network failure.

createProfile

public ProfileInterface createProfile(UserContextInterface privUser,
                                      UserContextInterface user,
                                      java.lang.String application)
                               throws ServiceException,
                                      java.rmi.RemoteException
Create a new profile. This will create the new repository entry, and return the ProfileInterface to the user.

Specified by:
createProfile in interface UserServiceInterface
Parameters:
privUser - A privileged user context to use to create the new profile entry in the repository.
user - The UserContextInterface of the user for whom the Profile is being created.
application - The application string for the new profile.
Returns:
The new ProfileInterface.
Throws:
ServiceException - in the event of a service failure.
java.rmi.RemoteException - in the event of network failure.

loadUserCredentials

public void loadUserCredentials(UserContextInterface user)
                         throws ServiceException,
                                java.rmi.RemoteException
Get credential sets for a user. The service performs a search for the credentials and creates appropriate identities and adds them to the user context.

Specified by:
loadUserCredentials in interface UserServiceInterface
Parameters:
user - The user context to use to search and update with identities.
Throws:
ServiceException - In the event of a repository failure.
java.rmi.RemoteException - in the event of remote object failure.

loadUserCredentials

public void loadUserCredentials(UserContextInterface searchContext,
                                UserContextInterface user)
                         throws ServiceException,
                                java.rmi.RemoteException
Get the profile for a Person object. This method is intended for use when an application has a Person object representing a person that's not actively using the application, but may have profile data that affects a current user's interaction with them. A primary use is going to be getting the URL for the personal repository from the profile when publishing to a DAV subscriber.

Specified by:
loadUserCredentials in interface UserServiceInterface
Parameters:
searchContext - The search context.
user - The person to retrieve the profile for.
Throws:
ServiceException - In the event of a repository failure.
java.rmi.RemoteException - in the event of a network error.

getGroups

public java.util.List<IdentityGroupInterface> getGroups(UserContextInterface user)
                                                 throws ServiceException,
                                                        java.rmi.RemoteException
Get all the identity groups that a user belongs to. Search all the repositories the UserContext has a handle to to find groups.

Specified by:
getGroups in interface UserServiceInterface
Parameters:
user - The UserContext to find groups for.
Returns:
A List of com.sas.services.information.metadata.IdentityGroupInterface objects that represent the groups the user is a member of.
Throws:
ServiceException - in the event of service object failure.
java.rmi.RemoteException - in the event of remote object failure.

newUser

public UserContextInterface newUser(java.lang.String uid,
                                    java.lang.String password,
                                    java.lang.String domain)
                             throws java.rmi.RemoteException,
                                    ServiceException,
                                    UserInitializationException
Create a new user context given a user id, password, and authentication domain. This method will create the user context, a new user identity, and attempt to authenticate the user. If the identity fails to authenticate, a ServiceException will be thrown.

Specified by:
newUser in interface UserServiceInterface
Parameters:
uid - The user ID for the new user
password - The password for the new user.
domain - The authentication domain for the user. A null domain will cause a ServiceException to be thrown.
Returns:
A new UserContextInterface for the user.
Throws:
ServiceException - if an unrecoverable exception occurs.
java.rmi.RemoteException - in the event of a network error.
UserInitializationException - if an initialization exception occurs.

newUser

public UserContextInterface newUser(java.lang.String uid,
                                    java.lang.String password,
                                    java.lang.String domain,
                                    java.lang.String clientSource,
                                    java.lang.String appSource)
                             throws java.rmi.RemoteException,
                                    ServiceException,
                                    UserInitializationException
Description copied from interface: UserServiceInterface
Create a new user context given a user id, password, and authentication domain. This method will create the user context, a new user identity, and attempt to authenticate the user. If the identity fails to authenticate, a ServiceException will be thrown.

Specified by:
newUser in interface UserServiceInterface
Parameters:
uid - The user ID for the new user
password - The password for the new user.
domain - The authentication domain for the user.
clientSource - A String (normally an IP address) that indicates the client location that initiated the login request.
appSource - A String that identifies the application that is initiating the request. This should either be the main Java class name or an identifiable application name.
Returns:
A new UserContextInterface for the user.
Throws:
java.rmi.RemoteException - in the event of remote object failure.
UserInitializationException - in the event of possibly recoverable exceptions during UserContext initialization.
ServiceException - in the event of service failure.

newUser

public UserContextInterface newUser(UserContext privUser,
                                    java.lang.String uid,
                                    java.lang.String password,
                                    java.lang.String domain)
                             throws java.rmi.RemoteException,
                                    ServiceException,
                                    UserInitializationException
Create a new user context given a user id, password, and authentication domain. This method will create the user context, a new user identity, and attempt to authenticate the user. If the identity fails to authenticate, a ServiceException will be thrown.

Specified by:
newUser in interface UserServiceInterface
Parameters:
privUser - The user context to use to search for credentials that the user himself may not be allowed to see. This may be null in order to use use the user's authenticated connection to look for credentials.
uid - The user ID for the new user
password - The password for the new user.
domain - The authentication domain for the user. A null domain will cause a ServiceException to be thrown.
Returns:
A new UserContextInterface for the user.
Throws:
ServiceException - For authentication failure, or unrecoverable service failure.
UserInitializationException - if an error occurs, but the UserContext may still be useful.
java.rmi.RemoteException - in the event of a network error.

newUser

public UserContextInterface newUser(UserContext privUser,
                                    java.lang.String uid,
                                    java.lang.String password,
                                    java.lang.String domain,
                                    java.lang.String clientSource,
                                    java.lang.String appSource)
                             throws java.rmi.RemoteException,
                                    ServiceException,
                                    UserInitializationException
Description copied from interface: UserServiceInterface
Create a new user context given a privileged context, user id, password, and authentication domain. This method will create the user context, a new user identity, and attempt to authenticate the user. If the identity fails to authenticate, a ServiceException will be thrown.

Specified by:
newUser in interface UserServiceInterface
Parameters:
privUser - The user context to use to search for credentials that the user himself may not be allowed to see. This may be null in order to use the user's own authenticated connection to search for credentials.
uid - The user ID for the new user
password - The password for the new user.
domain - The authentication domain for the user. A null domain will cause a ServiceException to be thrown.
clientSource - A String (normally an IP address) that indicates the client location that initiated the login request.
appSource - A String that identifies the application that is initiating the request. This should either be the main Java class name or an identifiable application name.
Returns:
A new UserContextInterface for the user.
Throws:
java.rmi.RemoteException - in the event of a network error.
UserInitializationException - in the event of possibly recoverable exceptions during UserContext initialization.
ServiceException - if an unrecoverable exception occurs.

newUser

public UserContextInterface newUser(UserContext privUser,
                                    java.lang.String uid,
                                    java.lang.String password,
                                    java.lang.String domain,
                                    java.lang.String clientSource,
                                    java.lang.String appSource,
                                    java.util.Map advancedOptions)
                             throws java.rmi.RemoteException,
                                    ServiceException,
                                    UserInitializationException
Description copied from interface: UserServiceInterface
Create a new user context given a privileged context, user id, password, and authentication domain. This method will create the user context, a new user identity, and attempt to authenticate the user. If the identity fails to authenticate, a ServiceException will be thrown.

Specified by:
newUser in interface UserServiceInterface
Parameters:
privUser - The user context to use to search for credentials that the user himself may not be allowed to see. This may be null in order to use the user's own authenticated connection to search for credentials.
uid - The user ID for the new user
password - The password for the new user.
domain - The authentication domain for the user. A null domain will cause a ServiceException to be thrown.
clientSource - A String (normally an IP address) that indicates the client location that initiated the login request.
appSource - A String that identifies the application that is initiating the request. This should either be the main Java class name or an identifiable application name.
advancedOptions - Map of advanced options.
Returns:
A new UserContextInterface for the user.
Throws:
java.rmi.RemoteException - in the event of a network error.
UserInitializationException - in the event of possibly recoverable exceptions during UserContext initialization.
ServiceException - if an unrecoverable exception occurs.

newUser

public UserContextInterface newUser()
                             throws ServiceException,
                                    java.rmi.RemoteException,
                                    UserInitializationException
Throws:
ServiceException
java.rmi.RemoteException
UserInitializationException

newUser

public UserContextInterface newUser(java.lang.String clientSource,
                                    java.lang.String appSource)
                             throws ServiceException,
                                    java.rmi.RemoteException,
                                    UserInitializationException
Description copied from interface: UserServiceInterface
Create a new UserContext based on the current OS identity of the user.

Specified by:
newUser in interface UserServiceInterface
Parameters:
clientSource - A String (normally an IP address) that indicates the client location that initiated the login request.
appSource - A String that identifies the application that is initiating the request. This should either be the main Java class name or an identifiable application name.
Returns:
An authenticated and initialized UserContext for the current user.
Throws:
UserInitializationException - in the event of possibly recoverable exceptions during UserContext initialization.
ServiceException - if an unrecoverable exception occurs.
java.rmi.RemoteException - in the event of a network error.

newUser

public UserContextInterface newUser(java.lang.String clientSource,
                                    java.lang.String appSource,
                                    java.util.Map advancedOptions)
                             throws ServiceException,
                                    java.rmi.RemoteException,
                                    UserInitializationException
Description copied from interface: UserServiceInterface
Create a new UserContext based on the current OS identity of the user.

Specified by:
newUser in interface UserServiceInterface
Parameters:
clientSource - A String (normally an IP address) that indicates the client location that initiated the login request.
appSource - A String that identifies the application that is initiating the request. This should either be the main Java class name or an identifiable application name.
advancedOptions - Map of advanced options.
Returns:
An authenticated and initialized UserContext for the current user.
Throws:
UserInitializationException - in the event of possibly recoverable exceptions during UserContext initialization.
ServiceException - if an unrecoverable exception occurs.
java.rmi.RemoteException - in the event of a network error.

newUserWithInfoService

public UserContextInterface newUserWithInfoService(UserContext privUser,
                                                   java.lang.String uid,
                                                   java.lang.String password,
                                                   java.lang.String domain,
                                                   InformationServiceInterface infoService)
                                            throws java.rmi.RemoteException,
                                                   ServiceException,
                                                   UserInitializationException
Deprecated. This method should no longer be used. In order for the platform to effectively direct requests in a clustered environment, the Discovery Service needs to be able to select the correct available service rather than having the client specify one. If this method is used, the Information Service parameter will be ignored.

Create a new user context given a user id, password, and authentication domain. This method will create the user context, a new user identity, and attempt to authenticate the user. If the identity fails to authenticate, a ServiceException will be thrown.

Specified by:
newUserWithInfoService in interface UserServiceInterface
Parameters:
privUser - The user context to use to search for credentials that the user himself may not be allowed to see. This may be null in order to use use the user's authenticated connection to look for credentials.
uid - The user ID for the new user
password - The password for the new user.
domain - The authentication domain for the user. A null domain will cause a ServiceException to be thrown.
infoService - A handle to an InformationService to use to make any repository connections.
Returns:
A new UserContextInterface for the user.
Throws:
ServiceException - For authentication failure, or unrecoverable service failure.
UserInitializationException - if an error occurs, but the UserContext may still be useful.
java.rmi.RemoteException - in the event of a network error.

getSummaryData

public SummaryData getSummaryData(boolean includeDetails)
                           throws ServiceException,
                                  java.rmi.RemoteException
Description copied from interface: UserServiceInterface
Get the summary data regarding the active users.

Specified by:
getSummaryData in interface UserServiceInterface
Parameters:
includeDetails - If true, the active user details and failure detail data will be included.
Returns:
A List of SummaryData objects.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

newRemoteUser

public UserContextInterface newRemoteUser(SubjectMatter subject)
                                   throws java.rmi.RemoteException,
                                          ServiceException,
                                          UserInitializationException
Description copied from interface: UserServiceInterface
Create a new UserContext using a SubjectMatter object that is populated with the PFS principals and credentials of an authenticated user. This should generally not be used directly, but through the SubjectAuthenticator newAuthenticatedUser method.

Specified by:
newRemoteUser in interface UserServiceInterface
Parameters:
subject - A SubjectMatter object with the principals and credentials.
Returns:
Authenticated user context
Throws:
java.rmi.RemoteException - In the event of remote object failure.
ServiceException - If a service level exception occurs.
UserInitializationException - If a recoverable exception occurs setting up the UserContext.

newRemoteUser

public UserContextInterface newRemoteUser(SubjectMatter subject,
                                          java.util.Map advancedOptions)
                                   throws java.rmi.RemoteException,
                                          ServiceException,
                                          UserInitializationException
Description copied from interface: UserServiceInterface
Create a new UserContext using a SubjectMatter object that is populated with the PFS principals and credentials of an authenticated user. This should generally not be used directly, but through the SubjectAuthenticator newAuthenticatedUser method.

Specified by:
newRemoteUser in interface UserServiceInterface
Parameters:
subject - A SubjectMatter object with the principals and credentials.
advancedOptions - Map of advanced options.
Returns:
Authenticated user context
Throws:
java.rmi.RemoteException - In the event of remote object failure.
ServiceException - If a service level exception occurs.
UserInitializationException - If a recoverable exception occurs setting up the UserContext.

newAuthenticatedUser

public UserContextInterface newAuthenticatedUser(javax.security.auth.Subject subject)
                                          throws java.rmi.RemoteException,
                                                 ServiceException,
                                                 UserInitializationException
Create a new UserContext based on the Subject provided. In order for this to make much sense, the subject should have been authenticated using one of the Foundation Services login modules.

Specified by:
newAuthenticatedUser in interface UserServiceInterface
Parameters:
subject - A javax.security.auth.Subject to use to create a new UserContext. If the subject is null, the current subject from the AccessController context will be used (set from a doAs). If that's null, a ServiceException will be thrown.
Returns:
An initialized UserContext.
Throws:
ServiceException - if a service error occurs.
UserInitializationException - if there's a recoverable error during UserContext initialization.
java.rmi.RemoteException - in the event of remote object failure.

setChallengeCallbackHandler

public void setChallengeCallbackHandler(RemoteCallbackHandler handler)
                                 throws java.rmi.RemoteException
Set the object that will be used to handle credential challenge callbacks.

Specified by:
setChallengeCallbackHandler in interface UserServiceInterface
Parameters:
handler - The credential callback handler. This object will have to be an implementation of the javax.security.auth.callback.CallbackHandler interface.
Throws:
java.rmi.RemoteException - In the event of a remote failure.

getChallengeCallbackHandler

public RemoteCallbackHandler getChallengeCallbackHandler()
                                                  throws java.rmi.RemoteException
Get the object that will handle credential challenge callbacks.

Specified by:
getChallengeCallbackHandler in interface UserServiceInterface
Returns:
The callback handler
Throws:
java.rmi.RemoteException - In the event of a remote failure.

setGroupLoginEnabled

public void setGroupLoginEnabled(boolean groupLoginFlag)
                          throws ServiceException,
                                 java.rmi.RemoteException
Description copied from interface: UserServiceInterface
Set the UserService to allow group logins to be used to create User Contexts.

Specified by:
setGroupLoginEnabled in interface UserServiceInterface
Parameters:
groupLoginFlag - True to allow group logins, false to prevent them. The default at initialization is to disallow group logins.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getGroupLoginEnabled

public boolean getGroupLoginEnabled()
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: UserServiceInterface
Get the flag indicating if group logins are allowed to be used to create User Contexts.

Specified by:
getGroupLoginEnabled in interface UserServiceInterface
Returns:
true if group logins are allowed, false otherwise.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

logFormat

public void logFormat(org.apache.log4j.Level level,
                      java.lang.String context,
                      java.util.ResourceBundle bundle,
                      java.lang.String key,
                      java.lang.Object arg0)
               throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

logFormat

public void logFormat(org.apache.log4j.Level level,
                      java.lang.String context,
                      java.util.ResourceBundle bundle,
                      java.lang.String key,
                      java.lang.Object arg0,
                      java.lang.Object arg1)
               throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

logFormat

public void logFormat(org.apache.log4j.Level level,
                      java.lang.String context,
                      java.util.ResourceBundle bundle,
                      java.lang.String key,
                      java.lang.Object arg0,
                      java.lang.Object arg1,
                      java.lang.Object arg2)
               throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

logFormat

public void logFormat(org.apache.log4j.Level level,
                      java.lang.String context,
                      java.util.ResourceBundle bundle,
                      java.lang.String key,
                      java.lang.Object arg0,
                      java.lang.Object arg1,
                      java.lang.Object arg2,
                      java.lang.Object arg3)
               throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

logMessage

public void logMessage(org.apache.log4j.Level level,
                       java.lang.String message)
                throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

logMessage

public void logMessage(org.apache.log4j.Level level,
                       java.lang.String message,
                       java.lang.String context,
                       java.lang.Throwable t)
                throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getUserCount

public int getUserCount()
                 throws ServiceException,
                        java.rmi.RemoteException
Description copied from interface: UserServiceInterface
Get the count of users that are currently logged in.

Specified by:
getUserCount in interface UserServiceInterface
Returns:
The number of active users in the UserService.
Throws:
ServiceException - if a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

fromByteArray

public UserContextInterface fromByteArray(byte[] data)
                                   throws ServiceException,
                                          java.rmi.RemoteException
Description copied from interface: UserServiceInterface
Create a UserContext from a byte array returned from the UserContext.toByteArray() method.

Specified by:
fromByteArray in interface UserServiceInterface
Returns:
A UserContext created from the byte array data.
Throws:
ServiceException - If a service level exception occurs.
java.rmi.RemoteException - In the event of remote object failure.

resetInternalPassword

public void resetInternalPassword(java.lang.String host,
                                  java.lang.String port,
                                  java.lang.String username,
                                  java.lang.String oldPassword,
                                  java.lang.String newPassword)
                           throws ServiceException,
                                  java.rmi.RemoteException
Description copied from interface: UserServiceInterface
Reset a user's internal metadata password. This will work even for an expired password,

Specified by:
resetInternalPassword in interface UserServiceInterface
Parameters:
host - The DNS hostname where the metadata server is running.
port - The IP port the metadata server is listening on.
username - The Name of the Person whose internal password is being reset.
oldPassword - The old internal password.
newPassword - The new internal password.
Throws:
ServiceException - In the event of communication failure, or an error resetting the password.
java.rmi.RemoteException - In the event of remote object failure.

***  This class provides Binary Compatibility only, not Source Compatibility  ***




Copyright © 2009 SAS Institute Inc. All Rights Reserved.