login方法访问不到解决过程

背景:由于项目登录模块之前使用传统的字符验证码,干扰又太严重,经常会有输入十次以上才能蒙对的情况。于是提出让改为滑动验证码(斗鱼,B站等等)。如图所示:

原有的:

要改的:

这个实现都可以查的到,就不放源码了。接下来开始正题,说一下遇到的问题:

1,项目中使用到了shiro来做验证,这里有个返回前台图片的接口,需要在shiro的配置中添加上对应的url,

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="unauthorizedUrl" value="/error.jsp"/>
        <property name="filters">
            <util:map>
                <entry key="shiroAuth" value-ref="shiroAuthFilter"/>
            </util:map>
        </property>
        <property name="filterChainDefinitions">
            <value>
                /index.html = anon
                /user/login = anon
                // 新增,获取大小图接口
                /user/getVerifyImage = anon
                // 新增,滑动验证接口
                /user/verifyPath = anon
                /user/logout = logout
                /** = shiroAuth
            </value>
        </property>
    </bean>

添加上之后,前台在没有登录的情况下,可以拿到图片。

2,该改的地方都改了,别的接口都可以访问,唯独login接口访问是200,却只返回captchaError(验证码错误!)。问题是这边的滑动验证码是验证成功的,老的验证码前台又没有调用那个接口,怎么会报这个错误,百思不得其解。恰跟烟,冷静了一下后。开始捋登录的流程,经过了拦截器,过滤器,问题应该在这里。然后开始找项目中的拦截器和过滤器,最终在web.xml中找到了这样的代码:

  <filter>
    <filter-name>jcaptchaFilter</filter-name>
    <filter-class>com.filter.JcaptchaFilter</filter-class>
    <init-param>
      <param-name>jcaptchaParamName</param-name>
      <param-value>captcha</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>jcaptchaFilter</filter-name>
    <url-pattern>/user/login</url-pattern>
  </filter-mapping>

点进去之后是这样的:

注释掉之后,成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值