【问题标题】:Connecting to Admin secured webservice on App Engine from Java client从 Java 客户端连接到 App Engine 上的管理员安全网络服务
【发布时间】:2016-03-09 15:32:10
【问题描述】:

我有一个简单的 Java 工具,用于调用 App Engine 上的网络服务,以帮助我进行维护和管理。我目前只允许管理员使用 web.xml 文件和

访问来保护页面
<security-constraint>
    <web-resource-collection>
        <web-resource-name>xxxxxx</web-resource-name>
        <url-pattern>/xxxxxx</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

在浏览器通过身份验证过程进行调用时,这很好,但如果我想使用 Java 客户端访问该页面,我的方法应该是什么?

【问题讨论】:

    标签: java web-services google-app-engine authentication oauth


    【解决方案1】:

    通常,您的每个请求都必须包含允许其执行的凭据。所有没有此类凭据的请求都会被拒绝。

    在最简单的形式中,您可以在您的请求中包含一个客户秘密 - 一个很难猜到的长随机字符串。您的代码将包含此密钥,而来自外部的请求将不知道包含它。

    对于更安全/稳健的实施,您可以查看existing library,但对于简单的工具来说可能太多了。

    【讨论】:

    • 我希望针对管理员帐户服务器端验证令牌,以便其他有权访问客户端代码的开发人员不会意外或故意弄乱服务器设置。我猜我需要为此走 OAuth 路线,但我不知道从哪里开始。
    • 这取决于您的用例 - 您期望有多少外部开发人员以及它必须有多安全。我使用了一些 Web 服务,它们只给了我一个客户端密码,而我只是将它包含在所有请求中。如果您确实想要一些非常强大和安全的东西,请点击我提供的链接 - 它列出了您可以考虑的一些现有库。
    • 谢谢。我会看看。我现在可能只是去客户秘密,因为这很好也很容易。我总是可以让它要求我输入密码以增加安全性。 (目前)不需要过度设计。
    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2017-12-13
    相关资源
    最近更新 更多