acegi 添加验证码

            <bean id="authenticationProcessingFilter"
        class="com.pixel.hibernate.HomeAloneAuthenticationProcessingFilter">
        <property name="authenticationManager">
            <ref bean="authenticationManager" />
        </property>
        <property name="authenticationFailureUrl">
            <value>/back/login.jsp?login_error=1</value>
        </property>
        <property name="defaultTargetUrl">
            <value>/</value>
        </property>
        <property name="filterProcessesUrl">
            <value>/j_acegi_security_check</value>
        </property>
        <property name="exceptionMappings">
    <props>
     <prop key="com.eshore.util.ValidaAuthenticationException">
      /back/login.jsp?login_error=1
     </prop>
    </props>
   </property>
    </bean>



package com.pixel.hibernate;

import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.acegisecurity.Authentication;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.ui.webapp.AuthenticationProcessingFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class HomeAloneAuthenticationProcessingFilter extends
   AuthenticationProcessingFilter {
private static final Log logger = LogFactory
    .getLog(HomeAloneAuthenticationProcessingFilter.class);

@Override
protected void onSuccessfulAuthentication(
    HttpServletRequest arg0, HttpServletResponse arg1,
    Authentication arg2) throws IOException {
   logger.info("login successful:"
     + arg0.getParameter("j_username"));
   arg0.getSession().setAttribute("userName",
     arg0.getParameter("j_username"));
   super.onSuccessfulAuthentication(arg0, arg1, arg2);
}

@Override
protected void onPreAuthentication(HttpServletRequest arg0,
    HttpServletResponse arg1) throws AuthenticationException,
    IOException {
   // 验证码验证
   String randomCode1 = (String) arg0.getSession().getAttribute(
     "rand");
   String randomCode2 = (String) arg0.getParameter("rand");
   if (!randomCode2.equals(randomCode1)) {
    throw new ValidaAuthenticationException(
      "valida code error");
   }
   super.onPreAuthentication(arg0, arg1);
}
}

class ValidaAuthenticationException extends AuthenticationException {
/**
*
*/
private static final long serialVersionUID = -8369047599309913998L;

public ValidaAuthenticationException(String arg0) {
   super(arg0);
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值