|
Generated by JDiff |
||||||||
| PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES | |||||||||
This file contains all the changes in documentation in the packagejavax.security.auth.loginas colored differences. Deletions are shownlike this, and additions are shown like this.
If no deletions or additions are shown in an entry, the HTML tags will be what has changed. The new HTML tags are shown in the differences. If no documentation existed, and then some was added in a later version, this change is noted in the appropriate class pages of differences, but the change is not shown on this page. Only changes in existing text are shown here. Similarly, documentation which was inherited from another class or interface is not shown here.
Note that an HTML error in the new documentation may cause the display of other documentation changes to be presented incorrectly. For instance, failure to close a <code> tag will cause all subsequent paragraphs to be displayed differently.
This class represents a singleLoginModuleentry configured for the application specified in thegetAppConfigurationEntry(String appName)method in theConfigurationclass. Each respectiveAppConfigurationEntrycontains aLoginModulename a control flag (specifying whether thisLoginModuleis REQUIRED REQUISITE SUFFICIENT or OPTIONAL) and LoginModule-specific options. Please refer to theConfigurationclass for more information on the different control flags and their semantics. @version 1.30 1231 02/0321/0102 @see javax.security.auth.login.Configuration
The
LoginContextclass describes the basic methods used to authenticate Subjects and provides a way to develop an application independent of the underlying authentication technology. AConfigurationspecifies the authentication technology orLoginModuleto be used with a particular application. Therefore different LoginModules can be plugged in under an application without requiring any modifications to the application itself.In addition to supporting pluggable authentication this class also supports the notion of stacked authentication. In other words an application may be configured to use more than one
LoginModule. For example one could configure both a KerberosLoginModuleand a smart cardLoginModuleunder an application.A typical caller instantiates this class and passes in a name and a
CallbackHandler.LoginContextuses the name as the index into theConfigurationto determine which LoginModules should be used and which ones must succeed in order for the overall authentication to succeed. TheCallbackHandleris passed to the underlying LoginModules so they may communicate and interact with users (prompting for a username and password via a graphical user interface for example).Once the caller has instantiated a
LoginContextit invokes theloginmethod to authenticate aSubject. Thisloginmethod invokes theloginmethod from each of the LoginModules configured for the name specified by the caller. EachLoginModulethen performs its respective type of authentication (username/password smart card pin verification etc.). Note that the LoginModules will not attempt authentication retries or introduce delays if the authentication fails. Such tasks belong to the caller.Regardless of whether or not the overall authentication succeeded this
loginmethod completes a 2-phase authentication process by then calling either thecommitmethod or theabortmethod for each of the configured LoginModules. Thecommitmethod for eachLoginModulegets invoked if the overall authentication succeeded whereas theabortmethod for eachLoginModulegets invoked if the overall authentication failed. Each successful LoginModule'scommitmethod associates the relevant Principals (authenticated identities) and Credentials (authentication data such as cryptographic keys) with theSubject. Each LoginModule'sabortmethod cleans up or removes/destroys any previously stored authentication state.If the
loginmethod returns without throwing an exception then the overall authentication succeeded. The caller can then retrieve the newly authenticatedSubjectby invoking thegetSubjectmethod. Principals and Credentials associated with theSubjectmay be retrieved by invoking the Subject's respectivegetPrincipalsgetPublicCredentialsandgetPrivateCredentialsmethods.To logout the
Subjectthe caller simply needs to invoke thelogoutmethod. As with theloginmethod thislogoutmethod invokes thelogoutmethod for eachLoginModuleconfigured for thisLoginContext. Each LoginModule'slogoutmethod cleans up state and removes/destroys Principals and Credentials from theSubjectas appropriate.Each of the configured LoginModules invoked by the
LoginContextis initialized with aSubjectto be authenticated aCallbackHandlerused to communicate with users sharedLoginModulestate and LoginModule-specific options. If theLoginContextwas not provided aSubjectthen it instantiates one itself.Each
LoginModulewhich successfully authenticates a user updates theSubjectwith the relevant user information (Principals and Credentials). ThisSubjectcan then be returned via thegetSubjectmethod from theLoginContextclass if the overall authentication succeeds. Note that LoginModules are always invoked from within anAccessController.doPrivilegedcall. Therefore although LoginModules that perform security-sensitive tasks (such as connecting to remote hosts) need to be granted the relevant Permissions in the securityPolicythe callers of the LoginModules do not require those Permissions.A
LoginContextsupports authentication retries by the calling application. For example a LoginContext'sloginmethod may be invoked multiple times if the user incorrectly types in a password. However aLoginContextshould not be used to authenticate more than oneSubject. A separateLoginContextshould be used to authenticate each differentSubject.Multiple calls into the same
LoginContextdo not affect theLoginModulestate or the LoginModule-specific options. @version 1.92 1293 02/0321/0102 @see javax.security.auth.Subject @see javax.security.auth.callback.CallbackHandler @see javax.security.auth.login.Configuration @see javax.security.auth.spi.LoginModule