shiro认证成功不跳转

问题遇到的现象和发生背景

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后台无反应,输其他则正常

我的解答思路和尝试过的方法
我想要达到的结果

你的登录页面地址应该不是login.jsp,输入下面试一下。

img


登录成功后才能跳到index

login.jsp部分代码:


x
快捷登录







请输入正确格式的手机号





请输入正确的验证码

获取验证码


登录

没有账号 去注册



$('#clicklogin').click(function () {
let parent = $(this).parents("form").attr("name");
let status = 1;
if (parent === 'login-form') {
status = 2;
}
//手机号
let val = $("form[name=" + parent + "] input[name='phone']").val();
//验证码
let code = $("form[name=" + parent + "] input[name='verificationCode']").val();
if (checkEmail(val, 'phone', parent) && checkedPhoneReg(val, 'phone', parent) && checkEmail(code, 'verificationCode', parent)) {
clearTimeout(window["timer"]);
var formData = new FormData();
formData.append('phone', val);
formData.append('verificationCode', code);
let data = $("form[name=" + parent + "]").serialize();
// data = data + "&" + "status=" + status
// $(this).attr('disabled', 'disabled') // $(this).attr('disabled', false)
$.ajax({
type: "POST",
url: '/user/login',
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
// contentType: false,
// processData: false,
// /user/loginurl: window["_loginurl"],
data: data,
async: false,
dataType: "json",
success: function (RunyiResult) {
console.log(RunyiResult);
if (RunyiResult.status === 200) {
getMessage('登录成功', 'success');
//跳转后台
console.log(window.location.host + RunyiResult.data);
window.location.href = RunyiResult.data;
} else {
getMessage(RunyiResult.msg, 'haveempty');
}
},
error: function (e) {
console.log(e);
}
});
}
});