package com.sz5g;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.object.MappingSqlQuery;
import org.springframework.security.ConfigAttributeDefinition;
import org.springframework.security.ConfigAttributeEditor;
import org.springframework.security.intercept.web.DefaultFilterInvocationDefinitionSource;
import org.springframework.security.intercept.web.FilterInvocationDefinitionSource;
import org.springframework.security.intercept.web.RequestKey;
import org.springframework.security.util.AntUrlPathMatcher;
import org.springframework.security.util.UrlMatcher;
public class JdbcFilterInvocationDefinitionSourceFactoryBean
extends JdbcDaoSupport implements FactoryBean {
private String resourceQuery;
public boolean isSingleton() {
return true;
}
public Class getObjectType() {
return FilterInvocationDefinitionSource.class;
}
public Object getObject() {
return new DefaultFilterInvocationDefinitionSource(this
.getUrlMatcher(), this.buildRequestMap());
}
protected List<Resource> findResources() {
ResourceMapping resourceMapping = new ResourceMapping(getDataSource(),
resourceQuery);
return resourceMapping.execute();
}
protected LinkedHashMap<RequestKey, ConfigAttributeDefinition> buildRequestMap() {
LinkedHashMap<RequestKey, ConfigAttributeDefinition> requestMap = null;
requestMap = new LinkedHashMap<RequestKey, ConfigAttributeDefinition>();
ConfigAttributeEditor editor = new ConfigAttributeEditor();
List<Resource> resourceList = this.findResources();
for (Resource resource : resourceList) {
RequestKey key = new RequestKey(resource.getUrl(), null);
editor.setAsText(resource.getRole());
requestMap.put(key,
(ConfigAttributeDefinition) editor.getValue());
}
return requestMap;
}
protected UrlMatcher getUrlMatcher() {
return new AntUrlPathMatcher();
}
public void setResourceQuery(String resourceQuery) {
this.resourceQuery = resourceQuery;
}
private class Resource {
private String url;
private String role;
public Resource(String url, String role) {
this.url = url;
this.role = role;
}
public String getUrl() {
return url;
}
public String getRole() {
return role;
}
}
private class ResourceMapping extends MappingSqlQuery {
protected ResourceMapping(DataSource dataSource,
String resourceQuery) {
super(dataSource, resourceQuery);
compile();
}
protected Object mapRow(ResultSet rs, int rownum)
throws SQLException {
String url = rs.getString(1);
String role = rs.getString(2);
System.out.println(url+" "+role);
Resource resource = new Resource(url, role);
return resource;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring security用数据库的示例
共49个文件
jar:27个
jsp:4个
class:3个
3星 · 超过75%的资源 需积分: 9 41 下载量 82 浏览量
2010-01-05
16:33:45
上传
评论
收藏 5.03MB RAR 举报
温馨提示
此源码实现了spring security对数据库的扩,里面含有jar包,将sql脚本导入mysql,就可以运行起来
资源推荐
资源详情
资源评论
收起资源包目录
.rar (49个子文件)
test.sql 4KB
test2
.project 1KB
.settings
.jsdtscope 406B
com.genuitec.eclipse.ws.prefs 109B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
.mymetadata 288B
WebRoot
login.jsp 1KB
refreshResources.jsp 890B
WEB-INF
web.xml 1KB
lib
standard-1.1.2.jar 384KB
spring-web-2.0.8.jar 149KB
spring-core-2.0.8.jar 178KB
spring-dao-2.0.8.jar 127KB
commons-collections-3.2.jar 558KB
commons-configuration-2.1.jar 121KB
commons-beanutils.jar 116KB
spring-context-2.0.8.jar 157KB
log4j-1.2.14.jar 359KB
spring-security-acl-2.0.4.jar 68KB
commons-dbcp-1.2.1.jar 105KB
spring-security-core-tiger-2.0.4.jar 8KB
spring-beans-2.0.8.jar 381KB
spring-jdbc-2.0.8.jar 222KB
spring-support-2.0.8.jar 114KB
aspectjrt-1.5.4.jar 112KB
commons-codec-1.3.jar 46KB
jstl-1.1.2.jar 20KB
spring-aop-2.0.8.jar 301KB
spring-webmvc-2.0.8.jar 279KB
commons-pool-1.2.jar 41KB
aopalliance-1.0.jar 4KB
commons-collections-4.1.jar 546KB
spring-security-core-2.0.4.jar 755KB
commons-logging-1.1.1.jar 59KB
spring-security-taglibs-2.0.4.jar 19KB
mysql-connector-java-5[1].1.2-beta-bin.jar 622KB
classes
log4j.properties 2KB
com
sz5g
JdbcFilterInvocationDefinitionSourceFactoryBean$ResourceMapping.class 2KB
JdbcFilterInvocationDefinitionSourceFactoryBean$Resource.class 975B
JdbcFilterInvocationDefinitionSourceFactoryBean.class 4KB
applicationContext.xml 3KB
index.jsp 228B
admin.jsp 11B
META-INF
MANIFEST.MF 39B
.myeclipse
src
log4j.properties 2KB
com
sz5g
JdbcFilterInvocationDefinitionSourceFactoryBean.java 3KB
applicationContext.xml 3KB
.classpath 3KB
共 49 条
- 1
资源评论
- g2449927222014-04-20select * from t_pub_role where deleted =0 order by role_id
gufenglian
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功