为了账号安全,请及时绑定邮箱和手机立即绑定

在 Spring Boot 中进行 JDBC 身份验证时,是否必须使用默认的“用户”表?

在 Spring Boot 中进行 JDBC 身份验证时,是否必须使用默认的“用户”表?

潇潇雨雨 2021-08-19 18:41:17
我正在尝试在 Spring Boot 中使用 JDBC 身份验证。我正在尝试使用与默认“用户”不同的表。但是用这个方法@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {    auth.jdbcAuthentication().dataSource(dataSource)        .usersByUsernameQuery("SELECT email as USERNAME, PASSWORD as password FROM [user_account] WHERE email=?");}使用给定的表架构:[![f][1]][1]我收到以下错误:17:34:29.800 [http-nio-8081-exec-1] INFO  o.s.j.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]17:34:29.806 [http-nio-8081-exec-1] WARN  o.s.s.o.p.endpoint.TokenEndpoint - Handling error: [![enter image description here][2]][2]InternalAuthenticationServiceException, PreparedStatementCallback; SQL [SELECT email as USERNAME, PASSWORD as password FROM [user_account] WHERE email=?]; The index 3 is out of range.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The index 3 is out of range.如何使用我自己的用户数据表进行 JDBC 身份验证?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您可以通过附加启用作为要选择的第三个参数来更新您的查询吗

SELECT email as USERNAME, PASSWORD as password, enabled FROM [user_account] WHERE email=?


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信