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

spring security中自定义authenticationProcessingFilter

阅读更多
http://hszdz.iteye.com/blog/337652
<http entry-point-ref="authenticationProcessingFilterEntryPoint">
		<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
		<intercept-url pattern="/user/**" access="ROLE_USER,ROLE_ADMIN"/>
	</http>
	<authentication-provider user-service-ref="securityManager"/>
	<beans:bean id="authenticationProcessingFilter" class="haotian.haocms.security.CustomAuthenticationProcessingFilter">
		<custom-filter position="AUTHENTICATION_PROCESSING_FILTER"/>
		<beans:property name="authenticationManager" ref="authenticationManager"/>
		<beans:property name="defaultTargetUrl" value="/user/userList.action"/>
	</beans:bean>
	<authentication-manager alias="authenticationManager"/>
	<beans:bean id="authenticationProcessingFilterEntryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
		<beans:property name="loginFormUrl" value="/loginPage.action"/>
		<beans:property name="forceHttps" value="false"/>
	</beans:bean>

public Authentication attemptAuthentication(   
            HttpServletRequest httpServletRequest)   
            throws AuthenticationException {   
        String check_code = httpServletRequest.getParameter("j_checkcode");   
        String sys_code = (String) httpServletRequest.getSession()   
                .getAttribute(checkCodeName);   
  
        if (sys_code == null) {   
            throw new AuthCodeValidationException("验证码不正确");   
        } else if (!sys_code.equals(check_code)) {   
            String username = obtainUsername(httpServletRequest);   
            httpServletRequest.getSession().setAttribute(   
                    SPRING_SECURITY_LAST_USERNAME_KEY, username);   
            // 用户输入的值与看到的不一致,抛出异常   
            throw new AuthCodeValidationException("验证码输入不正确");   
        }   
        return super.attemptAuthentication(httpServletRequest);   
    }   
分享到:
评论

相关推荐

    Spring Security 资料合集

    - Spring Security 的核心是过滤器链,它包含了一系列安全过滤器,如`FilterSecurityInterceptor`和`AuthenticationProcessingFilter`。这些过滤器在请求处理前进行拦截,执行认证和授权操作。 3. **安全性配置**...

    spring security3 开发手册

    在Spring Security中管理会话也是重要的安全措施之一,包括添加监听器、过滤器以及定义控制策略。 #### 基本认证(basic auth) 基本认证是HTTP协议中的一种认证方式,Spring Security提供了相应的配置方法和编程...

    spring security oauth2

    Spring Security OAuth2通过一系列过滤器工作,如OAuth2AuthenticationProcessingFilter处理授权请求,OAuth2AuthenticationFailureHandler处理失败的请求。 **7. 自定义逻辑:** 在实际项目中,你可能需要根据业务...

    spring security 培训ppt

    - **声明式安全**:Spring Security 支持通过 XML 或 Java 配置来定义安全需求,无需编写大量的自定义代码。 - **集成 Spring 生态系统**:利用 Spring IoC (Inversion of Control) 和 DI (Dependency Injection) ...

    Spring_Security_多页面登录配置教程

    `AuthenticationProcessingFilter`是Spring Security中用于处理用户登录请求的核心组件之一。它负责接收用户提交的登录信息并进行验证。为了支持多页面登录,我们需要为每个登录页面配置一个`...

    spring security简单示例

    - 自定义过滤器:你可以创建自己的过滤器插入到Spring Security的过滤器链中。 6. **源码分析**: Spring Security的源码是开源的,你可以深入研究其内部工作原理,了解每个组件是如何协同工作的。这将帮助你更好...

    springsecurity框架

    SpringSecurity是一个强大的、高度可定制的身份验证和访问控制框架,广泛应用于Java企业级应用程序中,以确保安全性。它提供了一套全面的安全解决方案,包括用户认证、授权、会话管理以及防止常见攻击,如CSRF(跨站...

    Spring Security3 张卫滨(译)

    2. **过滤器链**:Spring Security通过一系列的Filter构建了一个安全过滤链,如`HttpServletRequestWrapperFilter`、`AnonymousAuthenticationFilter`、`AuthenticationProcessingFilter`等,这些过滤器负责处理请求...

    Spring Security 安全权限管理手册.pdf

    - 讨论如何在自定义登录页面中正确配置各种参数,确保与Spring Security的良好交互。 - **4.4 测试一下** - 提供一个测试流程,以验证自定义登录页面的功能是否正常。 **5. 使用数据库管理资源** - **5.1 数据库...

    SpringSecurity实现表单安全登录、图形验证的校验、记住我时长控制机制、第三方登录

    在实际开发中,我们还需要关注SpringSecurity的配置,例如定义访问规则、异常处理、自定义权限表达式等。此外,为了确保安全,还需要考虑如CSRF攻击的防护、密码加密存储等最佳实践。SpringSecurity提供了丰富的API...

    spring-security书籍翻译

    源码解析可以帮助我们理解如何自定义认证提供者,以及如何与Spring Security的Remember Me服务集成,实现自动登录功能。 2. **权限控制**:基于角色的访问控制(RBAC)是Spring Security的核心部分。它允许开发人员...

    Spring_Security3_源码分析

    本文将深入剖析Spring Security 3的核心概念、架构以及源码实现,帮助读者理解其工作原理,提升在实际开发中的应用能力。 一、Spring Security概述 1.1 框架目标 Spring Security旨在为Java应用提供全面的安全管理...

    Spring Security(Spring安全权限管理手册) PDF

    - **与Spring框架的高度集成**:作为Spring的子项目,Spring Security能够无缝地与Spring框架中的其他组件协同工作。 - **灵活性**:Spring Security提供了高度可定制化的配置选项,允许开发者根据具体需求调整...

    SpringSecurity深度解析与实践(3)

    4. **安全配置**:在Spring Boot中,Spring Security可以自动配置,但通常我们需要对其进行调整以满足特定需求。我们将学习如何通过`WebSecurityConfigurerAdapter`进行自定义配置,包括定义受保护的URL、配置登录...

    框架说明-springsecurity

    在实际应用中,Spring Security可以通过AOP(面向切面编程)进一步增强安全性,如自定义拦截器或方法级的安全检查。此外,Spring Security也支持与其他Spring集成,例如与Spring MVC结合,提供控制器级别的安全保护...

    SpringSecurity3框架

    在Spring Security中,认证通常通过`UserDetailsService`接口实现,该接口定义了获取用户信息的方法。认证可以是基于数据库的,也可以是从其他身份验证服务(如LDAP)获取。 授权方面,Spring Security支持多种策略...

    Spring Security OAuth2.0

    使用Spring Security OAuth2.0时,需要配置`http`元素以保护URL,设置过滤器链,如`OAuth2AuthenticationProcessingFilter`和`OAuth2AccessDeniedHandler`,确保只有持有有效令牌的请求才能访问受保护的资源。...

    Spring Security3技术手册

    - 在Spring Security配置中引用自定义的服务层代码,以替代原有的资源管理方式。 - **示例代码**: 在`spring-security.xml`中配置自定义资源管理逻辑。 **6. 控制用户信息** - **6.1 MD5加密** - 使用MD5算法...

    Spring Security 3连接数据库查询实例

    在本实例中,我们将深入探讨如何配置Spring Security 3以连接数据库并执行查询,以及其核心组件的工作原理。 首先,我们看到配置文件中的 `,这是Spring Security的核心组件之一,它负责定义过滤器链。`...

Global site tag (gtag.js) - Google Analytics