shiny4647 2014-01-12 02:52
浏览 5824

shiro自定义authc过滤器的问题

配置了








过滤器代码如下
public class FormAuthenticationCaptchaFilter extends FormAuthenticationFilter {
public static final String DEFAULT_CAPTCHA_PARAM = "captcha";

private String captchaParam = DEFAULT_CAPTCHA_PARAM;

public String getCaptchaParam() {

    return captchaParam;

}

protected String getCaptcha(ServletRequest request) {

    return WebUtils.getCleanParam(request, getCaptchaParam());

}

protected AuthenticationToken createToken(

ServletRequest request, ServletResponse response) {

    String username = getUsername(request);

    String password = getPassword(request);

    String captcha = getCaptcha(request);

    boolean rememberMe = isRememberMe(request);

    return new UsernamePasswordCaptchaToken(username,
            password, rememberMe, captcha);

}

 // 验证码校验
   protected void doCaptchaValidate( HttpServletRequest request 
      ,UsernamePasswordCaptchaToken token ){ 

       String captcha = (String) SecurityUtils.getSubject().getSession()
        .getAttribute(CaptchaServlet.KEY_CAPTCHA);

      if( captcha!=null && 
         !captcha.equalsIgnoreCase(token.getCaptcha()) ){ 
         throw new CaptchaException ("验证码错误!"); 
      } 
   } 


// 认证
   protected boolean executeLogin(ServletRequest request, 
      ServletResponse response) throws Exception { 
       UsernamePasswordCaptchaToken token = (UsernamePasswordCaptchaToken)createToken(request, response); 

      try { 
         doCaptchaValidate( (HttpServletRequest)request,token ); 

         Subject subject = getSubject(request, response); 
         subject.login(token); 

         return onLoginSuccess(token, subject, request, response); 
      } catch (AuthenticationException e) { 
         return onLoginFailure(token, e, request, response); 
      } 
   } 

}
但是在访问相应 url的时候再过滤器中debug进不去

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
    • ¥15 活动选择题。最多可以参加几个项目?
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?
    • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
    • ¥20 怎么在stm32门禁成品上增加查询记录功能
    • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
    • ¥50 NT4.0系统 STOP:0X0000007B
    • ¥15 想问一下stata17中这段代码哪里有问题呀