我将在Spring OAuth 2 + Spring Data Neo4j项目中实现多租户支持。Spring OAuth 2 + Spring Data Neo4j多租户
我已配置我的OAuth2授权服务器与几个不同的客户与不同的clientId
。
另外,我还增加了一个基地TenantEntity
我的春天数据Neo4j的车型:
@NodeEntity
public abstract class TenantEntity extends BaseEntity {
private String tenantId;
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
}
我所有的现有数据春实体的Neo4j现在必须扩大这种TenantEntity
。
现在我要重写我所有的Neo4j查询以支持tenantId
参数。
例如当前查询:
MATCH (d:Decision)<-[:DEFINED_BY]-(c:Criterion) WHERE id(d) = {decisionId} AND NOT (c)<-[:CONTAINS]-(:CriterionGroup) RETURN c
我要重写如下:
MATCH (d:Decision)<-[:DEFINED_BY]-(c:Criterion) WHERE id(d) = {decisionId} AND d.tenantId = {tenantId} AND c.tenantId = {tenantId} AND NOT (c)<-[:CONTAINS]-(:CriterionGroup) RETURN c
反过来对tenantId
我要使用的OAuth2 clientId
,并与每一起存储Neo4j实体。
这是一个正确的方法,以实现多租户或Spring OAuth2/Data Neo4j可以提出一些更加标准的开箱即用的功能吗?