【发布时间】:2018-09-23 01:20:54
【问题描述】:
我试图使用 spring boot、spring security、Hibernate/JPA 和 JWT 在我的应用程序中设置角色用户系统,所以我创建了两个实体第一个:
AppUser 实体:
@Entity
@Data
@AllArgsConstructor @NoArgsConstructor
public class AppUser implements Serializable {
@Id @GeneratedValue
private Long id;
@Column(unique = true)
private String username;
private String password;
@ManyToMany(fetch = FetchType.EAGER)
private Collection<AppRole> roles = new ArrayList<>();
}
AppRole 实体:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppRole implements Serializable {
@Id @GeneratedValue
private Long id;
private String roleName;
}
因此,使用 jwt 和 spring 安全性对不同用户(管理员、客户端)的身份验证一切顺利。
在做这个系统之前,我创建了两个实体:admin 和 client,但是正如你现在看到的,在这个新实现中我只有一个名为 AppUser 的实体(因为 admin 和 client 具有相同的属性)。
我现在对这个应用程序很感兴趣的问题是管理员应该管理一些实体,包括“客户”(现在不存在)、“项目”和 客户应管理实体“干预”。
项目实体:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Project implements Serializable{
@Id @GeneratedValue
private long id;
private String description;
}
遵循旧的 UML_Classes 示例:新实现之前的项目 + 管理员:
那么我将如何实现这些实体之间的关系呢?例如,如果他是管理员,我将如何说实体 AppUser 将管理实体项目?
等等
如果有任何有用的链接,谢谢你将我重定向到它,我不知道要搜索什么才能得到我想要的。
PS:这个应用程序被认为是一个 API Rest,spring boot 作为后端,angular4 客户端作为前端,在客户端中我可以得到哪个用户通过了身份验证以及他获得的角色,我想知道我的情况打算实现其他实体,例如管理员管理的项目,ORM 端,所以我可以在数据库 Mysql 中看到所有这些实体,我应该添加任何角色还是什么?
提前谢谢你。
【问题讨论】:
标签: java hibernate spring-boot jpa roles