sec安全验证标签_第1页
sec安全验证标签_第2页
sec安全验证标签_第3页
sec安全验证标签_第4页
sec安全验证标签_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. ?:完善web页面验证规则2.i ntercept-urlpattern=/js/*3.i ntercept-urlpattern=/css/*4.i ntercept-urlpatter n=/images/*5.i ntercept-urlpattern=/a.jsp6.i ntercept-urlpatter n=/b.jsp7.2. Java代码filters=non e/ filters= non e/filters= non e/ access=ROLE_A / access=ROLE_B / access=ROLE_A, ROLE_B /8. intercept-url9.

2、 pattern=/* access=ROLE_USER /1. Java代码隘范1. 1. ? 6:自定义验证配置2. Java代码1. 2. vform-login login-page=/login.jspdefault-target-url=/index.jspauthe nticati on-failure-url=/logi n.jsp/3. 4. 5. 6. vremember-me data-source-ref=dataSource /7. 8. vlogoutinvalidate-session=truelogout-success-url=/login.jsp /9. 1

3、0. sessi on-man ageme ntinv alid-sessio n-url=/sessio nTimeout.htm11. 12. 13. 14. 可 以使用SS自带的登陆页面作为login.jsp 的模板1. Java代码1. vhttpauto-config=truevform-logi nlog in-page=/logi n.jspdefault-target-url=/i ndex.jspauthe nticati on-failure-url=/logi n.jsp/vaccess-de ni ed-ha ndlererror-page=/accessDe nied

4、.jsp/ vremember-me data-source-ref=dataSource / vlogout inv alidate-sessi on=truelogout-success-url=/log in .jsp/ vsessi on-man ageme nt inv alid-sessi on-url=/session Timeout.htm v/sessi on-man agement v/http 可以使用SS自带的登陆页面作为log in .jsp的模板1. ? 7:本地化消息输出拷贝本地化资源文件后,在配置文件中加载该文件:2. Java代码1. v!- 加载错误信息资源

5、文件-2. vbeans:bean id=messageSource3. class=org.springframework.context.support.ReloadableResourceBun dleMessageSource4. vbeans:propertyname=basename value=classpath:messages/5. v/beans:bean6. 资 源文件在 SS核心包:spring-security-core-3.0.2.RELEASE.jar 的orgspringframeworksecurity 目录中1. Java 代码 _1. v!-加载错误信息资

6、源文件- vbea ns:bea n id=messageSource class=org.sp rin gframework.c on text.support.ReloadableResourceB un dleMes sageSource vbeans:propertyname=basename value=classpath:messages/ v/beans:bean 资源文件在 SS核心包: spring-security-core- 3.0.2.RELEASE.jar 的 orgspri ngframeworksecurity 目录中1. ? &在web页面中获取用户信息2. J

7、ava代码1. 方式一:Java代码2. Authentication auth = SecurityContextHolder.getContext().get Authe nticati on();3. CollectionvGrantedAuthority col = auth.getAuthorities();4. 方式二:标签库5. 6. 7. 1. Java代码O奇t1. 方式一:Java代码 Authe nticati onauth = SecurityC on textHolder.getC ontext().getAuthe nticatio n();Collect ion

8、col = auth.getAuthorities();方式二:标签库 1. ? 9:在web页面进行元素安全控制2. Java代码1. 方式一2. 3. 你可以访问 a.jsp4. 5. 6. 你不可以访问a.jsp7. 8. 方式二9. 10. 你可以访问 a.jsp11. 1. Java代码丿佥t1.方式一 你可以访问一a.jspv/a ROLE_A你不可以访问a.jsp 二 sec:authorizeifNotGra nted= 方式 你可以访问 a.jsp 1. ? 10:全局方法安全控制2. Java代码1. vglobal-method-securitypre-post-anno

9、tations=enabled2. vprotect-pointcutexpression=execution(*com.xasxt.*Service.add*(.) access=ROLE_A/3. vprotect-pointcutexpression=execution(*com.xasxt.*Service.delete*(.) access=ROLE_B/4. 5. 此 处使用了 AspectJ中常用的切入点表达式(百度:AspectJ execution )1. Java 代码 ITj 奇t1. vglobal-method-securitypre-post-annotations

10、=enabledvprotect-po in tcutexpressi on=executi on(*com.xasxt.*Service.add*(.) access=ROLE_A/ vprotect-poi ntcut expressi on=executi on(* com.xasxt.*Service.delete*(.)access=ROLE_B/ 此处使 用了 AspectJ中常用的切入点表达式(百度:AspectJexecution )1. ? 11:使用注解进行方法安全控制2. Java代码1. publicclass DemoService 2. PreAuthorize (

11、hasRole('ROLE_A')3. publicvoidmethodA() 4. 5. PreAuthorize (hasAnyRole('ROLE_A,ROLE_B')6. public void methodB() 7. 8. 9. hasRole与hasAnyRole为SS通用内置表达式(google : spri ngsecurity Com mon Built-ln Expressions)1. Spring Security11 个步骤为应用程序添加安全防护2. 历史与现状自 2003 年出现的 Spring 扩展插件 Acegi Sec

12、urity 发展而来。 目前最新 版本为 3.x ,已成为 Spring 的一部分。为 J2EE 企业应用程序提供可靠的安全性服务。3. Authentication vs. Authorization 区分概念验证与授权 验证 这 个用户是谁? 用户身份可靠吗? 授权 某用户 A 是否可以访问资源 R 某用户A是否可以执行M操作 某用户A是否可以对资 源R执行M操作4. SS中的验证特点 支持多种验证方式 支持多种加密格式 支持组件的扩展和替换 可以本地化 输出信息5. SS中的授权特点 支持多种仲裁方式 支持组件的扩展和替换 支持对页面访问、方法访问、对象访问 的授权。6. SS核心安全实

13、现Web安全通过配置Servlet Filter 激活SS中的过滤器链实现 Session 一致性验证 实现免登陆验证(Remember-M验证) 提供一系列标签库进行页面元素的安全控制 方法安全通过AOP莫式实现安全代理Web安全与方法安全均可以使用表达式语言定义访问规则7. 配置 SS配置Web.xm,应用安全过滤器 配置 Spring ,验证与授权部分 在web页面中获取用户身份在 web 页面中应用安全标签库 实现方法级安全8. 1:配置 web.xmlJava 代码1. 2. springSecurityFilterChain3. org.springframework.web.fi

14、lter.DelegatingFi lterProxy4. 5. 6. springSecurityFilterChain7. /*8. 9. 10. contextConfigLocation11. classpath:spring.xml12. 13. 14. 15.org.springframework.web.context.ContextLoaderListener16. 17. 9. 2: Spring 配置文件中设置命名空间Java 代码1. 2. 8. 10. 3:配置最基本的验证与授权Java 代码1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 11.

15、4:通过数据库验证用户身份Java 代码1. 2. 3. 4. 5. 6. 7. 数 据表结构见SS说明手册附录A12.5 :完善web页面验证规则Java 代码.5.6.7.pattern=/c.jspaccess=ROLE_A, ROLE_B8. /9.13.6:自定义验证配置Java 代码1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 可 以使用SS自带的登陆页面作为login.jsp 的模板1 4. 7:本地化消息输出 拷贝本地化资源文件后,在配置文件中加载该文件:Java 代码1. 2. 4. 5. 6. 资源 文 件 在

16、SS 核 心 包 :spring-security-core-3.0.2.RELEASE.jar的orgspringframeworksecurity 目录 中15.8:在web页面中获取用户信息Java 代码1. 方式 一: Java 代码2. Authentication auth = SecurityContextHolder.getContext ().getAuthentication();3. Collection col = auth.getAuthorities ();4. 方 式二:标签库5. 6. 7. 16. 9:在 web 页面进行元素安全控制Java 代码1. 方式一

17、2. 3. 你可以访问 a.jsp4. 5. 6. 你 不可以访问 a.jsp7. 8. 方 式二9. 10. 你可以访问 a.jsp11. 17. 10:全局方法安全控制Java 代码1. 2. protect-pointcut rvice.add*(.)3. expression=execution(*access=ROLE_B/ 4. 5. 此 处使用了 AspectJ 中常用的切入点 表达式(百度: AspectJ execution )18. 11:使用注解进行方法安全控制Java 代码1. public class DemoService 2. PreAuthorize(hasRole('RO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论