no.feide.moria.webservices.v2_2
Class AuthenticationImpl

java.lang.Object
  extended by no.feide.moria.webservices.v2_2.AuthenticationImpl
All Implemented Interfaces:
java.rmi.Remote, Authentication

public final class AuthenticationImpl
extends java.lang.Object
implements Authentication

Implements the Moria2 v2.1 SOAP interface.

See Also:
Authentication

Field Summary
private static java.lang.String AUTHN_EX_MSG
          Log message for AuthenticationExceptions.
private static java.lang.String AUTHZ_EX_MESSAGE
          Log message for AuthorizationExceptions.
private static java.lang.String DIR_UNAV_EX_MSG
          Log message for DirectoryUnavailableExceptions.
private static java.lang.String INOP_STATE_EX_MSG
          Log message for InoperableStateExceptions.
private  no.feide.moria.log.MessageLogger messageLogger
          The message logger.
private static java.lang.String MORIACTRL_EX_MESSAGE
          Log message for MoriaControllerExceptions.
private static java.lang.String UNKNOWN_TICKET_EX_MSG
          Log message for UnknownTicketExceptions.
 
Constructor Summary
AuthenticationImpl()
          Default constructor.
 
Method Summary
 Attribute[] directNonInteractiveAuthentication(java.lang.String[] attributes, java.lang.String username, java.lang.String password)
          Performs direct non-interactive authentication.
private static java.lang.String encodeValues(java.lang.String separator, java.lang.String[] values)
          Encode a String array into a single string, using the separator between attribute values.
 java.lang.String getProxyTicket(java.lang.String ticketGrantingTicket, java.lang.String proxyServicePrincipal)
          Gets a proxy ticket.
 Attribute[] getUserAttributes(java.lang.String serviceTicket)
          Gets user attributes.
 java.lang.String initiateAuthentication(java.lang.String[] attributes, java.lang.String returnURLPrefix, java.lang.String returnURLPostfix, boolean forceInteractiveAuthentication)
          Initiates authentication.
private  Attribute[] mapToAttributeArray(java.util.Map map, java.lang.String activeTicketId)
          Utility method to convert a Map to an array of Attributes.
 Attribute[] proxyAuthentication(java.lang.String[] attributes, java.lang.String proxyTicket)
          Performs proxy authentication.
 boolean verifyUserExistence(java.lang.String username)
          Verifies the existence of a given user in the underlying directories.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

messageLogger

private no.feide.moria.log.MessageLogger messageLogger
The message logger.


AUTHZ_EX_MESSAGE

private static final java.lang.String AUTHZ_EX_MESSAGE
Log message for AuthorizationExceptions.

See Also:
Constant Field Values

AUTHN_EX_MSG

private static final java.lang.String AUTHN_EX_MSG
Log message for AuthenticationExceptions.

See Also:
Constant Field Values

DIR_UNAV_EX_MSG

private static final java.lang.String DIR_UNAV_EX_MSG
Log message for DirectoryUnavailableExceptions.

See Also:
Constant Field Values

MORIACTRL_EX_MESSAGE

private static final java.lang.String MORIACTRL_EX_MESSAGE
Log message for MoriaControllerExceptions.

See Also:
Constant Field Values

INOP_STATE_EX_MSG

private static final java.lang.String INOP_STATE_EX_MSG
Log message for InoperableStateExceptions.

See Also:
Constant Field Values

UNKNOWN_TICKET_EX_MSG

private static final java.lang.String UNKNOWN_TICKET_EX_MSG
Log message for UnknownTicketExceptions.

See Also:
Constant Field Values
Constructor Detail

AuthenticationImpl

public AuthenticationImpl()
Default constructor. Initializes the logger.

Method Detail

initiateAuthentication

public java.lang.String initiateAuthentication(java.lang.String[] attributes,
                                               java.lang.String returnURLPrefix,
                                               java.lang.String returnURLPostfix,
                                               boolean forceInteractiveAuthentication)
                                        throws AuthorizationFailedException,
                                               IllegalInputException,
                                               InternalException
Description copied from interface: Authentication
Initiates authentication. This is the initial call done by a service to start a login attempt.

Specified by:
initiateAuthentication in interface Authentication
Parameters:
attributes - The attributes the service wants returned on login.
returnURLPrefix - The prefix of the URL the user is to be returned to after successful authentication.
returnURLPostfix - The optional postfix of the return URL.
forceInteractiveAuthentication - If true, user is forced through authentication even if SSO is possible.
Returns:
An URL to which the client is to be redirected to for authentication.
Throws:
AuthorizationFailedException - If the service is now allowed to perform this operation, or if the service is not allowed to read one or more of the requested attributes.
IllegalInputException - If the method is called with illegal parameters, such as a returnURLPrefix/ returnURLPostfix combination that does not yield a valid URL.
InternalException - If an internal problem prevents Moria2 from performing this operation.
See Also:
Authentication.initiateAuthentication(java.lang.String[], java.lang.String, java.lang.String, boolean)

directNonInteractiveAuthentication

public Attribute[] directNonInteractiveAuthentication(java.lang.String[] attributes,
                                                      java.lang.String username,
                                                      java.lang.String password)
                                               throws AuthorizationFailedException,
                                                      AuthenticationFailedException,
                                                      AuthenticationUnavailableException,
                                                      IllegalInputException,
                                                      InternalException
