package org.apache.kerberos.kerb.client.preauth; import org.apache.kerberos.kerb.KrbException; import org.apache.kerberos.kerb.spec.pa.PaData; import org.apache.kerberos.kerb.spec.pa.PaDataType; import java.util.ArrayList; import java.util.List; public class PreauthContext { private boolean preauthRequired = true; private PaData inputPaData; private PaData outputPaData; private PaData errorPaData; private UserResponser userResponser = new UserResponser(); private PaDataType selectedPaType; private PaDataType allowedPaType; private List<PaDataType> triedPaTypes = new ArrayList<PaDataType>(1); private List<PreauthHandle> handles = new ArrayList<PreauthHandle>(5); public PreauthContext() { this.selectedPaType = PaDataType.NONE; this.allowedPaType = PaDataType.NONE; this.outputPaData = new PaData(); } public boolean isPreauthRequired() { return preauthRequired; } public void setPreauthRequired(boolean preauthRequired) { this.preauthRequired = preauthRequired; } public UserResponser getUserResponser() { return userResponser; } public boolean isPaTypeAllowed(PaDataType paType) { return (allowedPaType == PaDataType.NONE || allowedPaType == paType); } public PaData getOutputPaData() throws KrbException { return outputPaData; } public boolean hasInputPaData() { return (inputPaData != null && ! inputPaData.isEmpty()); } public PaData getInputPaData() { return inputPaData; } public void setInputPaData(PaData inputPaData) { this.inputPaData = inputPaData; } public PaData getErrorPaData() { return errorPaData; } public void setErrorPaData(PaData errorPaData) { this.errorPaData = errorPaData; } public void setAllowedPaType(PaDataType paType) { this.allowedPaType = paType; } public List<PreauthHandle> getHandles() { return handles; } public PaDataType getAllowedPaType() { return allowedPaType; } public boolean checkAndPutTried(PaDataType paType) { for (PaDataType pt : triedPaTypes) { if (pt == paType) { return true; } } triedPaTypes.add(paType); return false; } }