AcegiSecurity学习记录(一)
来源:互联网 发布:qq飞车剃刀改了数据吗 编辑:程序博客网 时间:2024/05/07 15:34
org.acegisecurity.context.HttpSessionContextIntegrationFilter
使用从 HttpSession中取出的信息组装SecurityContextHolder对象。SecurityContextHolder负责与当前执行线程提供的SecurityContext对象结合。SecurityContext定义了与当前执行线程关联的最小的安全信息。HttpSession将被问询以取出在请求期间将被保存在SecurityContextHolder中的SecurityContext对象。当请求处理结束,所有的对SecurityContextHolder的更新将被存回HttpSession中。
如果从HttpSession中无法得到一个正确的SecurityContext对象,那么一个新的SecurityContext对象将被创建。被创建的对象将是setContext(Class)方法设定的类的一个实例。默认创建的对象将是SecurityContextImpl。
如果HttpSession并不存在,那么HttpSession不会被创建。除非当前的SecurityContextHolder持有的对象不是由setContext(Class)方法指定的新实例。这样做避免了不必要的HttpSession的创建,却可以自动保存SecurityContextHolder的改变。这个规则有一个例外,即如果forceEagerSessionCreation属性为true,那么HttpSession间总是被创建而忽视最小化会话的逻辑。由于这样做会大量消耗资源,因此不被推荐。
对每个请求此过滤器仅执行一次。如果无论何时以何种理由,都不需要创建HttpSession,那么setAllowSessionCreation属性应设定为false。只有你确定需要保证服务器端内存,且所还有的使用SecurityContextHolder的类不需要在两次请求间维持SecurityContext时才能这样做。记住,如果forceEagerSessionCreation为true,则allowSessionCreation也必须为true。否则,将在启动时报错。
此过滤器必须在所有的认证处理机制前执行。认证处理机制在执行时需要SecurityContextHolder包含一个正确的SecurityContext对象。
- AcegiSecurity学习记录(一)
- AcegiSecurity学习记录(二)
- AcegiSecurity学习记录(三)
- AcegiSecurity学习记录(四)
- 学习记录(一)
- 学习记录(一)
- 学习记录(一)
- DB2学习记录(一)
- DB2学习记录(一)
- delphi学习记录(一)
- gdb学习记录(一)
- BroadCastReceiver 学习记录(一)
- JS学习记录(一)
- Android学习记录(一)
- perl学习记录(一)
- Scala学习记录(一)
- XML学习记录(一)
- MFC学习记录(一)
- 折腾:如何让你的老电脑快起来
- 支持中文的验证码生成程序.
- WPF WCF ChatRoom 完结编
- 女孩,当你说没有好男人时请看看
- 了解编程的心理
- AcegiSecurity学习记录(一)
- ArrayList的小小例子
- 举国哀悼日网站变灰简单方法
- 类和数据抽象(一.2)
- AcegiSecurity学习记录(二)
- 为什么喝酒有的人会脸红,有的人会脸发白?
- 访问IIS元数据库失败
- CRT Initialization
- We Can't forget that day