Spring Security + i18n =如何使其协同工作?

Spring Security + i18n =如何使其协同工作?,第1张

Spring Security + i18n =如何使其协同工作?
  1. 发送请求xxxxx?locale = en后,它将创建不带“国家/地区”属性的语言环境(仅设置语言)。

这是预期的行为。在Java中,存在某种层次结构。语言比国家更通用。

背后的想法是,例如,您可以使用更通用的语言显示文本,但可以在特定于国家/地区的文件中包含某些单位(例如货币)。

@see:http :
//java.sun.com/developer/technicalArticles/Intl/IntlIntro/


  1. 更严重的问题是它不起作用…

它应该无需任何手工实现即可工作!

您需要注册本地更改拦截器,并需要为登录页面设置permitAll。

<mvc:interceptors>   <bean  p:paramName="lang"/></mvc:interceptors><http auto-config="true" use-expressions="true">    <form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t"/>    <logout logout-url="/resources/j_spring_security_logout"/>    <!-- Configure these elements to secure URIs in your application -->    <intercept-url pattern="/login" access="permitAll" />    <intercept-url pattern="/resources/**" access="permitAll" />    <intercept-url pattern="/**" access="isAuthenticated()" /></http>

要查看此示例的运行情况,请使用该roo脚本创建一个roo项目:

// Spring Roo 1.1.5.RELEASE [rev d3a68c3] log opened at 2011-12-13 09:32:23project --topLevelPackage de.humanfork.test --projectName localtest --java 6persistence setup --database H2_IN_MEMORY --provider HIBERNATE ent --class ~.domain.Stufffield string --fieldName titlecontroller all --package ~.websecurity setupweb mvc language --pre deweb mvc language --pre es

然后,您只能更改安全过滤器的跨URL模式,如我在上面(

applicationContext-security.xml
)所示!

现在,您有了一个应用程序,用户可以通过应用程序中的本地更改拦截器(当用户登录时)以及未登录时(在登录页面中)更改其本地用户



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5123318.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存