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

Package com.sas.services.security

# Class Challenger

java.lang.Object
java.rmi.server.RemoteObject
java.rmi.server.RemoteServer
java.rmi.server.UnicastRemoteObject
com.sas.services.security.Challenger

All Implemented Interfaces:
  `RemoteCallbackHandler`, `Serializable`, `Remote`, `CallbackHandler`

@SASScope("ALL") @BinaryCompatibilityOnly public class Challenger extends UnicastRemoteObject implements RemoteCallbackHandler
The Challenger class helps bridge the non-remote JAAS callback classes with the remote PFS versions of the callbacks. This allows clients to handle the standard callbacks, but still work across a a remote interface. A class which implements the javax.security.auth.callback.CallbackHandler interface instantiates a new Challenger passing a pointer to itself as a parameter (typically), then passes the new Challenger instance to UserService.setChallengeCallbackHandler().

Since:
  1.0
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class java.rmi.server.RemoteObject

  `ref`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Challenger(CallbackHandler localHandler)`
  Construct a new Challenger with a local callback handler.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `handle(Callback[] callbacks)`
  Handle a callback request.

  ### Methods inherited from class java.rmi.server.UnicastRemoteObject

  `clone, exportObject, exportObject, exportObject, exportObject, exportObject, unexportObject`

  ### Methods inherited from class java.rmi.server.RemoteServer

  `getClientHost, getLog, setLog`

  ### Methods inherited from class java.rmi.server.RemoteObject

  `equals, getRef, hashCode, toString, toStub`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Challenger

    public Challenger(CallbackHandler localHandler) throws RemoteException
    Construct a new Challenger with a local callback handler.
    Parameters:
      `localHandler` - Local callback handler for the challenge.
    Throws:
      `RemoteException` - if a network anomaly is encountered.

- ## Method Details

  - ### handle

    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException, RemoteException
    Handle a callback request. For each callback, convert it to a local callback and pass it on to the local handler. When the local handler is complete, return the results to the orginal caller.

    Specified by:
      `handle` in interface `CallbackHandler`
    Specified by:
      `handle` in interface `RemoteCallbackHandler`
    Parameters:
      `callbacks` - An array of Callback items to process.
    Throws:
      `IOException`
      `UnsupportedCallbackException`
      `RemoteException`