OAuth с драйвером CData JDBC для XML - Файлы на Google Диске - CallbackURL не используется

Я использую драйвер JDBC CData для XML для чтения файлов XML в моем приложении Java, и некоторые из этих файлов находятся на диске Google, поэтому необходим OAuth.

Я слежу за аутентификацией в XML из потока веб-приложений, указанного на веб-сайте CData.

Первый шаг - получить URL-адрес авторизации OAuth с помощью хранимой процедуры GetOAuthAuthorizationURL.

Вот мой код:

       try {
        Class.forName("cdata.jdbc.xml.XMLDriver");
    } catch (ClassNotFoundException e1) {
    }
    
    String url="";
    
    Properties prop = new Properties();
    prop.setProperty("InitiateOAuth", "OFF");
    prop.setProperty("OAuthClientId", "my-client-id");
    prop.setProperty("OAuthClientSecret", "my-client-secret");
    prop.setProperty("CallbackURL", redirectUri);
            
    prop.setProperty("OAuthAuthorizationUrl", "https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/drive.readonly");
    
    try (Connection connection = DriverManager.getConnection("jdbc:xml:", prop)) {
        CallableStatement cstmt = connection.prepareCall("GetOAuthAuthorizationURL");
        boolean ret = cstmt.execute();
        
      if (ret) {
          ResultSet rs = cstmt.getResultSet();
          while (rs.next()){
              for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                  System.out.println(rs.getMetaData().getColumnName(i) + "=" + rs.getString(i));
                  if (StringUtils.equals(rs.getMetaData().getColumnName(i), "URL"))
                      url = rs.getString(i);
              }
          }
      }
        
    } catch (SQLException e) {
        e.printStackTrace();
    }

Параметр redirect_uri из возвращенного URL-адреса всегда устанавливается на значение по умолчанию [127.0.0.1] вместо callbackURL, который я отправляю как свойство в JDBC.

prop.setProperty ("CallbackURL", redirectUri);

Как это исправить

1 ответ

Это был способ сделать это:

      cstmt.setString("CallbackURL", redirectUri);
Другие вопросы по тегам