- 浏览: 1001923 次
文章分类
最新评论
-
18335864773:
很多公司项目 都在使用pageoffice 来操作word,e ...
用java生成word文档 -
Gozs_cs_dn:
请问下博主, 怎样将sitemesh3.xsd绑定 sitem ...
SiteMesh3配置 -
Rose_06:
springside4.0quick-start.bat报错原因 -
ilemma:
我也是刚参见工作啊,经理让自学这个,有些东西不太懂,能不能发个 ...
Apache Shiro在Web中的应用 -
shanbangyou:
你废了
程序员上班打酱油的方法
springsecurity的URL过滤和全局过滤
最近有个需求,需要配置一个登陆用户才能访问项目的资源,也就是说要配置一个/*形式的链接,保护项目中所有的资源,要登录了的用户才能访问,
当然是要除开登陆页面之外。
springsecurity对URL过滤是采用的正则表达式,其实一直就在使用springsecurity,只是最近才引起重视。
参考文章:
http://www.family168.com/oa/springsecurity/html/ch215-url-matcher.html
我采用了AntUrlPathMatcher简单路径匹配,也不去弄RegexUrlPathMatcher这个正则这个东东,有个简单路径匹配应该也够了。三个原则:
通配符:? 匹配任意一个字符
通配符:* 匹配任意多个字符,但不能跨越目录
通配符:** 可以匹配任意多个字符,可以跨越目录
我这里只需要这样使用就行了。
匹配上我不拦截的:
<intercept-url pattern="/common/**" filters="none"/>
<intercept-url pattern="/images/**" filters="none"/>
<intercept-url pattern="/css/**" filters="none"/>
<intercept-url pattern="/js/**" filters="none"/>
<intercept-url pattern="/index.jsp" filters="none"/>
<intercept-url pattern="/login.action*" filters="none"/>
<intercept-url pattern="/" filters="none"/>
数据库里面增加一条我要拦截的:
String localAntPath8 = "/**";
List<ConfigAttribute> configList8 = new LinkedList<ConfigAttribute>();
configList8.add(new SecurityConfig("ROLE_ALL_LOGON"));
ConfigAttributeDefinition cad8 = new ConfigAttributeDefinition(configList8);
RequestKey requestKey8 = new RequestKey(localAntPath8);
OK了,可以保护/**下所有的资源,不登陆就没有的玩了,当然,还要保证的就是所有登陆用户都有ROLE_ALL_LOGON这个权限。
另外这次配置还了解到不少东东。
1./j_spring_security_logout和/j_spring_security_check是不在这拦截之列的。
2.mini-web项目的日志的级别,请在文件logback.xml中修改,我也是增加了如下一行,才能看到springsecurity的详细日志:
<logger name="org.springframework.security">
<level value="DEBUG" />
</logger>
3.配置匿名访问用户可以这样配置(虽然这次没有用上)
<intercept-url pattern="/common/**" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/images/**" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/css/**" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/js/**" access="ROLE_ANONYMOUS" />
4.在这里类里面org.springside.examples.miniweb.service.security.RequestMapFactoryBean的LinkedHashMap是要顺序输出的
所以,在权限里面添加的顺序是按照先入先拦截的几率去拦截的。
我的测试类:
public static void main(String[] args) {
Map<String, String> map1 = new LinkedHashMap<String, String>();
Map<String, String> map2 = new HashMap<String, String>();
for (int i = 0; i < 10; i++) {
map1.put(i + "", i + "");
}
for (int i = 0; i < 10; i++) {
map2.put(i + "", i + "");
}
System.out.println(map1.toString());
System.out.println(map2.toString());
}
打印出来是:
{0=0, 1=1, 2=2, 3=3, 4=4, 5=5, 6=6, 7=7, 8=8, 9=9}
{3=3, 5=5, 7=7, 2=2, 0=0, 9=9, 4=4, 8=8, 6=6, 1=1}
发表评论
-
SpringMVC使用@ResponseBody中文乱码
2012-03-31 11:45 3103Spring3.0 MVC @ResponseBody 的 ... -
spring mvc 3 上传文件
2012-03-30 16:31 1270spring mvc 支持web应用程序的文件上传功能,是由 ... -
解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题
2011-10-29 09:23 111651、问题复现 spring 3.0 + hiber ... -
基于Spring框架的Shiro配置
2011-10-26 15:39 3167一、在web.xml中添加shiro过滤器 < ... -
spring3 混合使用 XML 与注解(Annotation)进行 Bean 的配置
2011-10-21 17:34 3667设计 @Configuration 和 @Bean 的初衷,并 ... -
springMVC最佳实践-基于注解的Controller
2011-10-13 23:09 917在spring 2.5发布之后,基于注解的Controller ... -
springmvc3-hibernate-crud例子
2011-10-12 23:45 657http://java.dzone.com/articles/ ... -
ExtJS, Spring MVC 3 and Hibernate 3.5: CRUD例子
2011-10-12 23:45 1309http://loianegroner.com/2010/09 ... -
spring mvc3 annotation例子
2011-10-12 23:43 1893服务端数据到客户端1.返回页面,Controller中方法返回 ... -
Spring Web MVC框架学习笔记
2011-10-12 21:22 2241spring-framework-reference中文版摘录 ... -
Mastering Spring MVC 3中文版
2011-10-11 23:00 3211Mastering Spring MVC 3中文版 精通Sp ... -
基于Myeclipse9.1的spring3.1MVC开发搭建
2011-10-01 14:27 2014(1)配置基础装备。每个符合Java EE规范的web应用程 ... -
Spring Security 设置session
2011-04-02 15:26 3933使用SecurityContextHolder来偷窥登入帐号密 ... -
权限控制:spring 3.0 security配置例子
2011-03-31 15:21 1955我几年前自己写过一个 ... -
SpringSide 3 中的 Struts 2
2011-03-03 18:01 923在SpringSide 3 中,使用的MVC框架是Struts ... -
springside 中 报 org.hibernate.MappingException: Unknown entity: XXX
2011-03-03 17:25 1256org.hibernate.MappingException: ... -
springside 迁移sqlserver数据库报错
2011-03-02 16:55 826报错信息: java.lang.AbstractMethodE ... -
使用SpringSide 3.1.4.3开发Web项目的全过程(上)
2011-03-01 17:41 1154http://www.blogjava.net/youxia/ ... -
MultiActionController绑定command
2007-06-03 08:56 2553dlpower: 一般只见到用SimpleFormContro ... -
Error creating bean with name
2007-06-02 10:07 2584org.springframework.beans.fac ...
相关推荐
由于SpringSecurity的异常处理和mvc的异常处理是不一样的,认证类异常和权限异常了,并不会被全局异常捕获,而是SpringSecurity内部自己做了处理逻辑。 思路分析 我已经将本次请求的url添加到忽略名单里面了,起始...
Spring Security 是一个强大的且高度可定制的身份验证和访问控制框架,用于保护基于Java的应用程序。在"spring security demo2"项目中,我们很显然会深入探索如何在实际应用中配置和使用Spring Security来确保Web...
- **安全过滤器链**:Spring Security通过一系列过滤器来处理安全性相关的请求。 - **DelegatingFilterProxy**:代理过滤器,用于转发请求。 - **FilterChainProxy**:代理过滤器链,根据配置执行过滤器。 - **...
Spring Security 3.1 的核心组件包括:过滤器链、访问决策管理器、认证管理器、权限表达式处理和安全上下文。过滤器链是Spring Security的基础,它由多个拦截HTTP请求的过滤器组成,如`DelegatingFilterProxy`、`...
Spring Security 是一个强大的安全框架,用于Java和Java EE应用程序的安全管理。它提供了全面的身份验证、授权和服务保护功能。JWT(JSON Web Token)则是一种轻量级的、无状态的、安全的身份验证机制,广泛用于前后...
Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个"Spring Security2配置"的主题中,我们将深入探讨如何配置Spring Security来保护我们的应用程序,以及它的一些核心概念。 ...
Spring Security 是一个强大的Java...3. **过滤器链**:Spring Security 的工作流程主要通过一系列过滤器完成,如`DelegatingFilterProxy`指向Spring Security的FilterChainProxy,后者管理着所有安全相关的过滤器,如`...
这个压缩包文件"springsecurity"很可能包含了一个Spring Security的示例项目,让我们来深入探讨一下Spring Security的相关知识点。 1. **Spring Security架构**: Spring Security的核心组件包括过滤器链、安全性...
在基于数据库的权限管理配置中,Spring Security 允许我们存储、管理和验证用户的访问权限,这使得权限控制更加灵活和可扩展。下面将详细阐述如何进行Spring Security的数据库权限管理配置。 1. **配置数据源** 在...
- 配置SpringSecurity的核心过滤器链`http`元素,用于定义哪些URL需要进行安全控制,以及如何控制。 2. **认证机制**: - SpringSecurity提供多种认证方式,如HTTP Basic、Form Login、Remember Me等。在案例中,...
这个示例项目旨在提供一个基础的Spring Security配置和实现,帮助开发者理解如何在Spring MVC应用中集成和使用Spring Security进行用户认证与授权。 首先,Spring Security的核心功能包括: 1. **用户认证**:验证...
配置可能包括定义过滤器的拦截URL、指定其在过滤链中的位置以及配置相关的bean引用,例如验证码服务和存储。 5. **验证码服务**: 为了实现验证码,通常需要一个服务来生成随机的验证码并将其存储在服务器的某个...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护基于Java的应用程序。在这个"Spring_Security入门demo(maven项目)"中,我们将探讨如何搭建一个基本的Spring Security环境,理解其核心...
SpringSecurity3.0是Spring框架的一个重要扩展,主要用于企业级应用的安全管理,提供了一套全面的访问控制和安全解决方案。本教程将深入探讨SpringSecurity3.0的核心概念、配置及其实现方式,帮助开发者理解并掌握...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,用于保护基于Java的Web应用程序。它是Spring生态系统的组成部分,提供了全面的安全解决方案,包括登录、权限控制、会话管理、跨站请求伪造...
了解了这些核心概念后,你可以通过`springsecurity-sample`项目中的代码实践,进一步熟悉Spring Security的配置和使用。这个项目可能包含了一个简单的Spring Boot应用,其中已经集成了Spring Security,并提供了一些...
7. **异常处理**:Spring Security 会自动处理未授权(401)和未认证(403)的情况,但我们也可以自定义错误页面或者全局的异常处理器来增强用户体验。 8. **Remember Me 功能**:如果项目中需要实现“记住我”功能...
5. **异常处理**:Spring Security会自动处理未授权和未认证的异常,但你可以通过提供自定义的全局访问决策管理器(AccessDecisionManager)和异常转换器(AuthenticationEntryPoint)来自定义这些行为。 6. **用户...
- **添加依赖**: 首先需要在项目中引入Spring Security的依赖库,如`spring-security-config`和`spring-security-web`。 - **配置Spring Security XML**: 在Spring的配置文件中定义Spring Security的配置,包括...