@Override
  public ErrorResponse parseRPCMessage(OSDRequest rq) {
    try {
      xtreemfs_rwr_auth_stateRequest rpcrq = (xtreemfs_rwr_auth_stateRequest) rq.getRequestArgs();
      rq.setFileId(rpcrq.getFileId());
      rq.setCapability(new Capability(rpcrq.getFileCredentials().getXcap(), sharedSecret));
      rq.setLocationList(new XLocations(rpcrq.getFileCredentials().getXlocs(), localUUID));

      return null;
    } catch (InvalidXLocationsException ex) {
      return ErrorUtils.getErrorResponse(
          ErrorType.ERRNO, POSIXErrno.POSIX_ERROR_EINVAL, ex.toString());
    } catch (Throwable ex) {
      return ErrorUtils.getInternalServerError(ex);
    }
  }