我有一个使用springsecurity5的javaweb应用程序。
我使用mysql作为数据库。
包含用户的数据库表如下所示:
USERS TABLE
ID | USERNAME | PASSWORD | ADMIN_ROLE | USER_ROLE | READONLY_ROLE
-----------------------------------------------------------------
1 | Andy | abc123 | 1 | 1 | 0
2 | Bob | xyz789 | 0 | 1 | 1
3 | Chuck | qrs567 | 1 | 0 | 1
spring security要求我给它两个查询。。。一个获取用户,一个获取用户角色。
通常查询如下所示:
users-by-username-query="SELECT USERNAME, PASSWORD FROM USERS WHERE USERNAME=?;"
authorities-by-username-query="SELECT USERNAME, ROLENAME FROM TBL_USER_ROLE WHERE USERNAME=?;"
但是,我的用户和角色在一个表中。
那么,对于我的“authorities”查询,有没有一种方法可以在users表(上面)上编写一个sql查询,为每个“role”值1(true)提供一个记录?结果如下:
USERNAME | ROLE_NAME
---------------
Andy | ADMIN_ROLE
Andy | USER_ROLE
Bob | USER_ROLE
Bob | READONLY_ROLE
Chuck | ADMIN_ROLE
Chuck | READONLY_ROLE
1条答案
按热度按时间hc8w905p1#