- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我们正在使用 Play! HTTP session 的框架。
tenantId
和 ipAddress
是多个表中通用的列。
当用户登录时,我们将 tenantId
存储在 HttpContextSession
中
每当我们需要用户的 ip 地址时,我们都会使用 Http.Context.current().request().remoteAddress()
来存储 ip 地址。
我们编写了大量查询,现在我们想以通用方式保存或查询 tenantId
。
所有查询都通过 GenericDao 进行
我们可以在 GenericDao 中使用以下内容来获取租户 ID,以便我们可以追加所有查询吗?
Http.Context.session().get("tenantId");
保存或检索这些详细信息的最佳方法是什么?
谢谢。
最佳答案
您不希望您的 DAO 必须依赖于表示层,例如 HTTP session 。我会推荐一个抽象来隐藏这些细节。
创建一个名为 TenantIdProvider 的接口(interface)并将其注入(inject)到您的 DAO 中。它看起来像这样:
public interface TenantIdProvider
{
String getTenantId();
}
然后创建一个名为 HttpSessionTenantIdProvider 的实现。
class HttpSessionTenantIdProvider implements TenantIdProvider
{
@Override
public String getTenantId()
{
return Http.Context.session().get("tenantId");
}
}
现在您的 GenericDAO 可以引用 TenantIdProvider,每个需要 tenantId 的查询都可以通过 TenantIdProvider 获取它,而不依赖于 Play Framework 或您使用的任何其他表示层。
如果您最终拥有运行和发送通知或其他一些任务的计划作业,并且它们使用此 DAO,那么这真的很重要。如果这个 DAO 依赖于 HTTP session ,那将是不可能的。您的工作应用程序可以创建一个刚刚返回“系统”或类似内容的 TenantIdProvider。
关于java - 如何在 GenericDao 中检索常用值(IpAddress、TenantId)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39471925/
假设我的 Azure AD 租户 e426c4ff-bbb4-4edb-96c8-4e0244ff8fd0 中有一个租户应用程序。我无法通过 https://login.microsoftonline
我正在尝试创建一个简单的 react 表单来将数据提交到 webapi,但是我收到此错误 Unhandled Rejection (TypeError): Cannot read property '
下午好 我猜想这个关系是正确的: Azure Tenant » Azure Subscription » Azure Automation » Runbook 因此我有这个问题: 是否有
我正在尝试进行身份验证和应用程序并获取不记名 token 以供进一步使用。我收到错误,这是该线程的标题。 另一个线程描述了同样的事情,只是我的代码是用 Java 编写的。解决方法是使用证书方法。 "T
我们正在使用 Play! HTTP session 的框架。 tenantId 和 ipAddress 是多个表中通用的列。 当用户登录时,我们将 tenantId 存储在 HttpContextSe
如果我使用基于消费计划的 azure 函数,我在哪里可以找到应用程序 ID 和租户 ID?在这种情况下,它没有连接到任何应用服务。 此时,我需要信息来检索 token 以在本地访问 key 保管库。
我正在尝试通过 Azure Active Directory 为我的应用程序创建身份验证,但运气不佳。 我在 Portal.azure.com 中创建了一个新的 Azure Active Direct
我正在尝试通过 Azure Active Directory 为我的应用程序创建身份验证,但运气不佳。 我在 Portal.azure.com 中创建了一个新的 Azure Active Direct
我正在将一个应用程序从单租户转移到 Multi-Tenancy 。在此过程中,我将 tenantId 添加到所有必需的模型并更新了数据库 (Entity Framework 5)。 但是,我有所有需要
我读了B2C access token documentation ,我注意到 tenantId 声明 (tid) 不在列表中。这不同于正常的 Azure Active Directory访问 tok
我正在尝试使用 rust package oauth2 (4.2.0) 使用 azure msal 2 进行单点登录。Azure 阻止使用“通用”端点 https://login.microsofto
我正在尝试使用带有 Azure 云资源管理和身份 API 的 azure java SDK 从 azure 客户端创建资源组。我正在 IntelliJ 中使用 Azure Tools 插件(我可以使用
我正在尝试使用 rust package oauth2 (4.2.0) 使用 azure msal 2 进行单点登录。Azure 阻止使用“通用”端点 https://login.microsofto
我正在尝试使用带有 Azure 云资源管理和身份 API 的 azure java SDK 从 azure 客户端创建资源组。我正在 IntelliJ 中使用 Azure Tools 插件(我可以使用
我正在使用 ASP.NET 5 和 EF7 编写 Multi-Tenancy Web 服务。存储库数据特定于租户/用户。因为我将在所有调用中使用 TenantId,所以我想用当前的 TenantId
我已经浏览过https://learn.microsoft.com/en-us/azure/data-factory/data-factory-copy-activity-tutorial-using
我们正在尝试在后端路由上使用@hapi/bell 来提供授权。身份验证策略使用 azure 作为提供者,方案为 bell 这就是我注册策略的方式。由于显而易见的原因,clientId、clientSe
我们正在尝试在后端路由上使用@hapi/bell 来提供授权。身份验证策略使用 azure 作为提供者,方案为 bell 这就是我注册策略的方式。由于显而易见的原因,clientId、clientSe
我正在尝试获取 Azure 函数应用程序的访问 token 。我已启用managed identity for the function App (system assigned) ,但是在使用 Az
我正在尝试获取 Azure 函数应用程序的访问 token 。我已启用managed identity for the function App (system assigned) ,但是在使用 Az
我是一名优秀的程序员,十分优秀!