定義具有不同角色/權限的用戶時,有哪些最佳實踐有哪些,例如限制訪問的普通用戶和具有完全訪問權限的管理員?識別用戶角色和權限的最佳做法?
我的用戶類看起來是這樣的:
@Entity
@Table(name = "users")
public class User {
@Id
@Column(name = "userID")
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
private Long userID;
public Long getUserID() {
return userID;
}
@ManyToOne(fetch = FetchType.LAZY)
@Column(nullable = false)
private Role role;
@Column(nullable = false)
private boolean isActive;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = false)
private String password;
@Column
@Temporal(TemporalType.TIMESTAMP)
private Calendar lastLoggedIn;
@Column(nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Calendar createdDate;
@Version
private Integer version;
}
我的角色類是:
@Entity
@Table(name = "roles")
public class Role {
@Id
@Column(name = "roleID")
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
private Long roleID;
@Column(nullable = false)
private String roleName;
@Column(nullable = false)
private String rolePermissions;
}
說我的應用程序需要檢索的用戶列表和自己的角色,應用戶的一個實例持有對Role的實例(或代理)的引用?如果我的應用程序必須爲特定角色查找所有用戶,那麼角色是否必須擁有用戶列表?什麼是設計和實施這種關係的嘗試和真實的方式?
另外,我正在與JPA正確地做映射嗎?
用戶和角色之間的外鍵的角色名或角色ID? –
它應該是roleId,JPA不會處理這個問題嗎? –
它對我來說很奇怪......應該不是角色<->用戶是多對多的嗎? –