首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Cloud Endpoint上API-key授权的Java注解?

Google Cloud Endpoint上API-key授权的Java注解?
EN

Stack Overflow用户
提问于 2016-11-11 22:06:32
回答 2查看 598关注 0票数 1

我有一个通过Google Cloud Endpoint公开API的Google App Engine项目。到目前为止,所有的API/端点都使用OAuth2身份验证(和授权),这对于“真正的”用户来说是很好的。

现在我想公开一些新的API,它们是供机器而不是人类用户使用的。我希望这些端点使用API-key授权。

在云控制台中,我创建了一个API密钥(API管理器/凭证)。

Google documentation使用一个yaml文件来配置API-key授权。但是,我不使用yaml配置,而且它在Java应用程序中似乎并不常见。

我希望对于Java,会有使用API-keys进行授权的注释。然而,用于Java的谷歌documentation并没有提到任何类似的东西。

可以在使用注释的Java应用程序中使用API-keys吗?有没有其他推荐的方法呢?

更新:似乎API密钥在云端点2.0中有效,该版本正在测试中(2016年11月)。但是,Google Eclipse插件不支持CE2.0,并且需要Maven (我非常不喜欢Maven)。我没有时间重写我的项目,所以现在我已经在我的API中添加了一个额外的'api_key‘参数,我在代码中检查它。请注意,此参数不能称为“key”,因为Cloud Endpoint会认为这是它自己的API密钥,并以未配置访问权限作为响应。

EN

回答 2

Stack Overflow用户

发布于 2016-11-12 07:26:57

是的,这是可能的。升级到最新的框架,在@Api@ApiClass@ApiMethod中使用apiKeyRequired字段。我们最近添加了这个,但文档还没有跟上。很抱歉!

票数 2
EN

Stack Overflow用户

发布于 2016-11-14 02:31:44

昨天我也遇到了同样的问题。

我在Java和Maven中遵循了这个例子:

backend

但是,该示例没有api-key授权。

因此,我花了几个小时解密如何将api-key授权添加到示例中。

由于没有关于如何在java中添加api-key注释的文档,我所做的就是在swagger.json中手动添加注释。

我编辑了swagger.json文件并添加了:

1)安全变量

代码语言:javascript
复制
  "Security": [
   {
    "Api_key": []
   }
  ],
 "You consume": [
  "Application / json"
 ],

2) securityDefinitions中的变量api_key

代码语言:javascript
复制
 "SecurityDefinitions": {

"Api_key": {
    "Type": "apiKey",
    "Name": "key",
    "In": "query"
},
  "Google_id_token": {

这就解决了问题。

之后,我继续执行README.md示例中定义的deploy to App Engine流程:

1) gcloud测试版服务-管理部署swagger.json

2) mvn appengine:更新

希望这篇文章能对你有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40549679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档