看标题相信有些同学一定暗自在想,国际化啊,不就是那个i18n嘛,简单啊,查查Acegi的文档配置下就好了呀。再说Acegi又是基于Spring实现的,很方便的啊。
开始俺也是这么想的,老生常谈了,一个国际化有啥可怕,但是看过文档后配制就被误导了,文档上对此也是聊聊几句带过,但问题就严重了,因为被他误导所以使用了ReloadableResourceBundleMessageSource在Acegi中配置了下,但重启后发现,faint,一点效果也没有,这下郁闷了,于是尝试了无数中Spring配制一一无功而返。
只能上网看看有没有可怜的小盆友和我遇到一样的问题,终于在Spring的官方论坛上发现了个老外也遇到了这个问题,上面七嘴八舌,有人提到用Acegi的AcegiMessageSource代替ReloadableResourceBundleMessageSource配制,使用了Acegi的jar包中messages文件路径"org/acegisecurity/AcegiMessageSource"
配置后,果然有效,但此方式无法使用classpath标识相对路径,郁闷,翻出AcegiMessageSource类的源码,终于明白为何了,原来AcegiMessageSource继承的是Spring的ResourceBundleMessageSource,而ResourceBundleMessageSource不支持classpath,所以写了个LocaleAwareAcegiMessageSource来替代原有的类以支持classpath相对路径,至此问题解决。
以下是代码:
/**
*
* 类说明: 替代AcegiMessageSource实现Acegi的国际化,
* AcegiMessageSource所继承的是ResourceBundleMessageSource,无法使用classpath标识<br>
*
* 创建时间: 2009-11-16 下午03:39:31<br>
*
* @author Seraph<br>
* @email seraph115@gmail.com<br>
*
*/
public class LocaleAwareAcegiMessageSource extends
ReloadableResourceBundleMessageSource {
public LocaleAwareAcegiMessageSource() {
setBasename("org.acegisecurity.messages");
}
public static MessageSourceAccessor getAccessor() {
return new MessageSourceAccessor(new LocaleAwareAcegiMessageSource());
}
}
XML配制:
<bean id="messageSource" class="com.seraph.bi.suite.platform.business.login.LocaleAwareAcegiMessageSource">
<property name="basenames">
<list>
<value>classpath:/i18n/acegisecurity/messages</value>
</list>
</property>
</bean>
<bean id="daoAuthenticationProvider"
class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="jdbcDaoImpl" />
<property name="userCache" ref="userCache" />
<property name="passwordEncoder" ref="jitPasswordEncoder" />
<property name="messageSource" ref="messageSource" />
</bean>
对于为什么需要在DaoAuthenticationProvider中配制messageSource属性就不重复说明了,这个问题有很多博客中讨论过了。
总结一句话就是官方文档也不是完全可靠,实践才能验证一切,呵呵
分享到:
- 2009-11-16 17:02
- 浏览 2110
- 评论(0)
- 论坛回复 / 浏览 (0 / 3163)
- 查看更多
相关推荐
赠送jar包:spring-security-crypto-5.6.1.jar; 赠送原API文档:spring-security-crypto-5.6.1-javadoc.jar; 赠送源代码:spring-security-crypto-5.6.1-sources.jar; 赠送Maven依赖信息文件:spring-security-...
赠送jar包:spring-security-crypto-5.5.2.jar; 赠送原API文档:spring-security-crypto-5.5.2-javadoc.jar; 赠送源代码:spring-security-crypto-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-...
赠送jar包:spring-security-oauth2-2.3.5.RELEASE.jar; 赠送原API文档:spring-security-oauth2-2.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-2.3.5.RELEASE-sources.jar; 赠送Maven依赖信息...
赠送jar包:spring-security-core-5.3.9.RELEASE.jar; 赠送原API文档:spring-security-core-5.3.9.RELEASE-javadoc.jar; 赠送源代码:spring-security-core-5.3.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-core-5.2.0.RELEASE.jar; 赠送原API文档:spring-security-core-5.2.0.RELEASE-javadoc.jar; 赠送源代码:spring-security-core-5.2.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-jwt-1.0.10.RELEASE.jar; 赠送原API文档:spring-security-jwt-1.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-security-jwt-1.0.10.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-rsa-1.0.10.RELEASE.jar; 赠送原API文档:spring-security-rsa-1.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-security-rsa-1.0.10.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-core-5.5.2.jar; 赠送原API文档:spring-security-core-5.5.2-javadoc.jar; 赠送源代码:spring-security-core-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-core-...
赠送jar包:spring-security-core-5.0.7.RELEASE.jar; 赠送原API文档:spring-security-core-5.0.7.RELEASE-javadoc.jar; 赠送源代码:spring-security-core-5.0.7.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-oauth2-2.3.5.RELEASE.jar; 赠送原API文档:spring-security-oauth2-2.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-2.3.5.RELEASE-sources.jar; 赠送Maven依赖信息...
spring-boot-security-saml, Spring Security saml与 Spring Boot的集成 spring-boot-security-saml这个项目在处理 spring-security-saml 和 Spring Boot 之间的平滑集成的同时,在处理内部的配置的gritty和锅炉板的...
8. **spring-security-web-3.1.2.RELEASE.jar**:我们的主角,包含了处理Web安全的类和过滤器,如`FilterSecurityInterceptor`和`AbstractAuthenticationProcessingFilter`等。 9. **spring-tx-3.1.2.RELEASE.jar**...
赠送jar包:spring-security-web-5.6.1.jar; 赠送原API文档:spring-security-web-5.6.1-javadoc.jar; 赠送源代码:spring-security-web-5.6.1-sources.jar; 赠送Maven依赖信息文件:spring-security-web-5.6.1....
赠送jar包:spring-security-web-5.2.0.RELEASE.jar; 赠送原API文档:spring-security-web-5.2.0.RELEASE-javadoc.jar; 赠送源代码:spring-security-web-5.2.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-core-5.5.2.jar; 赠送原API文档:spring-security-core-5.5.2-javadoc.jar; 赠送源代码:spring-security-core-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-core-...
赠送jar包:spring-security-config-5.0.7.RELEASE.jar; 赠送原API文档:spring-security-config-5.0.7.RELEASE-javadoc.jar; 赠送源代码:spring-security-config-5.0.7.RELEASE-sources.jar; 赠送Maven依赖信息...
赠送jar包:spring-security-core-5.6.1.jar; 赠送原API文档:spring-security-core-5.6.1-javadoc.jar; 赠送源代码:spring-security-core-5.6.1-sources.jar; 赠送Maven依赖信息文件:spring-security-core-...
赠送jar包:spring-security-jwt-1.0.10.RELEASE.jar; 赠送原API文档:spring-security-jwt-1.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-security-jwt-1.0.10.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-oauth2-autoconfigure-2.1.8.RELEASE.jar; 赠送原API文档:spring-security-oauth2-autoconfigure-2.1.8.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-autoconfigure-...
赠送jar包:spring-security-core-5.6.1.jar; 赠送原API文档:spring-security-core-5.6.1-javadoc.jar; 赠送源代码:spring-security-core-5.6.1-sources.jar; 赠送Maven依赖信息文件:spring-security-core-...