{
KdcRequest request = tgsContext.getRequest();
Ticket tgt = tgsContext.getTgt();
Ticket newTicket = tgsContext.getNewTicket();
TicketGrantReply reply = new TicketGrantReply();
reply.setClientPrincipal( tgt.getEncTicketPart().getClientPrincipal() );
reply.setTicket( newTicket );
reply.setKey( newTicket.getEncTicketPart().getSessionKey() );
reply.setNonce( request.getNonce() );
// TODO - resp.last-req := fetch_last_request_info(client); requires store
reply.setLastRequest( new LastRequest() );
reply.setFlags( newTicket.getEncTicketPart().getFlags() );
reply.setClientAddresses( newTicket.getEncTicketPart().getClientAddresses() );
reply.setAuthTime( newTicket.getEncTicketPart().getAuthTime() );
reply.setStartTime( newTicket.getEncTicketPart().getStartTime() );
reply.setEndTime( newTicket.getEncTicketPart().getEndTime() );
reply.setServerPrincipal( newTicket.getServerPrincipal() );
if ( newTicket.getEncTicketPart().getFlags().isRenewable() )
{
reply.setRenewTill( newTicket.getEncTicketPart().getRenewTill() );
}
tgsContext.setReply( reply );
}