public class com.novell.ldapchai.cr.ChaiResponseSet extends com.novell.ldapchai.cr.AbstractResponseSet
{
private static final com.novell.ldapchai.util.internal.ChaiLogger LOGGER;
static final java.lang.String SALT_CHARS;
static final java.lang.String XML_NODE_ROOT;
static final java.lang.String XML_ATTRIBUTE_MIN_RANDOM_REQUIRED;
static final java.lang.String XML_ATTRIBUTE_LOCALE;
static final java.lang.String XML_NODE_RESPONSE;
static final java.lang.String XML_NODE_HELPDESK_RESPONSE;
static final java.lang.String XML_NODE_CHALLENGE;
static final java.lang.String XML_NODE_ANSWER_VALUE;
static final java.lang.String XML_ATTRIBUTE_VERSION;
static final java.lang.String XML_ATTRIBUTE_CHAI_VERSION;
static final java.lang.String XML_ATTRIBUTE_ADMIN_DEFINED;
static final java.lang.String XML_ATTRIBUTE_REQUIRED;
static final java.lang.String XML_ATTRIBUTE_HASH_COUNT;
static final java.lang.String XML_ATTRIBUTE_CONTENT_FORMAT;
static final java.lang.String XML_ATTRIBUTE_SALT;
static final java.lang.String XNL_ATTRIBUTE_MIN_LENGTH;
static final java.lang.String XNL_ATTRIBUTE_MAX_LENGTH;
static final java.lang.String XML_ATTRIBUTE_CASE_INSENSITIVE;
static final java.lang.String XML_ATTRIBUTE_CHALLENGE_SET_IDENTIFER;
static final java.lang.String XML_ATTRIBUTE_TIMESTAMP;
static final java.lang.String VALUE_VERSION;
private final boolean caseInsensitive;
static com.novell.ldapchai.cr.ChaiResponseSet readUserResponseSet(com.novell.ldapchai.ChaiUser) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiValidationException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.ChaiUser v;
com.novell.ldapchai.provider.ChaiConfiguration v, v;
com.novell.ldapchai.cr.ChaiResponseSet v;
com.novell.ldapchai.provider.ChaiSetting v, v;
com.novell.ldapchai.provider.ChaiProvider v, v;
java.util.List v;
java.lang.Object v;
java.lang.String v, v, v;
boolean v;
v := @parameter: com.novell.ldapchai.ChaiUser;
v = interfaceinvoke v.<com.novell.ldapchai.ChaiUser: com.novell.ldapchai.provider.ChaiProvider getChaiProvider()>();
v = interfaceinvoke v.<com.novell.ldapchai.provider.ChaiProvider: com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()>();
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting CR_CHAI_STORAGE_RECORD_ID>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
v = interfaceinvoke v.<com.novell.ldapchai.ChaiUser: com.novell.ldapchai.provider.ChaiProvider getChaiProvider()>();
v = interfaceinvoke v.<com.novell.ldapchai.provider.ChaiProvider: com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()>();
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting CR_CHAI_STORAGE_ATTRIBUTE>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
v = staticinvoke <com.novell.ldapchai.util.ConfigObjectRecord: java.util.List readRecordFromLDAP(com.novell.ldapchai.ChaiEntry,java.lang.String,java.lang.String,java.util.Set,java.util.Set)>(v, v, v, null, null);
v = "";
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<com.novell.ldapchai.util.ConfigObjectRecord: java.lang.String getPayload()>();
label:
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$ChaiResponseXmlParser: com.novell.ldapchai.cr.ChaiResponseSet parseChaiResponseSetXML(java.lang.String)>(v);
if v != null goto label;
return null;
label:
return v;
}
void <init>(java.util.Map, java.util.Map, java.util.Locale, int, com.novell.ldapchai.cr.AbstractResponseSet$STATE, boolean, java.lang.String, java.time.Instant) throws com.novell.ldapchai.exception.ChaiValidationException
{
com.novell.ldapchai.cr.ChaiResponseSet v;
java.time.Instant v;
java.util.Locale v;
java.util.Map v, v;
int v;
java.lang.String v;
com.novell.ldapchai.cr.AbstractResponseSet$STATE v;
boolean v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v := @parameter: java.util.Map;
v := @parameter: java.util.Map;
v := @parameter: java.util.Locale;
v := @parameter: int;
v := @parameter: com.novell.ldapchai.cr.AbstractResponseSet$STATE;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: java.time.Instant;
specialinvoke v.<com.novell.ldapchai.cr.AbstractResponseSet: void <init>(java.util.Map,java.util.Map,java.util.Locale,int,com.novell.ldapchai.cr.AbstractResponseSet$STATE,java.lang.String,java.time.Instant)>(v, v, v, v, v, v, v);
v.<com.novell.ldapchai.cr.ChaiResponseSet: boolean caseInsensitive> = v;
return;
}
public java.lang.String toString()
{
java.lang.StringBuilder v;
com.novell.ldapchai.cr.ChaiResponseSet v;
java.lang.String v, v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v = new java.lang.StringBuilder;
v = specialinvoke v.<com.novell.ldapchai.cr.AbstractResponseSet: java.lang.String toString()>();
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", format(");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(")");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public java.lang.String stringValue() throws java.lang.UnsupportedOperationException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.UnsupportedOperationException v;
com.novell.ldapchai.cr.ChaiResponseSet v;
java.util.function.Supplier v;
java.lang.String v, v, v;
com.novell.ldapchai.exception.ChaiValidationException v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
label:
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: java.lang.String rsToChaiXML(com.novell.ldapchai.cr.ChaiResponseSet)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("\r", "");
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("\n", "");
label:
return v;
label:
v := @caughtexception;
v = <com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$lambda_stringValue_0__22: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void warn(java.util.function.Supplier,java.lang.Exception)>(v, v);
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.Throwable)>(v);
throw v;
catch com.novell.ldapchai.exception.ChaiValidationException from label to label with label;
}
public boolean test(java.util.Map)
{
java.util.function.Supplier v;
com.novell.ldapchai.cr.ChallengeSet v;
java.util.Map v, v;
int v, v, v;
com.novell.ldapchai.exception.ChaiValidationException v;
boolean v, v, v, v, v, v;
java.util.Iterator v;
java.util.Set v;
com.novell.ldapchai.cr.ChaiResponseSet v;
java.lang.IllegalArgumentException v, v;
java.util.List v;
java.lang.Object v, v, v, v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v := @parameter: java.util.Map;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("responses required");
throw v;
label:
v = virtualinvoke v.<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.cr.ChallengeSet getChallengeSet()>();
v = interfaceinvoke v.<com.novell.ldapchai.cr.ChallengeSet: java.util.List getRequiredChallenges()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: int minimumRandomRequired>;
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("challenge set does not require any responses");
throw v;
label:
v := @caughtexception;
v = <com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$lambda_test_1__23: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void warn(java.util.function.Supplier,java.lang.Exception)>(v, v);
return 0;
label:
v = 0;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map crMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<com.novell.ldapchai.cr.Answer: boolean testAnswer(java.lang.String)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: boolean isRequired()>();
if v != 0 goto label;
v = v + 1;
label:
if v != 0 goto label;
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: boolean isRequired()>();
if v == 0 goto label;
return 0;
label:
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: int minimumRandomRequired>;
if v < v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
catch com.novell.ldapchai.exception.ChaiValidationException from label to label with label;
}
boolean write(com.novell.ldapchai.ChaiUser) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.ChaiUser v;
java.lang.IllegalStateException v;
java.util.function.Supplier v, v, v;
java.lang.String v, v, v, v;
com.novell.ldapchai.cr.AbstractResponseSet$STATE v, v, v;
com.novell.ldapchai.exception.ChaiValidationException v;
com.novell.ldapchai.exception.ChaiOperationException v, v;
boolean v;
com.novell.ldapchai.provider.ChaiConfiguration v, v;
com.novell.ldapchai.cr.ChaiResponseSet v;
com.novell.ldapchai.provider.ChaiSetting v, v;
com.novell.ldapchai.exception.ChaiError v;
com.novell.ldapchai.provider.ChaiProvider v, v;
java.util.List v;
java.lang.Object v;
com.novell.ldapchai.util.internal.ChaiLogger v, v, v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v := @parameter: com.novell.ldapchai.ChaiUser;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.cr.AbstractResponseSet$STATE state>;
v = <com.novell.ldapchai.cr.AbstractResponseSet$STATE: com.novell.ldapchai.cr.AbstractResponseSet$STATE NEW>;
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("ResponseSet not suitable for writing (not in NEW state)");
throw v;
label:
v = interfaceinvoke v.<com.novell.ldapchai.ChaiUser: com.novell.ldapchai.provider.ChaiProvider getChaiProvider()>();
v = interfaceinvoke v.<com.novell.ldapchai.provider.ChaiProvider: com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()>();
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting CR_CHAI_STORAGE_ATTRIBUTE>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
v = interfaceinvoke v.<com.novell.ldapchai.ChaiUser: com.novell.ldapchai.provider.ChaiProvider getChaiProvider()>();
v = interfaceinvoke v.<com.novell.ldapchai.provider.ChaiProvider: com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()>();
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting CR_CHAI_STORAGE_RECORD_ID>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
label:
v = staticinvoke <com.novell.ldapchai.util.ConfigObjectRecord: java.util.List readRecordFromLDAP(com.novell.ldapchai.ChaiEntry,java.lang.String,java.lang.String,java.util.Set,java.util.Set)>(v, v, v, null, null);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
goto label;
label:
v = staticinvoke <com.novell.ldapchai.util.ConfigObjectRecord: com.novell.ldapchai.util.ConfigObjectRecord createNew(com.novell.ldapchai.ChaiEntry,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, null, null);
label:
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: java.lang.String rsToChaiXML(com.novell.ldapchai.cr.ChaiResponseSet)>(v);
virtualinvoke v.<com.novell.ldapchai.util.ConfigObjectRecord: void updatePayload(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$lambda_write_2__26: java.util.function.Supplier bootstrap$(com.novell.ldapchai.exception.ChaiOperationException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void warn(java.util.function.Supplier)>(v);
throw v;
label:
v := @caughtexception;
v = <com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$lambda_write_3__25: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void warn(java.util.function.Supplier,java.lang.Exception)>(v, v);
v = new com.novell.ldapchai.exception.ChaiOperationException;
v = virtualinvoke v.<com.novell.ldapchai.exception.ChaiValidationException: java.lang.String getMessage()>();
v = <com.novell.ldapchai.exception.ChaiError: com.novell.ldapchai.exception.ChaiError UNKNOWN>;
specialinvoke v.<com.novell.ldapchai.exception.ChaiOperationException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError,java.lang.Throwable)>(v, v, v);
throw v;
label:
v = <com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$lambda_write_4__24: java.util.function.Supplier bootstrap$(com.novell.ldapchai.ChaiUser)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void info(java.util.function.Supplier)>(v);
v = <com.novell.ldapchai.cr.AbstractResponseSet$STATE: com.novell.ldapchai.cr.AbstractResponseSet$STATE WRITTEN>;
v.<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.cr.AbstractResponseSet$STATE state> = v;
return 1;
catch com.novell.ldapchai.exception.ChaiOperationException from label to label with label;
catch com.novell.ldapchai.exception.ChaiValidationException from label to label with label;
}
void write(java.io.Writer) throws com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.IllegalStateException v;
com.novell.ldapchai.cr.ChaiResponseSet v;
java.util.function.Supplier v;
com.novell.ldapchai.exception.ChaiError v;
java.lang.Exception v;
java.io.Writer v;
java.lang.String v, v;
com.novell.ldapchai.cr.AbstractResponseSet$STATE v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v := @parameter: java.io.Writer;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.cr.AbstractResponseSet$STATE state>;
v = <com.novell.ldapchai.cr.AbstractResponseSet$STATE: com.novell.ldapchai.cr.AbstractResponseSet$STATE NEW>;
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("ResponseSet not suitable for writing (not in NEW state)");
throw v;
label:
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: java.lang.String rsToChaiXML(com.novell.ldapchai.cr.ChaiResponseSet)>(v);
virtualinvoke v.<java.io.Writer: void write(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$lambda_write_5__27: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void warn(java.util.function.Supplier,java.lang.Exception)>(v, v);
v = new com.novell.ldapchai.exception.ChaiOperationException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = <com.novell.ldapchai.exception.ChaiError: com.novell.ldapchai.exception.ChaiError UNKNOWN>;
specialinvoke v.<com.novell.ldapchai.exception.ChaiOperationException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError,java.lang.Throwable)>(v, v, v);
throw v;
label:
return;
catch com.novell.ldapchai.exception.ChaiValidationException from label to label with label;
catch java.io.IOException from label to label with label;
}
static java.lang.String rsToChaiXML(com.novell.ldapchai.cr.ChaiResponseSet) throws com.novell.ldapchai.exception.ChaiValidationException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.IllegalStateException v;
org.jrivard.xmlchai.XmlDocument v;
org.jrivard.xmlchai.XmlFactory$OutputFlag v;
java.util.Locale v;
org.jrivard.xmlchai.XmlFactory$OutputFlag[] v;
java.util.Map v, v, v, v;
boolean v, v, v;
java.util.Set v, v;
java.time.Instant v, v;
org.jrivard.xmlchai.XmlElement v, v, v;
com.novell.ldapchai.cr.ChallengeSet v, v;
int v;
java.lang.String v, v, v, v, v, v, v;
org.jrivard.xmlchai.XmlFactory v, v;
java.util.Iterator v, v;
java.io.IOException v;
com.novell.ldapchai.cr.ChaiResponseSet v;
java.lang.Object v, v, v, v, v, v;
v := @parameter: com.novell.ldapchai.cr.ChaiResponseSet;
v = staticinvoke <org.jrivard.xmlchai.XmlFactory: org.jrivard.xmlchai.XmlFactory getFactory()>();
v = interfaceinvoke v.<org.jrivard.xmlchai.XmlFactory: org.jrivard.xmlchai.XmlDocument newDocument(java.lang.String)>("ResponseSet");
v = interfaceinvoke v.<org.jrivard.xmlchai.XmlDocument: org.jrivard.xmlchai.XmlElement getRootElement()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.cr.ChallengeSet getChallengeSet()>();
v = interfaceinvoke v.<com.novell.ldapchai.cr.ChallengeSet: int getMinRandomRequired()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("minRandomRequired", v);
v = virtualinvoke v.<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.cr.ChallengeSet getChallengeSet()>();
v = interfaceinvoke v.<com.novell.ldapchai.cr.ChallengeSet: java.util.Locale getLocale()>();
v = virtualinvoke v.<java.util.Locale: java.lang.String toString()>();
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("locale", v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("version", "2");
v = <com.novell.ldapchai.ChaiConstant: java.lang.String CHAI_API_VERSION>;
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("chaiVersion", v);
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: boolean caseInsensitive>;
if v == 0 goto label;
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("caseInsensitive", "true");
label:
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.lang.String csIdentifier>;
if v == null goto label;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.lang.String csIdentifier>;
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("challengeSetID", v);
label:
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.time.Instant timestamp>;
if v == null goto label;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.time.Instant timestamp>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: java.lang.String formatInstant(java.time.Instant)>(v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("time", v);
label:
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map crMap>;
if v == null goto label;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map crMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: org.jrivard.xmlchai.XmlElement challengeToXml(com.novell.ldapchai.cr.Challenge,com.novell.ldapchai.cr.Answer,java.lang.String)>(v, v, "response");
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void attachElement(org.jrivard.xmlchai.XmlElement)>(v);
goto label;
label:
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map helpdeskCrMap>;
if v == null goto label;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map helpdeskCrMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: org.jrivard.xmlchai.XmlElement challengeToXml(com.novell.ldapchai.cr.Challenge,com.novell.ldapchai.cr.Answer,java.lang.String)>(v, v, "helpdesk-response");
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void attachElement(org.jrivard.xmlchai.XmlElement)>(v);
goto label;
label:
v = staticinvoke <org.jrivard.xmlchai.XmlFactory: org.jrivard.xmlchai.XmlFactory getFactory()>();
v = newarray (org.jrivard.xmlchai.XmlFactory$OutputFlag)[1];
v = <org.jrivard.xmlchai.XmlFactory$OutputFlag: org.jrivard.xmlchai.XmlFactory$OutputFlag Compact>;
v[0] = v;
v = interfaceinvoke v.<org.jrivard.xmlchai.XmlFactory: java.lang.String outputString(org.jrivard.xmlchai.XmlDocument,org.jrivard.xmlchai.XmlFactory$OutputFlag[])>(v, v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("unexpected error outputting challenge/response xml stream");
throw v;
catch java.io.IOException from label to label with label;
}
private static org.jrivard.xmlchai.XmlElement challengeToXml(com.novell.ldapchai.cr.Challenge, com.novell.ldapchai.cr.Answer, java.lang.String) throws com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.cr.Answer v;
com.novell.ldapchai.cr.Challenge v;
org.jrivard.xmlchai.XmlElement v, v, v;
int v, v;
java.lang.String v, v, v, v, v, v;
org.jrivard.xmlchai.XmlFactory v;
boolean v, v;
v := @parameter: com.novell.ldapchai.cr.Challenge;
v := @parameter: com.novell.ldapchai.cr.Answer;
v := @parameter: java.lang.String;
v = staticinvoke <org.jrivard.xmlchai.XmlFactory: org.jrivard.xmlchai.XmlFactory getFactory()>();
v = interfaceinvoke v.<org.jrivard.xmlchai.XmlFactory: org.jrivard.xmlchai.XmlElement newElement(java.lang.String)>(v);
v = interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: org.jrivard.xmlchai.XmlElement newChildElement(java.lang.String)>("challenge");
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: java.lang.String getChallengeText()>();
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setText(java.lang.String)>(v);
v = interfaceinvoke v.<com.novell.ldapchai.cr.Answer: org.jrivard.xmlchai.XmlElement toXml()>();
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void attachElement(org.jrivard.xmlchai.XmlElement)>(v);
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: boolean isAdminDefined()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(boolean)>(v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("adminDefined", v);
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: boolean isRequired()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(boolean)>(v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("required", v);
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: int getMinLength()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("minLength", v);
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: int getMaxLength()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
interfaceinvoke v.<org.jrivard.xmlchai.XmlElement: void setAttribute(java.lang.String,java.lang.String)>("maxLength", v);
return v;
}
public static com.novell.ldapchai.cr.ResponseSet parseChaiResponseSetXML(java.lang.String, com.novell.ldapchai.ChaiUser) throws com.novell.ldapchai.exception.ChaiValidationException
{
com.novell.ldapchai.ChaiUser v;
com.novell.ldapchai.cr.ChaiResponseSet v;
java.lang.String v, v;
com.novell.ldapchai.exception.ChaiValidationException v;
com.novell.ldapchai.exception.ChaiError v;
com.novell.ldapchai.exception.ChaiOperationException v;
v := @parameter: java.lang.String;
v := @parameter: com.novell.ldapchai.ChaiUser;
label:
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet$ChaiResponseXmlParser: com.novell.ldapchai.cr.ChaiResponseSet parseChaiResponseSetXML(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new com.novell.ldapchai.exception.ChaiValidationException;
v = virtualinvoke v.<com.novell.ldapchai.exception.ChaiOperationException: java.lang.String getMessage()>();
v = virtualinvoke v.<com.novell.ldapchai.exception.ChaiOperationException: com.novell.ldapchai.exception.ChaiError getErrorCode()>();
specialinvoke v.<com.novell.ldapchai.exception.ChaiValidationException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError)>(v, v);
throw v;
catch com.novell.ldapchai.exception.ChaiOperationException from label to label with label;
}
public java.util.List asChallengeBeans(boolean)
{
java.util.List v;
java.util.Map v;
com.novell.ldapchai.cr.ChaiResponseSet v;
boolean v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v := @parameter: boolean;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map crMap>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: java.util.List asBeans(java.util.Map,boolean)>(v, v);
return v;
}
public java.util.List asHelpdeskChallengeBeans(boolean)
{
java.util.List v;
java.util.Map v;
com.novell.ldapchai.cr.ChaiResponseSet v;
boolean v;
v := @this: com.novell.ldapchai.cr.ChaiResponseSet;
v := @parameter: boolean;
v = v.<com.novell.ldapchai.cr.ChaiResponseSet: java.util.Map helpdeskCrMap>;
v = staticinvoke <com.novell.ldapchai.cr.ChaiResponseSet: java.util.List asBeans(java.util.Map,boolean)>(v, v);
return v;
}
public static java.util.List asBeans(java.util.Map, boolean)
{
java.util.ArrayList v;
java.util.Map v;
int v, v, v;
java.lang.String v;
boolean v, v, v, v, v;
java.util.Iterator v;
java.util.Set v;
java.util.List v;
com.novell.ldapchai.cr.bean.ChallengeBean v, v;
com.novell.ldapchai.cr.bean.AnswerBean v;
java.lang.Object v, v, v;
v := @parameter: java.util.Map;
v := @parameter: boolean;
if v != null goto label;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<com.novell.ldapchai.cr.Challenge: com.novell.ldapchai.cr.bean.ChallengeBean asChallengeBean()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<com.novell.ldapchai.cr.Answer: com.novell.ldapchai.cr.bean.AnswerBean asAnswerBean()>();
v = new com.novell.ldapchai.cr.bean.ChallengeBean;
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: java.lang.String getChallengeText()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: int getMinLength()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: int getMaxLength()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: boolean isAdminDefined()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: boolean isRequired()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: int getMaxQuestionCharsInAnswer()>();
v = virtualinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: boolean isEnforceWordlist()>();
specialinvoke v.<com.novell.ldapchai.cr.bean.ChallengeBean: void <init>(java.lang.String,int,int,boolean,boolean,int,boolean,com.novell.ldapchai.cr.bean.AnswerBean)>(v, v, v, v, v, v, v, v);
v = v;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public static java.util.Locale parseLocaleString(java.lang.String)
{
java.util.Locale v, v, v, v, v;
java.util.StringTokenizer v;
java.lang.String v, v, v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
if v != null goto label;
v = staticinvoke <java.util.Locale: java.util.Locale getDefault()>();
return v;
label:
v = new java.util.StringTokenizer;
specialinvoke v.<java.util.StringTokenizer: void <init>(java.lang.String,java.lang.String)>(v, "_");
v = virtualinvoke v.<java.util.StringTokenizer: boolean hasMoreTokens()>();
if v != 0 goto label;
v = staticinvoke <java.util.Locale: java.util.Locale getDefault()>();
return v;
label:
v = virtualinvoke v.<java.util.StringTokenizer: java.lang.String nextToken()>();
v = virtualinvoke v.<java.util.StringTokenizer: boolean hasMoreTokens()>();
if v != 0 goto label;
v = new java.util.Locale;
specialinvoke v.<java.util.Locale: void <init>(java.lang.String)>(v);
return v;
label:
v = virtualinvoke v.<java.util.StringTokenizer: java.lang.String nextToken()>();
v = virtualinvoke v.<java.util.StringTokenizer: boolean hasMoreTokens()>();
if v != 0 goto label;
v = new java.util.Locale;
specialinvoke v.<java.util.Locale: void <init>(java.lang.String,java.lang.String)>(v, v);
return v;
label:
v = virtualinvoke v.<java.util.StringTokenizer: java.lang.String nextToken(java.lang.String)>("");
v = new java.util.Locale;
specialinvoke v.<java.util.Locale: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
return v;
}
static java.lang.String formatInstant(java.time.Instant)
{
java.util.Date v;
java.util.TimeZone v;
java.text.SimpleDateFormat v;
java.lang.String v;
java.time.Instant v;
v := @parameter: java.time.Instant;
v = new java.text.SimpleDateFormat;
specialinvoke v.<java.text.SimpleDateFormat: void <init>(java.lang.String)>("yyyy-MM-dd HH:mm:ss Z");
v = staticinvoke <java.util.TimeZone: java.util.TimeZone getTimeZone(java.lang.String)>("Zulu");
virtualinvoke v.<java.text.SimpleDateFormat: void setTimeZone(java.util.TimeZone)>(v);
v = staticinvoke <java.util.Date: java.util.Date 'from'(java.time.Instant)>(v);
v = virtualinvoke v.<java.text.SimpleDateFormat: java.lang.String format(java.util.Date)>(v);
return v;
}
static java.time.Instant parseInstant(java.lang.String) throws java.text.ParseException
{
java.util.Date v;
java.util.TimeZone v;
java.text.SimpleDateFormat v;
java.lang.String v;
java.time.Instant v;
v := @parameter: java.lang.String;
v = new java.text.SimpleDateFormat;
specialinvoke v.<java.text.SimpleDateFormat: void <init>(java.lang.String)>("yyyy-MM-dd HH:mm:ss Z");
v = staticinvoke <java.util.TimeZone: java.util.TimeZone getTimeZone(java.lang.String)>("Zulu");
virtualinvoke v.<java.text.SimpleDateFormat: void setTimeZone(java.util.TimeZone)>(v);
v = virtualinvoke v.<java.text.SimpleDateFormat: java.util.Date parse(java.lang.String)>(v);
v = virtualinvoke v.<java.util.Date: java.time.Instant toInstant()>();
return v;
}
static void <clinit>()
{
com.novell.ldapchai.util.internal.ChaiLogger v;
v = staticinvoke <com.novell.ldapchai.util.internal.ChaiLogger: com.novell.ldapchai.util.internal.ChaiLogger getLogger(java.lang.Class)>(class "Lcom/novell/ldapchai/cr/ChaiResponseSet;");
<com.novell.ldapchai.cr.ChaiResponseSet: com.novell.ldapchai.util.internal.ChaiLogger LOGGER> = v;
return;
}
}