0

在 Spring 中,我尝试对 DB 进行身份验证。使用此配置成功:

<jdbc-user-service data-source-ref="dataSource"

       users-by-username-query="
          select username,password, enabled 
          from user where username=?" 

       authorities-by-username-query="
          select u.username, ur.authority from user u, user_roles ur 
          where u.id = ur.user_id and u.username =?  " 

    />

但是我无法登录,直到我在 user_roles 中为每个用户添加一行以至少指定 ROLE_USER...有没有办法在不在 DB 中添加记录的情况下将 ROLE_USER 授予所有用户?提前致谢

4

1 回答 1

0

默认情况下,您可以在authority-by-username-query中返回该角色。例如,以下查询将在联合的第一部分返回,数据库中存在的用户/角色对(您已经拥有的查询)和联合的第二部分将为每个用户返回一对user/ROLE_USER因此,即使 user_roles 表中不存在该角色,每个用户现在都将拥有角色ROLE_USER

select u.username, ur.authority from user u, user_roles ur 
          where u.id = ur.user_id and u.username =?
union
select u.username, 'ROLE_USER' from user u 
于 2012-05-11T07:55:13.490 回答