答案:
新工作节奏较快,所以不太更新blog了。最近编写了iBaits code conventions以及junit best practice,很高兴团体可以按照敏捷和tdd的路子进步下去。有需要这两个东东的朋友可以发邮向我要。
acegi出了0.8,改动还真不少,原先0.7的应用,改了一个多小时才完全升级成功。备忘一下:
1 最贴心的改变莫过于 filter chains可以放在spring 容器中加载了,再也不用在web.xml中声明长长的一串filter了。例如:
<bean id="filterChainProxy" class="net.sf.acegisecurity.util.FilterChainProxy"> <property name="filterInvocationDefinitionSource"> <value> CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT /**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,...... </value> </property> </bean>
2 HttpSessionIntegrationFilter 已经消失,使用net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter取而代之,如: <bean id="httpSessionContextIntegrationFilter" class="net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter"> <property name="context"><value>net.sf.acegisecurity.context.security.SecureContextImpl</value></property> </bean>
这个"context"属性不可不设哟。
3 新增了一个功能,可以在web.xml中声明一个HttpSessionEventPublisher context listener,想想Spring的现在还不很成熟的消息发布机制(AOP),主要是用来记日志。我暂时还没用到这个功能。
结论:acegi很强,不过也很烦,这一次0.1的升级就让我折腾了一个多小时,哎。
上一个:JDOM 介绍及使用指南
下一个:使用Hibernate 和 Spring 实现一个事务持久层