天天看點

jeesite域名通路跳轉

公司使用的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.