Spring security 具有数据库和多个角色的Spring安全性?

Spring security 具有数据库和多个角色的Spring安全性?,spring-security,Spring Security,我正在尝试使用Spring3.0制作一个应用程序。 现在我决定试试SpringSecurity和hibernate。 我已经看到了用数据库支持它的可能性,并且我已经看到了定义您自己的查询的参考 现在我遇到的问题是,我找到的教程不太清楚,它们假设一个用户只能有一个角色。我想给一些用户多个角色 所以我考虑了一个数据库方案,大致如下: 用户: 用户id 用户名 密码 注册日期 用户角色: 用户id 角色id 角色: 角色id 罗兰胺 现在我想知道是否有人有一些有用的教程/建议/评论的指针。

我正在尝试使用Spring3.0制作一个应用程序。 现在我决定试试SpringSecurity和hibernate。 我已经看到了用数据库支持它的可能性,并且我已经看到了定义您自己的查询的参考

现在我遇到的问题是,我找到的教程不太清楚,它们假设一个用户只能有一个角色。我想给一些用户多个角色

所以我考虑了一个数据库方案,大致如下:

用户:

  • 用户id
  • 用户名
  • 密码
  • 注册日期
用户角色:

  • 用户id
  • 角色id
角色:

  • 角色id
  • 罗兰胺

现在我想知道是否有人有一些有用的教程/建议/评论的指针。

您需要实现自己的(支持每个用户的多个角色)。然后,这个自定义UserDetails实现由您自己的实现返回,该实现被注入到您的系统中

另请参见我的答案@以获取完整的示例。

类似于以下内容:

public class CustomUserService implements UserDetailsService {

   private UserDao userDao;

   public CustomUserService(UserDao u) {
      userDao = u;
   }

   public UserDetails loadUserByUsername(String username) {
      CustomUser user = userDao.getUser(username);
      if (user == null)
         throw new UserNotFoundException("User "+username+" does not exist");
      return user;
   }
}

您的UserDao实现是一个简单的DAO,它可以轻松地使用hibernate注释并为您的CustomUser对象分配多个角色。非常基本。

我从数据库中了解了身份验证部分。但是我们如何从数据库中分配角色呢?你能回答我的问题吗