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