尝试登录时出现错误(或者,当我使用转义中止 HTTP 基本对话框时)
HTTP 状态 401 - PreparedStatementCallback;错误的 SQL 语法 [select username,authority from authority where username = ?]; 嵌套异常是 org.postgresql.util.PSQLException:错误:关系“权限”不存在位置:32
但是,当我想使用基于组的安全性时,使用下面的两个查询属性还不够吗?我是否需要为此属性定义查询?authorities-by-username-query=""
为什么它不起作用?
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource"
users-by-username-query="..."
group-authorities-by-username-query="..." />
</security:authentication-provider>
</security:authentication-manager>
来自 JdbcDaoImpl 的来源:
if (enableAuthorities) {
dbAuthsSet.addAll(loadUserAuthorities(user.getUsername()));
}
if (enableGroups) {
dbAuthsSet.addAll(loadGroupAuthorities(user.getUsername()));
}