code: public static ChallengeSet readAssignedChallengeSet( final ChaiUser theUser, final Locale locale )
              throws ChaiUnavailableException, ChaiOperationException, ChaiValidationException
      {
          final ChaiPasswordPolicy passwordPolicy = theUser.getPasswordPolicy();
  
          if ( passwordPolicy == null )
          {
              LOGGER.trace( "user does not have an assigned password policy, return null for readAssignedChallengeSet()" );
              return null;
          }
  
          return readAssignedChallengeSet( theUser.getChaiProvider(), passwordPolicy, locale );
      }
docs: This method will first read the user's assigned password challenge set policy.
  
  @param theUser ChaiUser to read policy for
  @param locale  Desired locale
  @return A valid ChallengeSet if found, otherwise null.
  @throws ChaiOperationException   If there is an error during the operation
  @throws ChaiUnavailableException If the directory server(s) are unavailable
  @throws ChaiValidationException  when there is a logical problem with the challenge set data, such as more randoms required then exist