我將在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可以提出一些更加標準的開箱即用的功能嗎?