in kerby-kerb/kerb-admin-server/src/main/java/org/apache/kerby/kerberos/kerb/admin/server/kadmin/AdminServerHandler.java [92:137]
public ByteBuffer handleMessage(ByteBuffer receivedMessage,
InetAddress remoteAddress) throws KrbException, IOException {
XdrStructType decoded = new AdminMessageCode();
decoded.decode(receivedMessage);
XdrFieldInfo[] fieldInfos = decoded.getValue().getXdrFieldInfos();
AdminMessageType type = (AdminMessageType) fieldInfos[0].getValue();
/**Create LocalKadmin here*/
LocalKadmin localKadmin = new LocalKadminImpl(adminServerContext.getAdminServerSetting());
ByteBuffer responseMessage = null;
switch (type) {
case ADD_PRINCIPAL_REQ:
System.out.println("message type: add principal req");
responseMessage = handleAddPrincipalReq(localKadmin, fieldInfos);
break;
case DELETE_PRINCIPAL_REQ:
System.out.println("message type: delete principal req");
responseMessage = handleDeletePrincipalReq(localKadmin, fieldInfos);
break;
case RENAME_PRINCIPAL_REQ:
System.out.println("message type: rename principal req");
responseMessage = handleRenamePrincipalReq(localKadmin, fieldInfos);
break;
case GET_PRINCS_REQ:
System.out.println("message type: get principals req");
responseMessage = handleGetprincsReq(localKadmin, fieldInfos);
break;
case EXPORT_KEYTAB_REQ:
System.out.println("message type: export keytab req");
responseMessage = handleExportKeytabReq(localKadmin, fieldInfos);
break;
case CHANGE_PWD_REQ:
System.out.println("message type: change password req");
responseMessage = handleChangePwdReq(localKadmin, fieldInfos);
break;
case GET_PRINCIPAL_REQ:
System.out.println("message type: get principal req");
responseMessage = handleGetPrincipalRep(localKadmin, fieldInfos);
break;
default:
throw new KrbException("AdminMessageType error, can not handle the type: " + type);
}
return responseMessage;
}