问题遇到的现象和发生背景
shiro登录后不跳转到index
问题相关代码,请勿粘贴截图
<!--1.退出后台登录设置 -->
<bean id="logoutFilter" class="com.zhongnuo.common.SystemLogout">
<property name="redirectUrl" value="/loginout" />
</bean>
<!--2.设置登录验证 -->
<bean id="securityManager"
class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<!-- Single realm app. If you have multiple realms, use the 'realms' property
instead. -->
<property name="realm" ref="authRealm" />
<!-- 引用自定义的realm -->
<!-- 缓存 -->
<!-- <property name="cacheManager" ref="shiroEhcacheManager" />-->
<!-- redis集群缓存 -->
<property name="cacheManager" ref="cacheManager" />
<!--实现记住我的功能-->
<property name="rememberMeManager" ref="rememberMeManager"/>
</bean>
<!--3.设置过滤器 filter-name这个名字的值来自于web.xml中filter的名字 -->
<bean id="shiroFilter"
class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<!--登录页面-免费客户使用的页面 -->
<property name="loginUrl" value="/login"></property>
<!-- 登录成功后-付费客户使用的页面 -->
<property name="successUrl" value="/index.jsp"></property>
<!-- 权限认证失败,则跳转到指定页面 -->
<!-- <property name="unauthorizedUrl" value="/login" /> -->
<!--退出登录 -->
<property name="filters">
<map>
<!-- 将自定义 的FormAuthenticationFilter注入shiroFilter中 -->
<entry key="logout" value-ref="logoutFilter" />
<!-- 配置 重写的 父类方法 issueSuccessFilter 让自己重写的方法起到作用 以防止 登录成功后 不调到 successUrl
的问题 -->
<!--<entry key="authc" value-ref="runyiFormAuthenticationFilter" />-->
</map>
</property>
<property name="filterChainDefinitions">
<!-- /**代表下面的多级目录也过滤 -->
<value>
<!--表单请求避免被误拦截 -->
/login*.jsp=anon
/web.xml=anon
/home* = anon
/login* =anon
/css/** = anon
/image/**=anon
/js/** = anon
/make/** =anon
/skin/** = anon
/stat/** = anon
/ufiles/** =anon
/validator/** =anon
/xsloader-js/**=anon
/resource/** = anon
/js/private.js=anon
/favicon.ico=anon
/css/main.css=anon
/login.jsp* =anon
/css/normalize.css=anon
/css/reset.css=anon
/css/main.css=anon
/es6/**=anon
/image/logo.jpg=anon
/css/header.css=anon
/image/nav-show.png=anon
/image/bg.png=anon
/user/account/**=anon
/sucessUrl/index.do=anon
<!--验证码 -->
/user/Verification=anon
/user/login=anon
/creditTest=anon
/index*=anon
/index*.jsp=user
/logout =logout
/**/ajax/**=user
/**=user
/pages/**=authc
</value>
</property>
</bean>
<!--不跳转到 successUrl 的问题解决 -->
<!--<bean id="runyiFormAuthenticationFilter"
class="com.zhongnuo.common.RunyiFormAuthenticationFilter" />-->
<!--<bean id="shiroEhcacheManager"
class="org.apache.shiro.cache.ehcache.EhCacheManager">
<property name="cacheManagerConfigFile"
value="classpath:spring/ehcache-shiro.xml" />
</bean>-->
<!--4.自定义权限认证 -->
<bean id="authRealm"
class="com.zhongnuo.controller.afterinput.domin.AuthRealm">
<!--<property name="mainloginManagementService" ref="mainloginManagementService"/> -->
<!-- 自定义密码加密算法 -->
<property name="credentialsMatcher" ref="passwordMatcher" />
<!--缓存配置 -->
<property name="cachingEnabled" value="true" />
<!-- 开启认证缓存-->
<property name="authenticationCachingEnabled" value="true" />
<!-- 指定认证缓存的名字(与 ehcache.xml 中声明的相同) -->
<property name="authenticationCacheName"
value="authenticationCache" />
<!--开启授权缓存-->
<property name="authorizationCachingEnabled" value="true" />
<!-- 指定授权缓存的名字(与 ehcache.xml 中声明的相同) -->
<property name="authorizationCacheName" value="authorizationCache" />
</bean>
<!--5.设置密码加密策略 md5hash -->
<bean id="passwordMatcher"
class="com.zhongnuo.controller.afterinput.domin.CustomCredentialsMatcher" />
<!-- 用户授权/认证信息Cache, 采用EhCache 缓存 -->
<!--6.保证实现了Shiro内部lifecycle函数的bean执行 -->
<bean id="lifecycleBeanPostProcessor"
class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
<!--7.生成代理,通过代理进行控制 -->
<bean
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
depends-on="lifecycleBeanPostProcessor">
<property name="proxyTargetClass" value="true" />
</bean>
<!--8.安全管理器 -->
<bean
class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager" />
</bean>
<!--9.修改默认sessionID 为notice-center-->
<bean id="sessionIdCookie"
class="org.apache.shiro.web.servlet.SimpleCookie">
<constructor-arg name="name" value="notice-center"/>
<property name="path" value="/"/>
</bean>
<!--10.rememberMeManager管理器,写cookie,取出cookie生成用户信息 -->
<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
<property name="cookie" ref="rememberMeCookie"/>
</bean>
<!--11.记住我cookie -->
<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
<!-- rememberMe是cookie的名字 -->
<constructor-arg value="notice-cookie"/>
<!-- 记住我cookie生效时间30天 -->
<property name="maxAge" value="2592000"/>
</bean>
<!-- SessionID生成器sessionIdGenerator-->
<bean id="sessionIdGenerator" class="com.zhongnuo.shiro.utils.session.ShiroSessionIdGenerator" />
<!--****** -->
<!--第六部分sprin-shiro.xml内容结束 -->
运行结果及报错内容
1.无法跳到index
2.登录时直接输入login.jsp后台无反应,输其他则正常