通常开发中会自己设计表结构,对于自定义的数据库,spring security也提供了自定义的控制语句。
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="select * as username,* as password,* as enabled
from user
where username=?"
authorities-by-username-query="select u.username,r.name as authority
from user u
join user_role ur
on u.id=ur.user_id
join role r
on r.id=ur.role_id
where u.username=?"/>
</authentication-provider>
users-by-username-query语句会自动验证登录用户。对于自定义的表,select语句必须将自定义字段 * 改为username,password,enabled。
authorities-by-username-query语句会获取登录用户的权限。对于自定义的表,select语句必须将自定义字段改为username,authority。
详细请看网址:http://www.mossle.com/docs/auth/html/ch003-custom-db.html