我有一个具有属性的实体User:
idusernamepasswordfirstnamelastnameuserrole属性userrole是enum的类型,而不是Set,因此1用户角色/用户。
现在,我想进行JDBC身份验证。
现在我有:
auth
.jdbcAuthentication()
.dataSource(dataSource)
.usersByUsernameQuery("select username, password from user where username=?")
.authoritiesByUsernameQuery("select username, userrole from user where username=?");但这不管用。
.usersByUsernameQuery("...")和.authoritiesByUsernameQuery("...");中的查询应该如何表述?
错误消息:
由: org.h2.message.DbException.getJdbcSQLException(DbException.java:345) ~h2-1.4.192.jar:1.4.192 at org.h2.message.DbException.get(DbException.java:179) ~h2-1.4.192.jar:1.4.192在org.h2.message.DbException.get(DbException.java:179)~H2-1.4.192.jar:1.4.192在org.h2处的参数"columnIndex“无效值"3”引起: org.h2.jdbc.JdbcSQLException:不允许值"3“。message.DbException.getInvalidValueException(DbException.java:228) ~h2-1.4.192.jar:1.4.192在org.h2.jdbc.JdbcResultSet.checkColumnIndex(JdbcResultSet.java:3172) ~h2-1.4.192.jar:1.4.192在org.h2.jdbc.JdbcResultSet.get(JdbcResultSet.java:3200) ~h2-1.4.192.jar:1.4.192在org.h2.jdbc.JdbcResultSet.getBoolean(JdbcResultSet.java:541) ~h2-1.4.192.jar:1.4.192在org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl$1.mapRow(JdbcDaoImpl.java:223) ~spring-security-core-4.1.3.RELEASE.jar:4.1.3.RELEASE at org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl$1.mapRow(JdbcDaoImpl.java:218) ~spring-security-core-4.1.3.RELEASE.jar:4.1.3.RELEASE在org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93) ~spring-jdbc-4.3.3.RELEASE.jar:4.3.3.RELEASE在org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60) ~spring-jdbc-4.3.3.RELEASE.jar:4.3.3.RELEASE在org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:697) ~Spring-JDBC-4。3.3.RELEASE.JAR:4.3.3. omitted在org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:633) ~spring-jdbc-4.3.3.RELEASE.jar:4.3.3.RELEASE . 65种常见帧省略
发布于 2017-03-21 13:55:31
对用户的查询需要3个参数,请参阅弹簧安全参考
选择用户名,密码,从用户那里启用用户名=?
https://stackoverflow.com/questions/42928268
复制相似问题