2013-04-28 86 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>