Spring Security: configure (autenticación AuthenticationManagerBuilder)

Tengo una entidadUser con atributos:

idusernamepasswordfirstnamelastnameuserrole

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta