DataSourceRealm 不支持自定义的select user, select role
sql 查询。我想添加
enabled(boolean)
sql 列来启用和禁用用户。子类化和创建
MuchBetterDataSourceRealm
实现是唯一的选择吗?
https://github.com/apache/tomcat/blob/main/java/org/apache/catalina/realm/DataSourceRealm.java
在那里你可以看到sql是如何创建的。像这样配置领域
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/myDatabase"
userTable="usertable u"
userNameCol="u.enabled = TRUE AND u.username"
userCredCol="u.password"
userRoleTable="roletable r JOIN usertable u ON r.username = u.username"
roleNameCol="r.rolename">
</Realm>
产生以下陈述
SELECT
r.rolename
FROM
roletable r JOIN usertable u ON r.username = u.username
WHERE
u.enabled = TRUE AND u.username
= ?
SELECT
u.password
FROM
usertable u
WHERE
u.enabled = TRUE AND u.username
= ?