in kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/remote/AdminHandler.java [82:135]
public void onResponseMessage(AdminRequest adminRequest,
ByteBuffer responseMessage) throws KrbException {
XdrStructType decoded = new AdminMessageCode();
try {
decoded.decode(responseMessage);
} catch (IOException e) {
throw new KrbException("On response message failed.", e);
}
XdrFieldInfo[] fieldInfos = decoded.getValue().getXdrFieldInfos();
AdminMessageType type = (AdminMessageType) fieldInfos[0].getValue();
switch (type) {
case ADD_PRINCIPAL_REP:
if (adminRequest.getAdminReq().getAdminMessageType()
== AdminMessageType.ADD_PRINCIPAL_REQ) {
System.out.println((String) fieldInfos[2].getValue());
} else {
throw new KrbException("Response message type error: need "
+ AdminMessageType.ADD_PRINCIPAL_REP);
}
break;
case DELETE_PRINCIPAL_REP:
if (adminRequest.getAdminReq().getAdminMessageType()
== AdminMessageType.DELETE_PRINCIPAL_REQ) {
System.out.println((String) fieldInfos[2].getValue());
} else {
throw new KrbException("Response message type error: need "
+ AdminMessageType.DELETE_PRINCIPAL_REP);
}
break;
case RENAME_PRINCIPAL_REP:
if (adminRequest.getAdminReq().getAdminMessageType()
== AdminMessageType.RENAME_PRINCIPAL_REQ) {
System.out.println((String) fieldInfos[2].getValue());
} else {
throw new KrbException("Response message type error: need "
+ AdminMessageType.RENAME_PRINCIPAL_REP);
}
break;
case CHANGE_PWD_REP:
if (adminRequest.getAdminReq().getAdminMessageType()
== AdminMessageType.CHANGE_PWD_REQ) {
System.out.println((String) fieldInfos[2].getValue());
} else {
throw new KrbException("Response message type error: need "
+ AdminMessageType.CHANGE_PWD_REP);
}
break;
default:
throw new KrbException("Response message type error: " + type);
}
}