在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? 提前谢谢
答案 0 :(得分:0)
默认情况下,您可以在 authority-by-username-query 中返回该角色。例如,以下查询将在union的第一部分返回,数据库中存在的用户/角色对(您已经拥有的查询)和union的第二部分将返回每个用户一对 user / ROLE_USER 因此,即使user_roles表中不存在 ROLE_USER ,现在每个用户都将拥有 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