1.网上常见的重写FilterInvocationDefinitionSource的做法
http://www.family168.com/oa/springsecurity/html/ch005-resource-db.html#d0e585
具体方法参照这里
http://www.iteye.com/topic/319965
此种方法存在一个问题:系统会在初始化时一次将所有资源加载到内存中,即使在数据库中修改了资源信息,系统也不会再次去从数据库中读取资源信息。这就造成了每次修改完数据库后,都需要重启系统才能时资源配置生效。
解决方案:如果数据库中的资源出现的变化,需要刷新内存中已加载的资源信息
2.SpringSide3新写了一个 FactoryBean,向默认的DefaultFilterInvocationDefinitionSource注入从 ResourceDetailService中返回的RequestMap.
springside中applicationContext-security.xml代码如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:s="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd"
default-autowire="byType" default-lazy-init="true">
<description>SpringSecurity安全配置</description>
<!-- http安全配置 -->
<s:http auto-config="true" access-decision-manager-ref="accessDecisionManager">
<s:form-login login-page="/login.action" default-target-url="/"
authentication-failure-url="/login.action?error=true" />
<s:logout logout-success-url="/" />
<s:remember-me key="e37f4b31-0c45-11dd-bd0b-0800200c9a66" />
</s:http>
<!-- 认证配置 -->
<s:authentication-provider user-service-ref="userDetailsService">
<!-- 可设置hash使用sha1或md5散列密码后再存入数据库 -->
<s:password-encoder hash="plaintext" />
</s:authentication-provider>
<!-- 项目实现的用户查询服务 -->
<bean id="userDetailsService" class="org.springside.examples.miniweb.service.security.UserDetailsServiceImpl" />
<!-- 重新定义的FilterSecurityInterceptor,使用databaseDefinitionSource提供的url-授权关系定义 -->
<bean id="filterSecurityInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<s:custom-filter before="FILTER_SECURITY_INTERCEPTOR" />
<property name="accessDecisionManager" ref="accessDecisionManager" />
<property name="objectDefinitionSource" ref="databaseDefinitionSource" />
</bean>
<!-- DefinitionSource工厂,使用resourceDetailsService提供的URL-授权关系. -->
<bean id="databaseDefinitionSource" class="org.springside.modules.security.springsecurity.DefinitionSourceFactoryBean">
<property name="resourceDetailsService" ref="resourceDetailsService" />
</bean>
<!-- 项目实现的URL-授权查询服务 -->
<bean id="resourceDetailsService" class="org.springside.examples.miniweb.service.security.ResourceDetailsServiceImpl" />
<!-- 授权判断配置, 将授权名称的默认前缀由ROLE_改为A_. -->
<bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased">
<property name="decisionVoters">
<list>
<bean class="org.springframework.security.vote.RoleVoter">
<property name="rolePrefix" value="A_" />
</bean>
<bean class="org.springframework.security.vote.AuthenticatedVoter" />
</list>
</property>
</bean>
</beans>
springside具体代码参照这里
http://www.springside.org.cn/
分享到:
相关推荐
NULL 博文链接:https://zengguo1988.iteye.com/blog/704627
Spring Security 基于数据库的权限管理配置
spring-security使用数据库用户认证
Spring Security 把授权信息写入数据库
NULL 博文链接:https://ynp.iteye.com/blog/1008178
用STS(Spring Tool Suite)开发的,spring mvc + spring security 实现的最简单的登录系统,无数据库。
项目自身的权限信息结合spring security 框架的实现。 本DEMO只包括从数据库读取登录认证信息,认证通过后 从数据库读取授权信息来控制用户的访问....本DEMO使用了spring security, hibernate jpa 以及struts.
spring security3案例,基于数据库存储角色权限资源信息,支持记住我、session并发控制、AJAX调用。
此源码实现了spring security对数据库的扩,里面含有jar包,将sql脚本导入mysql,就可以运行起来
5、使用数据库管理资源 6、控制用户信息 MD5加密 获取当前用户信息 7、自定义访问拒绝页面 8、动态管理资源结合自定义登录页面 9、 Spring Security 与 CAS整合 配置JA-SIG 配置Spring Security 为CAS配置SSL ...
Spring Security 3连接数据库查询实例
此资源是对spring security使用数据库存储资源、角色、用户信息来保护http资源的实现的具体实现。可以参阅下文。 http://blog.csdn.net/shierqu/article/details/48803555 ...
spring boot 使用 Security Json 数据库登录验证 前后端分离权限
来自于狂神Spring Security
spring security 使用及配置
Spring Security 演讲PPT(演讲嘉宾:张明星) WebSphere技术专家沙龙在广州圆满举办,WSC超级版主Fastzch(张明星)担任本次沙龙的演讲嘉宾,他给广州的WebSphere技术专家带来了以“Spring Security ”为主题的...
Spring Security三份资料,实战Spring Security 3.x.pdf;Spring Security 3.pdf;Spring Security使用手册.pdf
在开源的SpringSide上作权限控制的demo,附带数据库。分层清晰,设计合理,系统松散耦合。结合业界流行的安全框架精心设计开发。
(1)该项目是基于spring3+struts2+hibernate3+spring security3的权限管理项目 (2)后台我已经实现了权限管理,包括用户,角色和资源的分配。前台实现了spring security3的管理 (3)网上案例普遍是后台单一登陆。...
springMVC+springSecurity3+Mybaits3的权限系统 包括用户管理 角色管理 资源管理 服务器配置管理 登陆信息管理 操作日志管理 服务器监控配置 fusioncharts报表插件显示 EMALL发送(支持html语言) springQuartz...