package org.apache.kerberos.kerb.client.preauth.builtin;
import org.apache.kerberos.kerb.client.preauth.AbstractPreauthPlugin;
import org.apache.kerberos.kerb.client.request.KdcRequest;
import org.apache.kerberos.kerb.client.request.TgsRequest;
import org.apache.kerberos.kerb.preauth.PluginRequestContext;
import org.apache.kerberos.kerb.preauth.builtin.TgtPreauthMeta;
import org.apache.kerberos.kerb.KrbException;
import org.apache.kerberos.kerb.spec.pa.PaData;
import org.apache.kerberos.kerb.spec.pa.PaDataEntry;
import org.apache.kerberos.kerb.spec.pa.PaDataType;
public class TgtPreauth extends AbstractPreauthPlugin {
public TgtPreauth() {
super(new TgtPreauthMeta());
}
public void tryFirst(KdcRequest kdcRequest,
PluginRequestContext requestContext,
PaData outPadata) throws KrbException {
outPadata.addElement(makeEntry(kdcRequest));
}
@Override
public boolean process(KdcRequest kdcRequest,
PluginRequestContext requestContext,
PaDataEntry inPadata,
PaData outPadata) throws KrbException {
outPadata.addElement(makeEntry(kdcRequest));
return true;
}
private PaDataEntry makeEntry(KdcRequest kdcRequest) throws KrbException {
TgsRequest tgsRequest = (TgsRequest) kdcRequest;
PaDataEntry paEntry = new PaDataEntry();
paEntry.setPaDataType(PaDataType.TGS_REQ);
paEntry.setPaDataValue(tgsRequest.getApReq().encode());
return paEntry;
}
}