<?xml version="1.0" encoding="UTF-8" ?>
- <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" 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">
- <http access-denied-page="/403.jsp" auto-config="true">
<intercept-url pattern="/resources/images/**" filters="none" />
<intercept-url pattern="/resources/js/**" filters="none" />
<intercept-url pattern="/resources/css/**" filters="none" />
<intercept-url pattern="/resources/style/**" filters="none" />
<intercept-url pattern="/resources/flash/**" filters="none" />
<intercept-url pattern="/messagebroker/**" filters="none" />
<intercept-url pattern="/commons/**" filters="none" />
<intercept-url pattern="/login.jsp" filters="none" />
<intercept-url pattern="/index.jsp" filters="none" />
<intercept-url pattern="/servlet/jugServlet" filters="none" />
<intercept-url pattern="/security/user!userLogin.do" filters="none" />
<intercept-url pattern="/config/sysconfig!**" filters="none" />
<intercept-url pattern="/install_flash_player_10_active_x.exe" filters="none" />
<intercept-url pattern="/resources/PubwinKey.cab" filters="none" />
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" default-target-url="/view/module/mainframe.jsp" always-use-default-target="true" />
<logout logout-url="/j_spring_security_logout" logout-success-url="/login.jsp" invalidate-session="true" />
<http-basic />
</http>
- <!-- 获取用户权限信息
-->
- <authentication-provider user-service-ref="userDetailsPoliceService">
<password-encoder ref="userPasswordEncoder" />
</authentication-provider>
- <!-- 资源的控制
-->
- <beans:bean id="resourceSecurityInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<beans:property name="authenticationManager" ref="authenticationManager" />
<beans:property name="accessDecisionManager" ref="accessDecisionManager" />
- <!-- 指定你的过滤器应该出现的位置
-->
<custom-filter before="FILTER_SECURITY_INTERCEPTOR" />
<beans:property name="objectDefinitionSource" ref="secureResourceFilter" />
- <!-- 在第一次进行过安全检查之后就不会再做了
-->
<beans:property name="observeOncePerRequest" value="false" />
</beans:bean>
<beans:bean id="loggerListener" class="org.springframework.security.event.authentication.LoggerListener" />
<authentication-manager alias="authenticationManager" />
- <beans:bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased">
<beans:property name="allowIfAllAbstainDecisions" value="false" />
- <beans:property name="decisionVoters">
- <beans:list>
<beans:bean class="org.springframework.security.vote.RoleVoter" />
<beans:bean class="org.springframework.security.vote.AuthenticatedVoter" />
</beans:list>
</beans:property>
</beans:bean>
</beans:beans>
import java.util.Collection;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.ConfigAttributeDefinition;
import org.springframework.security.intercept.web.FilterInvocation;
import org.springframework.security.intercept.web.FilterInvocationDefinitionSource;
import org.springframework.stereotype.Service;
/**
*
* @author tangj
*/
@Service
public class SecureResourceFilter implements FilterInvocationDefinitionSource {
@Override
public ConfigAttributeDefinition getAttributes(Object filter) throws IllegalArgumentException {
FilterInvocation filterInvocation = (FilterInvocation) filter;
// System.out.println(filterInvocation.getHttpRequest().getRemoteAddr());
UserInfo user=this.userService.getSessionUserInfo();
if(user!=null){
user.getEntity().setIpAddress(filterInvocation.getHttpRequest().getRemoteAddr());
}
// Map<String, String> urlAuthorities = userDetails.getUrlMenuNameResources();
// FilterInvocation filterInvocation = (FilterInvocation) filter;
// String requestURL = filterInvocation.getRequestUrl();
// String requestURlIndex = requestURL.split("\\?")[0];
// if (logger.isDebugEnabled()) {
// logger.debug("requestURL::::" + requestURL);
// logger.debug("requestURlIndex::::" + requestURlIndex);
// }
// if (requestURlIndex.indexOf("!") > 0) {
// if (urlAuthorities.get(requestURlIndex) != null) {
// } else {
// // throw new
// // AccessDeniedException("User has no AccessDeniedException:" +
// // requestURL);
// }
// } else {
// }
return null;
}
@Override
public Collection getConfigAttributeDefinitions() {
return null;
}
@Override
public boolean supports(Class clazz) {
return true;
}
}
分享到:
相关推荐
1. **配置初始化**:在Spring Security 2中,我们需要创建一个配置类,继承自`org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter`。在这个类中,我们可以通过覆盖`...
Spring Security 2 配置精讲
`ca.html`和`springsecurity.html`的详细内容没有明确的描述,但根据常规,它们可能涉及证书权威(CA)和Spring Security的其他核心概念,比如自定义安全逻辑或者框架的高级特性。 总的来说,Spring Security 2 的...
标题与描述均提到了“Spring Security 2 配置说明”,这表明文章旨在阐述Spring Security 2版本的配置细节,尤其是对于那些希望深入了解并正确应用该框架的安全特性开发者们。以下将基于给定的部分内容,深入解析...
**Spring Security 2 中文参考文档** Spring Security是一款强大的安全框架,主要用于Java应用程序的安全管理。在Spring Security 2版本中,它提供了丰富的功能,包括身份验证、授权、访问控制以及安全相关的会话...
这里包括Spring Security2的中文文档和一个基于Dao的开发实例,相信不管是对原来基于Acegi安全框架的开发人员还是现在基于Spring安全框架(Spring Security2实际上是Acegi2)的开发人员都有参考价值.
详细的spring security2.x配置
在这个"spring security2 例子"中,我们可能会探索如何利用Spring Security 2版本来保护我们的应用程序。Spring Security 2虽然已经较为老旧(最新的版本是5.x),但它仍能帮助我们理解基本的安全概念和架构。 首先...
在Spring Security 2中,配置Cookie的保存时间是一项重要的任务,因为这关乎到用户的会话持久性和安全性。Cookie是Web应用程序中用于存储用户状态的一种机制,例如登录信息、个性化设置等。正确设置Cookie的生命周期...
在 "springsecurity2x.pdf" 中,主要讨论的是Spring Security 2.x版本的相关内容。 1. **Spring Security简介** - **什么是Spring Security?** 它是一个全面的安全框架,提供了认证(Authentication)和授权...
随着Spring Security 2.x的发布,它提供了一种更为简洁且高效的方式来进行Web应用的安全管理。快速启动Spring Security 2.x,主要分为三个步骤: 1. **添加过滤器**: 在`web.xml`中加入`DelegatingFilterProxy`,...
### 使用Spring Security 2进行安全控制 #### 演讲者资格 - **迈克·韦斯纳(Mike Wiesner)**: - 春源德国(SpringSource Germany)高级顾问; - 专注于应用安全性和单点登录(SSO); - 在软件设计方面有...
自己在网络上看到并整理成CHM版本的。 原地址:http://www.family168.com/tutorial/springsecurity/html/springsecurity.html
Spring Security 2 是一个历史悠久的安全框架,主要用于Java Web应用程序的安全管理。尽管现在Spring Security已经更新到了5.x版本,但理解2.x版本的基础可以帮助我们更好地掌握整个框架的核心概念。本篇文章将深入...
springsecurity1.2 引入SpringSecurity 2. 认证 2.1 登陆校验流程 2.2 原理初探 2.2.1 SpringSecurity完整流程 2.2.2 认证流程详解 2.3 解决问题 2.3.1 思路分析 2.3.2 准备工作 2.3.3 实现 2.3.3.1 数据库校验用户 ...