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>

点进去之后是这样的:

注释掉之后,成功了。

posted @   初见洞洞拐  阅读(333)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示