使用Google OAuth 2.0验证桌面客户端应用

时间:2015-02-11 12:07:36

标签: java mysql oauth google-cloud-sql

我正在创建一个与Cloud SQL MySQL数据库通信的Java桌面应用程序。目前,每个IP地址授予访问权限,并限制对数据库的某些计算机的访问。 我想使用Google的OAuth 2.0验证对数据库的计算机访问权限。如何为我的应用程序设置Google OAuth? 我已阅读Google文档(OAuth 2.0Google Client API),但我仍然不知道如何执行此操作。

非常感谢任何帮助!

修改 我有一个客户端,它是在计算机上运行的应用程序。这个Java应用程序有一个openConnection方法,它通过jdbc驱动程序请求一个mysql连接。我认为openConnection方法应该如下所示。

public void openConnection() {
    Connection con = //HTTP request to Google App Engine
                     //In http request: request(accessToken, ipAddress, );
}

服务器应该有一个doGet方法,它应该类似于下面提供的方法。

public void doGet(HttpServletRequest req, HttpServletResponse res) {
        //Authenticate
        boolean passed = //some way to authenticate the client
        if (passed) {
            //This request would pass, because the app engine has read write access
            Connection con = DriverManager.getConnection("jdbc:mysql://"+ipAddress+":"+portNumber+"/"+databaseName,user,pass);
            return connection;
        }
        else{
            //Not authenticated
        }

}

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

  1. 您必须在Google Console创建项目。
  2. 您必须为创建的项目创建OAuth客户端ID enter image description here
  3. 在您的应用程序中实施OAuth,如Wiki Page
  4. 命令行授权代码流一章所述
  5. 使用您在步骤2中生成的客户端ID和客户端密钥替换示例中的OAuth2ClientCredentials-Constants
  6. 可以找到使用Google OAuth lib实现OAuth的Java应用程序的完整示例here。只需签出源并将其调整到您的应用程序并更改客户端ID和客户端密钥。