_GROUP_MEMBERS_SQL =
"delete from group_members where group_id = ";
public static final String DEF_RENAME_GROUP_SQL =
"update groups set group_name = where group_name = ";
public static final String DEF_INSERT_GROUP_MEMBER_SQL =
"insert into group_members (group_id, username) values ( , )";
public static final String DEF_DELETE_GROUP_MEMBER_SQL =
"delete from group_members where group_id = and username = ";
public static final String DEF_GROUP_AUTHORITIES_QUERY_SQL =
"select g.id, g.group_name, ga.authority " +
"from groups g, group_authorities ga " +
"where g.group_name = " +
"and g.id = ga.group_id ";
public static final String DEF_DELETE_GROUP_AUTHORITY_SQL =
"delete from group_authorities where group_id = and authority = ";
数据库安全认证配置示例:
< xml version="1.0" encoding="UTF-8" >
xmlns:security="http://www.springframework.org/schema/security"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
data-source-ref="dataSource"
group-authorities-by-username-query="select g.id, g.group_name, ga.authority
from groups g, group_members gm, group_authorities ga
where gm.username = and g.id = ga.group_id and g.id = gm.group_id" />
embedded-database标签:Spring默认使用hsql,如果使用其他内存数据库,如Derby,需要指定。
jdbc-user-service标签:注入基于JDBC的UserDetailsService实现,默认即JdbcUserDetailsManager。
group-authorities-by-username-query标签:覆盖默认用户组权限查询SQL。
authentication-provider标签:如果没有设置ref属性引用其他bean时,默认使用DaoAuthenticationProvider, DaoAuthenticationProvider会调用UserDetailsService接口获取用户信息,并在登录时验证用户密码。
三、后语
本文提供一个基本实现参考供下载。
Spring Security 学习之数据库认证相关文件下载:
具体下载目录在 /2014年资料/2月/28日/Spring Security 学习之数据库认证