0

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例外を与える私の例です。

4

1 に答える 1

1

エイリアスを使用できます:

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

しかし、あなたも必要になると思いますenabled。データベースにない場合は、クエリで true になるようにハードコーディングできます。

于 2012-12-05T07:56:46.867 に答える