public OIDCTokens acquireTokensBySecurID(String username,String passcode,SecurIDRetriever securIdRetriever,TokenSpec tokenSpec) throws OIDCClientException, OIDCServerException, TokenValidationException, SSLConnectionException {
  Validate.notEmpty(username,"username");
  Validate.notEmpty(passcode,"passcode");
  Validate.notNull(securIdRetriever,"securIdRetriever");
  Validate.notNull(tokenSpec,"tokenSpec");
  HttpResponse httpResponse=OIDCClientUtils.handleSecurIDMultiLeggedGrant(username,passcode,securIdRetriever,tokenSpec,getTokenEndpointURI(),this.clientId,this.holderOfKeyConfig,this.keyStore);
  return OIDCClientUtils.parseTokenResponse(httpResponse,this.providerPublicKey,this.issuer,this.clientId,this.clockToleranceInSeconds);
}

public OIDCTokens acquireTokensBySecurID ( String username , String passcode , SecurIDRetriever securIdRetriever , TokenSpec tokenSpec ) throws OIDCClientException , OIDCServerException , TokenValidationException , SSLConnectionException { Validate . notEmpty ( username , "username" ) ; Validate . notEmpty ( passcode , "passcode" ) ; Validate . notNull ( securIdRetriever , "securIdRetriever" ) ; Validate . notNull ( tokenSpec , "tokenSpec" ) ; HttpResponse httpResponse = OIDCClientUtils . handleSecurIDMultiLeggedGrant ( username , passcode , securIdRetriever , tokenSpec , getTokenEndpointURI ( ) , this . clientId , this . holderOfKeyConfig , this . keyStore ) ; return OIDCClientUtils . parseTokenResponse ( httpResponse , this . providerPublicKey , this . issuer , this . clientId , this . clockToleranceInSeconds ) ; }
get tokens by securidretriever which handles multi - legged securidgrant
