仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1115|回复: 18
打印 上一主题 下一主题

[学习教程] 来看Acegi(七):LogoutFilter设置及几个成绩

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:32:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
这些天有点懒惰,想的也得抖擞一下吧.从最好简单的部分动手,如许想到Acegi.前段工夫的博客里写了acegi的最复杂设置,和环绕这些复杂设置的一点点源码层面的研究.而实践项目中的设置光这些是不敷的,好比说用户信息及权限另有体系的会见权限都是要放到数据库里的,如许在做用户登录与权限认证时就要hit数据库了,这方面的设置又如何呢?
不外这篇博客中盘算写与数据库扩大相干的话题,而是先从较为复杂的几个Filter开刀.
先看LogoutFilter.
设置很复杂.
1,先设置一个id为logoutFilter的Bean,以下所示:
<beanid="logoutFilter"      class="org.acegisecurity.ui.logout.LogoutFilter">
<constructor-argvalue="/login.jsp"/>
<constructor-arg>
<list>
<beanclass="org.acegisecurity.ui.logout.SecurityContextLogoutHandler"/>
</list>
</constructor-arg>
</bean>
2,把设置好的logoutFilter加到filterInvocationDefinitionSource中往,即改成"/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor".
3,在JSP中得当的地位加上<ahref="/myOwnAcegi/j_acegi_logout">加入</a>
几点申明,这个的设置很复杂的也几要说有:
1,<constructor-argvalue="/login.jsp"/>的感化,用来告知Acegi当体系加入后跳转到的链接.
2,LogoutFilter机关办法中的第二个参数的感化,告知Acegi体系加入后,都有哪些跟加入相干的action要做.
3,j_acegi_logout的链接,这个没甚么,跟登录时的"j_acegi_security_check"相似,都是Acegi自带的,年夜多情形下也没甚么需要修正.
从追着源码看了它的完成,没甚么特别的,不外有以下几个不太相干的成绩:
1,有无需要对这个加入独自设置一个会见时的filterChain,即另加一个"/j_acegi_logout=httpSessionContextIntegrationFilter,logoutFilter"?云云设置的起点是如许的,下面设置2种的会见链接在logoutFilter以后另有三个filter要经由过程,实行工夫上有些华侈了,经由过程如许设置后,当用户点"加入"时acegi处置完logoutFilter后就没甚么filter要处置了.
再者说,也不至于让每个哀求都经由过程一次logoutFilter,虽然说logoutFilter里有如许一个requiresLogout判别.
如许的设置里能不克不及不加httpSessionContextIntegrationFilter?为何要加呢?不是很分明.
后边看到"sendRedirect(httpRequest,httpResponse,logoutSuccessUrl);"如许的语句,本来Acegi经由过程它就能够让哀求链接跳转到
2,LogoutFilter的机关办法有两个参数,String范例的logoutSuccessUrl和LogoutHandler[]范例的handlers.第一个参数没啥可说的,第一个参数,人家要的范例是一个数组,而Spring里设置时是经由过程<list>标签来的,Spring外部是怎样转化的?这是个诳言题,先不再下钻了.

一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-21 09:51:13 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-25 10:16:41 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-2 11:25:01 | 只看该作者
是一种突破用户端机器环境和CPU
小魔女 该用户已被删除
5#
发表于 2015-2-6 15:43:44 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-6 17:22:54 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
因胸联盟 该用户已被删除
7#
发表于 2015-2-10 10:28:13 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
深爱那片海 该用户已被删除
8#
发表于 2015-2-20 14:19:57 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
蒙在股里 该用户已被删除
9#
发表于 2015-3-11 08:34:20 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
若相依 该用户已被删除
10#
发表于 2015-3-18 00:29:26 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
莫相离 该用户已被删除
11#
发表于 2015-3-25 08:31:53 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
不帅 该用户已被删除
12#
发表于 2015-4-2 06:07:33 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
飘飘悠悠 该用户已被删除
13#
发表于 2015-4-4 20:18:30 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
柔情似水 该用户已被删除
14#
发表于 2015-4-8 02:16:47 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
只想知道 该用户已被删除
15#
发表于 2015-4-16 08:07:53 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
活着的死人 该用户已被删除
16#
发表于 2015-4-21 04:33:19 | 只看该作者
是一种突破用户端机器环境和CPU
17#
发表于 2015-4-25 03:24:42 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
透明 该用户已被删除
18#
发表于 2015-4-27 23:30:07 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
爱飞 该用户已被删除
19#
发表于 2015-4-30 11:42:57 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 01:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表