Spring配置Shiro的過濾器時,有個filterChainDefinitions屬性,值中有等號有換行,嘗試寫到Properties屬性文件中遇到問題
<!-- 配置shiro過濾器 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <!-- 表示現在要配置的是一個安全管理器 --> <property name="securityManager" ref="securityManager"/> <!-- 出現錯誤之后的跳轉路徑的配置 --> <property name="loginUrl" value="/login.html"/> <!-- 認證失敗之后的跳轉路徑頁面 --> <property name="unauthorizedUrl" value="/login.html"/> <!-- 登錄成功之后的跳轉訪問路徑 --> <property name="successUrl" value="/pages/welcome.jsp"/> <property name="filterChainDefinitions"> <value> /admin=authc /logout=logout /xxxxxx=user </value> </property> </bean>
Properties屬性文件可以這樣寫:
shiro.loginUrl=/login.html shiro.unauthorizedUrl=/login.html shiro.successUrl=/pages/welcome.jsp shiro.filterChainDefinitions=/admin=authc \n\ /logout=logout \n\ /info=authc
后面的等號不需要轉義,\n表示值中的換行,再加個轉義符\表示值還沒結束,這樣就沒問題了
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <property name="loginUrl" value="${shiro.loginUrl}"/> <property name="unauthorizedUrl" value="${shiro.unauthorizedUrl}"/> <property name="successUrl" value="${shiro.successUrl}"/> <property name="filterChainDefinitions"> <value>${shiro.filterChainDefinitions}</value> </property> </bean>