/** * {@inheritDoc} */ @Override public void handleRequest(KdcRequest kdcRequest, boolean tryNextKdc) throws KrbException { KrbTransport transport = (KrbTransport) kdcRequest.getSessionData(); transport.setAttachment(kdcRequest); super.handleRequest(kdcRequest, tryNextKdc); ByteBuffer receivedMessage = null; try { receivedMessage = transport.receiveMessage(); } catch (IOException e) { throw new KrbException("Receiving response message failed", e); } super.onResponseMessage(kdcRequest, receivedMessage); }
/** * 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); } }
kdcRequest.setPreauthRequired(true); kdcRequest.resetPrequthContxt(); handleRequest(kdcRequest, false); LOG.info("Retry with the new kdc request including pre-authentication."); } else {
/** * 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); } }
kdcRequest.setPreauthRequired(true); kdcRequest.resetPrequthContxt(); handleRequest(kdcRequest, false); LOG.info("Retry with the new kdc request including pre-authentication."); } else {
/** * {@inheritDoc} */ @Override public void handleRequest(KdcRequest kdcRequest, boolean tryNextKdc) throws KrbException { KrbTransport transport = (KrbTransport) kdcRequest.getSessionData(); transport.setAttachment(kdcRequest); super.handleRequest(kdcRequest, tryNextKdc); ByteBuffer receivedMessage = null; try { receivedMessage = transport.receiveMessage(); } catch (IOException e) { throw new KrbException("Receiving response message failed", e); } super.onResponseMessage(kdcRequest, receivedMessage); }