【问题标题】:Spring jdbc SQL Bad grammar exception, is the selection columns strict?Spring jdbc SQL Bad语法异常,选择列是否严格?
【发布时间】:2012-12-05 15:56:46
【问题描述】:

当我尝试使用 Spring Security 通过数据库进行身份验证时,我搜索了几个示例,所有示例都类似于以下查询:

<authentication-manager>
   <authentication-provider>
    <jdbc-user-service data-source-ref="dataSource"

       users-by-username-query="
          select username,password, enabled 
          from users where username=?" 

       authorities-by-username-query="
          select u.username, ur.authority from users u, user_roles ur 
          where u.user_id = ur.user_id and u.username =?  " 

    />
   </authentication-provider>
</authentication-manager>

如果我要更改如下查询是错误的吗?如果不是为什么?

<security:authentication-manager>
    <security:authentication-provider>
          <security:jdbc-user-service data-source-ref="dataSource"
                users-by-username-query="select login.name,login.passw from login where login.name=?"
          authorities-by-username-query="select login.name, login.type from login where login.name =?"/>

    </security:authentication-provider>
</security:authentication-manager>

这是我给出错误 SQL 异常的示例。

【问题讨论】:

    标签: spring spring-mvc spring-security


    【解决方案1】:

    你可以使用别名:

    users-by-username-query="select login.name username,login.passw password from login where login.name=?"
    

    但我认为你也需要enabled。如果数据库中没有它,您可以在查询中将其硬编码为 true。

    【讨论】:

      猜你喜欢
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 2011-01-13
      相关资源
      最近更新 更多