package org.apache.kerberos.kerb.common; import org.apache.kerberos.kerb.codec.KrbCodec; import org.apache.kerberos.kerb.spec.common.KrbMessage; import org.apache.haox.transport.Transport; import java.io.IOException; import java.nio.ByteBuffer; public class KrbUtil { public static void sendMessage(KrbMessage message, Transport transport) { int bodyLen = message.encodingLength(); ByteBuffer buffer = ByteBuffer.allocate(bodyLen + 4); buffer.putInt(bodyLen); message.encode(buffer); buffer.flip(); transport.sendMessage(buffer); } public static KrbMessage decodeMessage(ByteBuffer message) throws IOException { int bodyLen = message.getInt(); assert (message.remaining() >= bodyLen); KrbMessage krbMessage = KrbCodec.decodeMessage(message); return krbMessage; } }