0

春に私はDBに対して認証しようとしています.それはこの構成を使用して成功しています:

<jdbc-user-service data-source-ref="dataSource"

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

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

    />

しかし、少なくとも各ユーザーが ROLE_USER を指定するように user_roles に行を追加するまでログインできません... DB にレコードを追加せずにすべてのユーザーに ROLE_USER を付与する方法はありますか? 前もって感謝します

4

1 に答える 1

0

デフォルトでは、authorities-by-username-queryでそのロールを返すことができます。たとえば、次のクエリは、ユニオンの最初の部分、データベースに存在するユーザー/ロールのペア(既に持っているクエリ)を返し、ユニオンの2番目の部分は、ユーザーごとにユーザー/ROLE_USERのペアを返します。したがって、user_rolesテーブルに存在しない場合でも、すべてのユーザーがROLE_USERの役割を持つようになります。

select u.username, ur.authority from user u, user_roles ur 
          where u.id = ur.user_id and u.username =?
union
select u.username, 'ROLE_USER' from user u 
于 2012-05-11T07:55:13.490 に答える