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条回答

    报告相同问题?

    悬赏问题

    • ¥100 求数学坐标画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站