2013-04-28 102 views
0

我會問一個關於彈簧安全的問題!彈簧安全與我自己的表

是可以配置我自己的表認證提供,這是我爲例

故事「utilisateur」

CREATE TABLE utilisateur 
(
    id_user serial NOT NULL, 
    authority character varying(50) NOT NULL, 
    username character varying(50) NOT NULL, 
    "password" character varying(50) NOT NULL, 
    CONSTRAINT cl_primaire_utilisateur PRIMARY KEY (id_user) 
) 

山楂可我製作春季做我自己的表連接

<authentication-manager> 
     <authentication-provider user-service-ref='userDetailsService' /> 
    </authentication-manager> 

回答

1

您可以使用JDBC-based user details service來實現此目的。您可以將其配置爲爲用戶和權限查詢任意表。

下面是使用它我過去的一個項目相關的安全上下文部分的示例:

<!-- Configure Authentication mechanism --> 
<authentication-manager alias="authenticationManager"> 
    <!-- DAO Based Security --> 
    <authentication-provider> 
     <password-encoder hash="md5" /> 
     <jdbc-user-service data-source-ref="dataSource" 
      users-by-username-query="SELECT U.username AS username, U.password as password, 'true' as enabled FROM user U where U.username=?" 
      authorities-by-username-query="SELECT U.username as username, A.name as authority FROM user U left join user_roles UA on U.id=UA.user left join role A on UA.roles = A.id WHERE U.username=?" /> 
    </authentication-provider> 
</authentication-manager>