gpt4 book ai didi

java - GAE 的身份验证策略

转载 作者:行者123 更新时间:2023-11-30 08:14:53 24 4
gpt4 key购买 nike

我有一个应用程序部署到 Google App Engine。在该应用程序中,有 2 个角色:标准用户和管理员。我有基于表单的身份验证设置,并且需要身份验证的 URL(例如/admin 和/account)被设置为需要任何角色 (*),这样我就可以确定 Google 已经对它们进行了身份验证。我为管理路径以及帐户路径设置了一个过滤器,该路径与后端业务逻辑对话,以查看用户在我的应用程序中是否有帐户,然后再将其转发到他们请求的页面,或在必要时进行重定向。

这看起来很麻烦,因为对于每个请求,过滤器都会使用 UserService 来获取 google 用户,以确定经过 google 身份验证的人员是否在应用程序中拥有帐户。我知道,在部署到传统应用程序服务器的应用程序上下文中,我实际上可以定义访问 url 所需的应用程序级别角色,并且由于应用程序服务器会了解应用程序的角色/用户,因此这就足够了,但由于谷歌正在处理身份验证,我是否正确地假设我必须在每个请求的基础上处理访问要求,就像我现在使用过滤器一样?我选择使用过滤器来尝试保持实际的 servlet“更干净”,这样我就知道当客户端请求到达 servlet 时,它们已经过身份验证并有权访问这些资源。

在 session 中携带这些数据(无论用户是否经过身份验证以及他们是管理员还是标准用户)是否明智?这是我能想到的唯一的其他选择。我不确定为每个请求访问 UserService 的成本有多高,因为这反过来又要访问数据存储区。我想必须有一种更好的方法来处理身份验证。

最佳答案

不太确定这是否是最佳解决方案,但我们现在所做的是存储用户 session (我们自己的实现,而不是 GAE),并使用 Objecitfy 的缓存功能积极缓存它。这样,我们只在登录/注销时访问数据存储,之后的大多数查询几乎都是免费的(由于我们的应用程序使用标准 session 时间,缓存刷新并不是真正的问题)

关于java - GAE 的身份验证策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com