Spring Security: configure (autenticación AuthenticationManagerBuilder)
Tengo una entidadUser
con atributos:
id
username
password
firstname
lastname
userrole
Atributouserrole
es tipo deenum
y noSet
, entonces 1 userrole / user.
Ahora quiero hacer una autenticación JDBC.
Por ahora tengo:
auth
.jdbcAuthentication()
.dataSource(dataSource)
.usersByUsernameQuery("select username, password from user where username=?")
.authoritiesByUsernameQuery("select username, userrole from user where username=?");
Pero esto no funciona.
¿Cómo debería la consulta en.usersByUsernameQuery("...")
y.authoritiesByUsernameQuery("...");
ser formulado?
Mensaje de error:
Causado por: org.h2.jdbc.JdbcSQLException: Valor no permitido "3" para el parámetro "columnIndex" Valor no válido "3" para el parámetro "columnIndex" [90008-192] en org.h2.message.DbException.getJdbcSQLException (DbException. java: 345) ~ [h2-1.4.192.jar: 1.4.192] en org.h2.message.DbException.get (DbException.java:179) ~ [h2-1.4.192.jar: 1.4.192] en org.h2.message.DbException.getInvalidValueException (DbException.java:228) ~ [h2-1.4.192.jar: 1.4.192] en org.h2.jdbc.JdbcResultSet.checkColumnIndex (JdbcResultSet.java:3172) [hdbcResultSet.java:3172) -1.4.192.jar: 1.4.192] en org.h2.jdbc.JdbcResultSet.get (JdbcResultSet.java:3200) ~ [h2-1.4.192.jar: 1.4.192] en org.h2.jdbc.JdbcResultSet .getBoolean (JdbcResultSet.java:541) ~ [h2-1.4.192.jar: 1.4.192] en org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl $ 1.mapRow (JdbcDaoImpl.java:223) ~ [spring -security-core-4.1.3.RELEASE.jar: 4.1.3.RELEASE] en org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl $ 1.mapRow (JdbcDaoImpl.java:218) ~ [spring-security-core -4.1.3.RELEASE.jar: 4.1.3. RELEASE] en org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData (RowMapperResultSetExtractor.java:93) ~ [spring-jdbc-4.3.3.RELEASE.jar: 4.3.3.RELEASE] en org.springframework.jdbcb. RowMapperResultSetExtractor.extractData (RowMapperResultSetExtractor.java:60) ~ [spring-jdbc-4.3.3.RELEASE.jar: 4.3.3.RELEASE] en org.springframework.jdbc.core.JdbcTemplate $ 1.doInPrepadStatement (7). ~ [spring-jdbc-4.3.3.RELEASE.jar: 4.3.3.RELEASE] en org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:633) ~ [spring-jdbc-4.3.3.RELEASE .jar: 4.3.3.RELEASE] ... 65 marcos comunes omitidos