公司使用的jeesite項目編寫的兩個系統,一為使用者使用登入,一個為開發人員背景管理。
直接通路域名則跳轉到使用者使用系統配置如下
<!-- 定義無Controller的path<->view直接映射 -->
<mvc:view-controller path="/" view-name="redirect:${web.view.index}"/>
${web.view.index}的配置在*.properties中,本項目配置為
web.view.index=/home
則使用者跳轉 host/home路徑
如果通路域名+/a則跳轉開發人員背景管理系統,原因是jeesite還是用了權限控制架構Apache Shiro 項目中會有一個Spring-context-shiro.xml的配置,其中:
<!-- Shiro的Web過濾器 -->
<!-- 支援兩種登陸過濾器,不同的頁面使用不同的過濾器 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager"/>
<property name="loginUrl" value="${adminPath}/login"/>
<property name="successUrl" value="/loginSuccess"/>
<property name="filters">
<map>
<entry key="oauth2Authc" value-ref="oAuth2AuthenticationFilter"/>
<entry key="authc" value-ref="formAuthenticationFilter"/>
</map>
</property>
<property name="filterChainDefinitions">
<value>
。。。略。。。
${adminPath}/** = user
</value>
</property>
</bean>
adminPath/∗∗=user關鍵在于這句話意思是通路的連結是類似 {adminPath}/** 這個的話 , 則 必須得有使用者登入 , 否則跳轉到登陸界面 . 而 adminPath又恰好是/a于是如果有/a/∗∗(∗∗是比對所有的意思)連結,則需要登陸,如果沒有登陸則跳轉到登陸界面,是以跳轉的路徑應該為 {adminPath}/a/login.