【发布时间】:2018-10-03 06:14:40
【问题描述】:
我正在做一个关于 Spring Boot 安全性的项目。我无法让用户具有不同的角色。 就像,我需要一个具有管理员角色的用户和另一个具有用户和管理员角色的用户。 我无法做到这一点。
我已经发布了我的实体类 有人可以帮我看看如何让用户成为管理员。
//用户实体类
@Entity
@Table(name="mytable")
public class User {
private int id;
private String username;
private String firstname;
private String lastname;
private int age;
private String password;
private Set<Role> roles;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
...omitted getters and setters
@ManyToMany(cascade = CascadeType.ALL,fetch=FetchType.EAGER)
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id", referencedColumnName="id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName="id"))
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
//角色实体类
@Entity
@Table(name="roles")
public class Role {
private Long id;
private String name;
private Set<User> users;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
@ManyToMany(mappedBy = "roles")
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
}
【问题讨论】:
-
您应该始终发布您遇到的任何问题或异常,以便其他人可以提供帮助
-
这是我在 github 上的一个项目,它可以完全满足您的需求,但我有一个用户和角色类。我认为根本问题将是referencedColumnName。这是链接:github.com/OpenPCM/openpcm-server
标签: spring-boot spring-security