`
lzj520
  • 浏览: 213524 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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);
}
}


分享到:
评论

相关推荐

    acegi资料大全-全集

    `Acegi X_509双向认证 (添加验证码jcaptcha).mht`可能涉及到了基于X.509证书的SSL/TLS客户端认证,这是一种更高级的身份验证方式,常用于企业级应用。同时,结合jCaptcha的使用,可以防止恶意自动化的登录尝试,...

    jcaptcha的验证码例子

    要在基于`Acegi`的安全框架中使用`jCaptcha`,首先需要将`jcaptcha-1.0-all.jar`添加到项目类路径中,然后配置`Acegi`的安全设置以启用验证码验证。这通常涉及到以下几个步骤: 1. **配置`jCaptcha`服务**:创建一...

    使用spring+struts+hibernate实现的登录

    1. Spring:Spring框架中的Spring Security(之前称为Acegi Security)提供了安全控制功能。它管理用户凭据,进行身份验证,并根据用户的角色和权限控制访问。你可以定义一个`UserDetailsService`接口的实现,该接口...

    基于s2sh_springn security的权限管理系统

    2. Spring Security:原名Acegi Security,是Spring生态中的安全模块,提供了全面的身份验证、授权和访问控制功能。在本系统中,Spring Security主要负责用户的登录认证、权限校验以及URL级别的访问控制,确保用户...

    spring 安全文档 PDF

    - **添加自定义过滤器**:开发者可以根据需要添加额外的安全过滤器,比如验证码验证过滤器。 - **设置自定义认证入口点**:当用户尝试访问未授权资源时,Spring Security可以通过自定义认证入口点来处理这种情形。 -...

    java开源包1

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包11

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包2

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包3

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包6

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包5

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包10

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包4

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包8

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包7

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包9

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包101

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    Java资源包01

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    JAVA上百实例源码以及开源项目源代码

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

Global site tag (gtag.js) - Google Analytics