真的无法使用吗默认模式对于带有 PostgreSQL 的 Spring Security,因为这部分"varchar_ignorecase" does not exist
不能更换吗?
我只是测试默认设置:
auth.jdbcAuthentication()
.dataSource(dataSource)
.withDefaultSchema();
下面是错误:
造成原因:
org.springframework.beans.factory.BeanDefinitionStoreException:
工厂方法 [public javax.servlet.Filter
org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain()
throws java.lang.Exception] 抛出异常;
嵌套异常是
org.springframework.jdbc.datasource.init.ScriptStatementFailedException:
无法执行资源类第 1 行的 SQL 脚本语句
路径资源
[org/springframework/security/core/userdetails/jdbc/users.ddl]:创建
表用户(用户名varchar_ignorecase(50)不为空主
键,密码 varchar_ignorecase(500) 不为空,启用布尔值不
无效的);
嵌套异常是
org.postgresql.util.PSQLException:错误:
类型“varchar_ignorecase”不存在
由于默认模式不适合 PostgreSQL,我需要创建自己的模式并实现自己的用户和权限查询查询。
auth.jdbcAuthentication()
.dataSource(dataSource)
.usersByUsernameQuery(
"select username,password, enabled from users where username=?")
.authoritiesByUsernameQuery(
"select username, role from user_roles where username=?");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)