/** * Handle the kdc request. * * @param kdcRequest The kdc request * @param tryNextKdc try next kdc or not * @throws KrbException e */ public void handleRequest(KdcRequest kdcRequest, boolean tryNextKdc) throws KrbException { if (!tryNextKdc || kdcRequest.getKdcReq() == null) { kdcRequest.process(); } KdcReq kdcReq = kdcRequest.getKdcReq(); int bodyLen = kdcReq.encodingLength(); KrbTransport transport = (KrbTransport) kdcRequest.getSessionData(); boolean isTcp = transport.isTcp(); ByteBuffer requestMessage; if (!isTcp) { requestMessage = ByteBuffer.allocate(bodyLen); } else { requestMessage = ByteBuffer.allocate(bodyLen + 4); requestMessage.putInt(bodyLen); } KrbCodec.encode(kdcReq, requestMessage); requestMessage.flip(); try { sendMessage(kdcRequest, requestMessage); } catch (IOException e) { throw new KrbException("sending message failed", e); } }
/** * Handle the kdc request. * * @param kdcRequest The kdc request * @param tryNextKdc try next kdc or not * @throws KrbException e */ public void handleRequest(KdcRequest kdcRequest, boolean tryNextKdc) throws KrbException { if (!tryNextKdc || kdcRequest.getKdcReq() == null) { kdcRequest.process(); } KdcReq kdcReq = kdcRequest.getKdcReq(); int bodyLen = kdcReq.encodingLength(); KrbTransport transport = (KrbTransport) kdcRequest.getSessionData(); boolean isTcp = transport.isTcp(); ByteBuffer requestMessage; if (!isTcp) { requestMessage = ByteBuffer.allocate(bodyLen); } else { requestMessage = ByteBuffer.allocate(bodyLen + 4); requestMessage.putInt(bodyLen); } KrbCodec.encode(kdcReq, requestMessage); requestMessage.flip(); try { sendMessage(kdcRequest, requestMessage); } catch (IOException e) { throw new KrbException("sending message failed", e); } }