Spring Security 異常信息本地化

2018-09-28 19:19 更新

異常信息本地化

Spring Security 支持將展現(xiàn)給終端用戶看的異常信息本地化,這些信息包括認(rèn)證失敗、訪問被拒絕等。而對于展現(xiàn)給開發(fā)者看的異常信息和日志信息(如配置錯誤)則是不能夠進(jìn)行本地化的,它們是以英文硬編碼在 Spring Security 的代碼中的。在 Spring-Security-core-xxx.jar 包的 org.springframework.security 包下?lián)碛幸粋€以英文異常信息為基礎(chǔ)的 messages.properties 文件,以及其它一些常用語言的異常信息對應(yīng)的文件,如 messages_zh_CN.properties 文件。那么對于用戶而言所需要做的就是在自己的 ApplicationContext 中定義如下這樣一個 bean。

   <bean id="messageSource"
   class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
      <property name="basename"
         value="classpath:org/springframework/security/messages" />
   </bean>

如果要自己定制 messages.properties 文件,或者需要新增本地化支持文件,則可以 copy Spring Security 提供的默認(rèn) messages.properties 文件,將其中的內(nèi)容進(jìn)行修改后再注入到上述 bean 中。比如我要定制一些中文的提示信息,那么我可以在 copy 一個 messages.properties 文件到類路徑的 “com/xxx” 下,然后將其重命名為 messages_zh_CN.properties,并修改其中的提示信息。然后通過 basenames 屬性注入到上述 bean 中,如:

   <bean id="messageSource"
   class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
      <property name="basenames">
         <array>
            <!-- 將自定義的放在 Spring Security 內(nèi)置的之前 -->
            <value>classpath:com/xxx/messages</value>
            <value>classpath:org/springframework/security/messages</value>
         </array>
      </property>
   </bean>

有一點需要注意的是將自定義的 messages.properties 文件路徑定義在 Spring Security 內(nèi)置的 message.properties 路徑定義之前。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號