Description copied from interface: Authentication
Performs direct non-interactive authentication. A redirect- and HTML-less login method. Only to be used in special cases where the client for some reason does not support the standard login procedure. Inherently insecure as the service will have knowledge of the plaintext password.

Specified by:
directNonInteractiveAuthentication in interface Authentication
Parameters:
attributes - The attributes the service wants returned following authentication.
username - The user name of the user to be authenticated.
password - The password of the user to be authenticated.
Returns:
Array of attributes as requested.
Throws:
AuthorizationFailedException - If the service is now allowed to perform this operation, or if the service is not allowed to read one or more of the requested attributes.
AuthenticationFailedException - If the user credentials (given by username/ password) are not valid.
AuthenticationUnavailableException - If the third-party authentication server responsible for authenticating this user is not available.
IllegalInputException - If the method is called with illegal parameters.
InternalException - If an internal problem prevents Moria2 from performing this operation.
See Also:
Authentication.directNonInteractiveAuthentication(java.lang.String[], java.lang.String, java.lang.String)

proxyAuthentication

public Attribute[] proxyAuthentication(java.lang.String[] attributes,
                                       java.lang.String proxyTicket)
                                throws AuthorizationFailedException,
                                       IllegalInputException,
                                       InternalException,
                                       UnknownTicketException
Description copied from interface: Authentication
Performs proxy authentication. Called by a subsystem to authenticate a user.

Specified by:
proxyAuthentication in interface Authentication
Parameters:
attributes - The attributes the service wants returned following proxy authentication.
proxyTicket - The proxy ticket given to the calling system by its initiator.
Returns:
Array of attributes as requested.
Throws:
AuthorizationFailedException - If the service is now allowed to perform this operation, or if the service is not allowed to read one or more of the requested attributes.
IllegalInputException - If the method is called with illegal parameters.
InternalException - If an internal problem prevents Moria2 from performing this operation.
UnknownTicketException - If the proxy ticket given by proxyTicket does not match an existing and valid session.
See Also:
Authentication.proxyAuthentication(java.lang.String[], java.lang.String)

getProxyTicket

public java.lang.String getProxyTicket(java.lang.String ticketGrantingTicket,
                                       java.lang.String proxyServicePrincipal)
                                throws AuthorizationFailedException,
                                       IllegalInputException,
                                       InternalException,
                                       UnknownTicketException
Description copied from interface: Authentication
Gets a proxy ticket. A service may as part of the initial attribute request ask for a ticket granting ticket that later may be used in this call. The returned proxy ticket is to be handed over to the specified underlying system and may be used by that system only to authenticate the request.

Specified by:
getProxyTicket in interface Authentication
Parameters:
ticketGrantingTicket - A TGT that has been issued previously.
proxyServicePrincipal - The service which the proxy ticket should be issued for.
Returns:
A proxy ticket.
Throws:
AuthorizationFailedException - If the service is now allowed to perform this operation.
IllegalInputException - If the method is called with illegal parameters.
InternalException - If an internal problem prevents Moria2 from performing this operation.
UnknownTicketException - If the ticket granting ticket given by ticketGrantingTicket does not match an existing and valid session.
See Also:
Authentication.getProxyTicket(java.lang.String, java.lang.String)

getUserAttributes

public Attribute[] getUserAttributes(java.lang.String serviceTicket)
                              throws AuthorizationFailedException,
                                     IllegalInputException,
                                     InternalException,
                                     UnknownTicketException
Description copied from interface: Authentication
Gets user attributes. Called by the service when the user returns after a successful login.

Specified by:
getUserAttributes in interface Authentication
Parameters:
serviceTicket - The ticket included in the return request issued by the client.
Returns:
Array of attributes as requested in initiateAuthentication.
Throws:
AuthorizationFailedException - If the service is now allowed to perform this operation.
IllegalInputException - If the method is called with an illegal parameter.
InternalException - If an internal problem prevents Moria2 from performing this operation.
UnknownTicketException - If the service ticket given by serviceTicket does not match an existing or valid session.
See Also:
Authentication.getUserAttributes(java.lang.String)

verifyUserExistence

public boolean verifyUserExistence(java.lang.String username)
                            throws AuthorizationFailedException,
                                   AuthenticationUnavailableException,
                                   IllegalInputException,
                                   InternalException
Description copied from interface: Authentication
Verifies the existence of a given user in the underlying directories.

Specified by:
verifyUserExistence in interface Authentication
Parameters:
username - The username to be validated.
Returns:
true if the user is found, otherwise false.
Throws:
AuthorizationFailedException - If the service is now allowed to perform this operation.
AuthenticationUnavailableException - If the authentication server where this user belongs is not available.
IllegalInputException - If the method is called with an illegal parameter.
InternalException - If an internal problem prevents Moria2 from performing this operation.
See Also:
Authentication.verifyUserExistence(java.lang.String)

mapToAttributeArray

private Attribute[] mapToAttributeArray(java.util.Map map,
                                        java.lang.String activeTicketId)
Utility method to convert a Map to an array of Attributes.

Parameters:
map - The Map to be converted.
activeTicketId - Optional variable for logging purposes.
Returns:
Array of Attribute objects.

encodeValues

private static java.lang.String encodeValues(java.lang.String separator,
                                             java.lang.String[] values)
Encode a String array into a single string, using the separator between attribute values. All occurrences of separator in the original attribute values are replaced by two separators.

Parameters:
separator - The separator to be used.
values - The values to be encoded using separator.
Returns:
The encoded values.


Copyright © 2001-2006 UNINETT FAS. All Rights Reserved.