- 浏览: 966402 次
文章分类
最新评论
-
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 3067Spring3.0 MVC @ResponseBody 的 ... -
spring mvc 3 上传文件
2012-03-30 16:31 1237spring mvc 支持web应用程序的文件上传功能,是由 ... -
解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题
2011-10-29 09:23 111211、问题复现 spring 3.0 + hiber ... -
基于Spring框架的Shiro配置
2011-10-26 15:39 3111一、在web.xml中添加shiro过滤器 < ... -
spring3 混合使用 XML 与注解(Annotation)进行 Bean 的配置
2011-10-21 17:34 3632设计 @Configuration 和 @Bean 的初衷,并 ... -
springMVC最佳实践-基于注解的Controller
2011-10-13 23:09 891在spring 2.5发布之后,基于注解的Controller ... -
springmvc3-hibernate-crud例子
2011-10-12 23:45 623http://java.dzone.com/articles/ ... -
ExtJS, Spring MVC 3 and Hibernate 3.5: CRUD例子
2011-10-12 23:45 1277http://loianegroner.com/2010/09 ... -
spring mvc3 annotation例子
2011-10-12 23:43 1837服务端数据到客户端1.返回页面,Controller中方法返回 ... -
Spring Web MVC框架学习笔记
2011-10-12 21:22 2195spring-framework-reference中文版摘录 ... -
Mastering Spring MVC 3中文版
2011-10-11 23:00 3168Mastering Spring MVC 3中文版 精通Sp ... -
基于Myeclipse9.1的spring3.1MVC开发搭建
2011-10-01 14:27 1990(1)配置基础装备。每个符合Java EE规范的web应用程 ... -
Spring Security 设置session
2011-04-02 15:26 3878使用SecurityContextHolder来偷窥登入帐号密 ... -
权限控制:spring 3.0 security配置例子
2011-03-31 15:21 1887我几年前自己写过一个 ... -
SpringSide 3 中的 Struts 2
2011-03-03 18:01 870在SpringSide 3 中,使用的MVC框架是Struts ... -
springside 中 报 org.hibernate.MappingException: Unknown entity: XXX
2011-03-03 17:25 1215org.hibernate.MappingException: ... -
springside 迁移sqlserver数据库报错
2011-03-02 16:55 796报错信息: java.lang.AbstractMethodE ... -
使用SpringSide 3.1.4.3开发Web项目的全过程(上)
2011-03-01 17:41 1092http://www.blogjava.net/youxia/ ... -
MultiActionController绑定command
2007-06-03 08:56 2516dlpower: 一般只见到用SimpleFormContro ... -
Error creating bean with name
2007-06-02 10:07 2539org.springframework.beans.fac ...
相关推荐
spring security 4 小例子带自定义过滤器
springsecurity是一个功能强大且高度可定制的身份验证和访问控制框架。springsecurity是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring安全性的真正威力在于它可以很容易地扩展以...
主要介绍了Spring Security如何使用URL地址进行权限控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
前者是将配置文件或数据库中存储的资源(url)提取出来加工成为url和权限列表的Map供Security使用,后者提取用户名和权限组成一个完整的(UserDetails)User对象,该对象可以提供用户的详细信息供AuthentationManager...
Spring Security三份资料,实战Spring Security 3.x.pdf;Spring Security 3.pdf;Spring Security使用手册.pdf
Spring Security 演讲PPT(演讲嘉宾:张明星) WebSphere技术专家沙龙在广州圆满举办,WSC超级版主Fastzch(张明星)担任本次沙龙的演讲嘉宾,他给广州的WebSphere技术专家带来了以“Spring Security ”为主题的...
spring security spring security 中文文档
SpringSecurity框架的权限认证流程原理,请求到来时SpringSecurity如果调用层层过滤器来完成认证;
Spring Security in Action
ssecurity项目是Spring Security实战(一和二)的源码; ssecurity-db项目是Spring Security实战(三)的源码; ssceurity-page项目是Spring Security实战(四)的源码; ssecurity-pageClass项目是Spring Security...
spring security3.1.3 和 spring security3.0.0两个版本的源码以及jar 在dist文件夹里有jar文件,按自己项目需求选择
Spring security认证授权例子,自动创建数据库,在SysUser类增加字段,即可动态增加数据库对应表sys_user字段(前提是要删除原表,启动应用时才会重建表)
三更springsecurity学习笔记
Spring Security 3.pdf Spring Security 3.pdf Spring Security 3.pdf Spring Security 3.pdf
SpringSecurity学习总结源代码
spring security2.5 jar 和spring security2.5 整合必须的jar包
spring security3 中文版本
Spring Security。 官网 Spring Security API(Spring Security 开发文档).CHM
SpringSecurity入门到进阶到高级,是我们老师给我们讲课用的,我们都照着配就没有问题,可以跑通,
例子讲解可以参看博客:blog.csdn.net/dsundsun