## org.apache.catalina.realm
Class JAASCallbackHandler

    java.lang.Object
      org.apache.catalina.realm.JAASCallbackHandler

All Implemented Interfaces:
  javax.security.auth.callback.CallbackHandler

public class JAASCallbackHandler
extends java.lang.Object
implements javax.security.auth.callback.CallbackHandler

Implementation of the JAAS `CallbackHandler` interface, used to negotiate delivery of the username and credentials that were specified to our constructor. No interaction with the user is required (or possible).

This `CallbackHandler` will pre-digest the supplied password, if required by the `<Realm>` element in `server.xml`.

At present, `JAASCallbackHandler` knows how to handle callbacks of type `javax.security.auth.callback.NameCallback` and `javax.security.auth.callback.PasswordCallback`.

Version:
  $Revision: 1.3.2.1 $ $Date: 2004/09/21 23:01:50 $
Author:
  Craig R. McClanahan, Andrew R. Jaquith

Field Summary
`protected java.lang.String` `password` The password to be authenticated with.
`protected JAASRealm` `realm` The associated `JAASRealm` instance.
`protected static StringManager` `sm` The string manager for this package.
`protected java.lang.String` `username` The username to be authenticated with.

Constructor Summary
`JAASCallbackHandler(JAASRealm realm, java.lang.String username, java.lang.String password)` Construct a callback handler configured with the specified values.

Method Summary
`void` `handle(javax.security.auth.callback.Callback[] callbacks)` Retrieve the information requested in the provided `Callbacks`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### sm

    protected static final StringManager sm

  The string manager for this package.

### password

    protected java.lang.String password

  The password to be authenticated with.

### realm

    protected JAASRealm realm

  The associated `JAASRealm` instance.

### username

    protected java.lang.String username

  The username to be authenticated with.

Constructor Detail

### JAASCallbackHandler

    public JAASCallbackHandler(JAASRealm realm,
                               java.lang.String username,
                               java.lang.String password)

  Construct a callback handler configured with the specified values. Note that if the `JAASRealm` instance specifies digested passwords, the `password` parameter will be pre-digested here.

Parameters:
  `realm` - Our associated JAASRealm instance
  `username` - Username to be authenticated with
  `password` - Password to be authenticated with

Method Detail

### handle

    public void handle(javax.security.auth.callback.Callback[] callbacks)
                throws java.io.IOException,
                       javax.security.auth.callback.UnsupportedCallbackException

  Retrieve the information requested in the provided `Callbacks`. This implementation only recognizes `NameCallback` and `PasswordCallback` instances.

  Specified by:
    `handle` in interface `javax.security.auth.callback.CallbackHandler`
  Parameters:
    `callbacks` - The set of `Callback`s to be processed
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.security.auth.callback.UnsupportedCallbackException` - if the login method requests an unsupported callback type

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.