blob: f1cc89d782f8562758bf595b5ea5f3f54d6c0736 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.kerby.kerberos.kerb.server;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.request.ApRequest;
import org.apache.kerby.kerberos.kerb.response.ApResponse;
import org.apache.kerby.kerberos.kerb.type.ap.ApRep;
import org.apache.kerby.kerberos.kerb.type.ap.ApReq;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.KrbMessageType;
import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
import org.apache.kerby.kerberos.kerb.type.ticket.SgtTicket;
import org.apache.kerby.kerberos.kerb.type.ticket.TgtTicket;
import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
import static org.assertj.core.api.Assertions.assertThat;
public class ApRequestTest extends KdcTestBase {
@Test
public void test() throws IOException, KrbException {
TgtTicket tgt = null;
SgtTicket tkt = null;
try {
tgt = getKrbClient().requestTgt(getClientPrincipal(),
getClientPassword());
assertThat(tgt).isNotNull();
tkt = getKrbClient().requestSgt(tgt, getServerPrincipal());
assertThat(tkt).isNotNull();
} catch (Exception e) {
Assert.fail("Exception occurred with good password. "
+ e.toString());
}
ApRequest apRequest = new ApRequest(new PrincipalName(getClientPrincipal()), tkt);
ApReq apReq = apRequest.getApReq();
assertThat(apReq.getPvno()).isEqualTo(5);
assertThat(apReq.getMsgType()).isEqualTo(KrbMessageType.AP_REQ);
assertThat(apReq.getAuthenticator().getCname()).isEqualTo(tgt.getClientPrincipal());
assertThat(apReq.getAuthenticator().getCrealm()).isEqualTo(tgt.getRealm());
EncryptionKey encryptedKey = getKdcServer().getKadmin().getPrincipal(
getServerPrincipal()).getKey(tkt.getTicket().getEncryptedEncPart().getEType());
ApResponse apResponse = new ApResponse(apReq, encryptedKey);
ApRep apRep = apResponse.getApRep();
assertThat(apRep.getPvno()).isEqualTo(5);
assertThat(apRep.getMsgType()).isEqualTo(KrbMessageType.AP_REP);
}
}