org.jivesoftware.smack.sasl
Class SASLExternalMechanism

java.lang.Object
  extended by org.jivesoftware.smack.sasl.SASLMechanism
      extended by org.jivesoftware.smack.sasl.SASLExternalMechanism
All Implemented Interfaces:
javax.security.auth.callback.CallbackHandler

public class SASLExternalMechanism
extends SASLMechanism

Implementation of the SASL EXTERNAL mechanism. To effectively use this mechanism, Java must be configured to properly supply a client SSL certificate (of some sort) to the server. It is up to the implementer to determine how to do this. Here is one method: Create a java keystore with your SSL certificate in it: keytool -genkey -alias username -dname "cn=username,ou=organizationalUnit,o=organizationaName,l=locality,s=state,c=country" Next, set the System Properties:

Then, when the server requests or requires the client certificate, java will simply provide the one in the keyStore. Also worth noting is the EXTERNAL mechanism in Smack is not enabled by default. To enable it, the implementer will need to call SASLAuthentication.supportSASLMechamism("EXTERNAL");

Author:
Jay Kline

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jivesoftware.smack.sasl.SASLMechanism
SASLMechanism.AuthMechanism, SASLMechanism.Challenge, SASLMechanism.Failure, SASLMechanism.Response, SASLMechanism.Success
 
Constructor Summary
SASLExternalMechanism(SASLAuthentication saslAuthentication)
           
 
Method Summary
 
Methods inherited from class org.jivesoftware.smack.sasl.SASLMechanism
authenticate, authenticate, challengeReceived, handle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SASLExternalMechanism

public SASLExternalMechanism(SASLAuthentication saslAuthentication)