public void onResponseMessage()

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);
        }
    }