docs: public static <T> T getTargetObject(Object proxy, Class<T> clazz) throws Exception {
          while( (AopUtils.isJdkDynamicProxy(proxy))) {
              return clazz.cast(getTargetObject(((Advised)proxy).getTargetSource().getTarget(), clazz));
          }
  
          return clazz.cast(proxy);
      }