因为项目单点登录的需求,对原项目进行单点登录改造,对shiro 进行升级,由原1.3升级至1.7,原代码未做任何改动,登录重定向报400,但直接访问登录页正常,两者差异在于url增加自带参数jsessionid,导致400,改配置文件即可,代码如下:
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionIdUrlRewritingEnabled" value="false" /><!--这个参数,默认为true,改为false-->
<property name="globalSessionTimeout" value="1800000" />
<property name="sessionDAO" ref="sessionDAO"/>
</bean>
同时记得引入sessionManager:
<!-- securityManager安全管理器 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="loginRealm" />
<!-- <property name="rememberMeManager" ref="rememberMeManager"/> -->
<!-- <property name="cacheManager" ref="shiroCacheManager" /> -->
<property name="sessionManager" ref="sessionManager" />
</bean>