samlcallbackhandlerimpl.java

来自「1. 如何生成自签名的KeyStore以及导出供SP使用的公钥 C:>k」· Java 代码 · 共 66 行

JAVA
66
字号
package samlsso.providers.identityassertion;

import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.NameCallback;
import javax.security.auth.callback.UnsupportedCallbackException;


/**
 * 
 * @author maxq
 * @version 0.9
 */
final class SAMLCallbackHandlerImpl implements CallbackHandler {

  /**
   * 
   */
  private String userName;
  
  /**
   * Create a callback handler that stores the user name.
   * 
   * @param user
   *          A String containing the name of the user from the identity
   *          assertion token
   */
  SAMLCallbackHandlerImpl( String user) {
    userName= user;
  }

  /**
   * Used by the authenticators' login modules to get the user name that the
   * identity asserter extracted from the identity assertion token. This name
   * can only be retrieved via a NameCallback.
   * 
   * @param callbacks
   *          An array of Callback objects indicating what data the login module
   *          is trying to extract from this callback handler. It must only
   *          contain NameCallbacks.
   * 
   * @exception UnsupportedCallbackException
   *              thrown if any of the callbacks aren't NameCallbacks.
   * 
   * @see CallbackHandler
   */
  public void handle( Callback[] callbacks) throws UnsupportedCallbackException {
    // loop over the callbacks
    for( int i= 0; i < callbacks.length; i++) {

      Callback callback= callbacks[i];

      // we only handle NameCallbacks
      if( !( callback instanceof NameCallback)) {
        throw new UnsupportedCallbackException( callback,
            "Unrecognized Callback");
      }

      // send the user name to the name callback:
      NameCallback nameCallback= (NameCallback)callback;
      nameCallback.setName( userName);
    }
  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?