我一直致力于春季启动迷你项目,我被困在这一部分。
因此,我们的项目可能包含许多用户,但每个用户只能拥有一个角色
有三个角色:
ERD包括:
我的问题是我可以根据我的ERD实现Spring安全注册和授权,因为我从互联网教程中看到的用户和角色实体之间存在多对多的关系,或者我的ERD是错误的?
希望有人能够启发我。
答案 0 :(得分:1)
是的,你可以。
Authentication
getAuthorities()
。它会返回Collection
,但您可以自行决定如何实施它。AuthenticatedUser
(而不是您在示例中找到的UsernamePasswordAuthenticationToken
)示例:
public class AuthenticatedUser implements Authentication{
private User user;
public AuthenticatedUser(User user){
this.user = user;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Arrays.asList(new SimpleGrantedAuthority(user.getRole()));
}
// rest of the code omitted
}
我不确定您是否理解您对注册的引用 - 用户注册通常是自定义实现;你不应该在那里遇到任何问题。