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 的核心是过滤器链,它包含了一系列安全过滤器,如`FilterSecurityInterceptor`和`AuthenticationProcessingFilter`。这些过滤器在请求处理前进行拦截,执行认证和授权操作。 3. **安全性配置**...
在Spring Security中管理会话也是重要的安全措施之一,包括添加监听器、过滤器以及定义控制策略。 #### 基本认证(basic auth) 基本认证是HTTP协议中的一种认证方式,Spring Security提供了相应的配置方法和编程...
Spring Security OAuth2通过一系列过滤器工作,如OAuth2AuthenticationProcessingFilter处理授权请求,OAuth2AuthenticationFailureHandler处理失败的请求。 **7. 自定义逻辑:** 在实际项目中,你可能需要根据业务...
- **声明式安全**:Spring Security 支持通过 XML 或 Java 配置来定义安全需求,无需编写大量的自定义代码。 - **集成 Spring 生态系统**:利用 Spring IoC (Inversion of Control) 和 DI (Dependency Injection) ...
`AuthenticationProcessingFilter`是Spring Security中用于处理用户登录请求的核心组件之一。它负责接收用户提交的登录信息并进行验证。为了支持多页面登录,我们需要为每个登录页面配置一个`...
- 自定义过滤器:你可以创建自己的过滤器插入到Spring Security的过滤器链中。 6. **源码分析**: Spring Security的源码是开源的,你可以深入研究其内部工作原理,了解每个组件是如何协同工作的。这将帮助你更好...
SpringSecurity是一个强大的、高度可定制的身份验证和访问控制框架,广泛应用于Java企业级应用程序中,以确保安全性。它提供了一套全面的安全解决方案,包括用户认证、授权、会话管理以及防止常见攻击,如CSRF(跨站...
2. **过滤器链**:Spring Security通过一系列的Filter构建了一个安全过滤链,如`HttpServletRequestWrapperFilter`、`AnonymousAuthenticationFilter`、`AuthenticationProcessingFilter`等,这些过滤器负责处理请求...
- 讨论如何在自定义登录页面中正确配置各种参数,确保与Spring Security的良好交互。 - **4.4 测试一下** - 提供一个测试流程,以验证自定义登录页面的功能是否正常。 **5. 使用数据库管理资源** - **5.1 数据库...
在实际开发中,我们还需要关注SpringSecurity的配置,例如定义访问规则、异常处理、自定义权限表达式等。此外,为了确保安全,还需要考虑如CSRF攻击的防护、密码加密存储等最佳实践。SpringSecurity提供了丰富的API...
源码解析可以帮助我们理解如何自定义认证提供者,以及如何与Spring Security的Remember Me服务集成,实现自动登录功能。 2. **权限控制**:基于角色的访问控制(RBAC)是Spring Security的核心部分。它允许开发人员...
本文将深入剖析Spring Security 3的核心概念、架构以及源码实现,帮助读者理解其工作原理,提升在实际开发中的应用能力。 一、Spring Security概述 1.1 框架目标 Spring Security旨在为Java应用提供全面的安全管理...
- **与Spring框架的高度集成**:作为Spring的子项目,Spring Security能够无缝地与Spring框架中的其他组件协同工作。 - **灵活性**:Spring Security提供了高度可定制化的配置选项,允许开发者根据具体需求调整...
4. **安全配置**:在Spring Boot中,Spring Security可以自动配置,但通常我们需要对其进行调整以满足特定需求。我们将学习如何通过`WebSecurityConfigurerAdapter`进行自定义配置,包括定义受保护的URL、配置登录...
在实际应用中,Spring Security可以通过AOP(面向切面编程)进一步增强安全性,如自定义拦截器或方法级的安全检查。此外,Spring Security也支持与其他Spring集成,例如与Spring MVC结合,提供控制器级别的安全保护...
在Spring Security中,认证通常通过`UserDetailsService`接口实现,该接口定义了获取用户信息的方法。认证可以是基于数据库的,也可以是从其他身份验证服务(如LDAP)获取。 授权方面,Spring Security支持多种策略...
使用Spring Security OAuth2.0时,需要配置`http`元素以保护URL,设置过滤器链,如`OAuth2AuthenticationProcessingFilter`和`OAuth2AccessDeniedHandler`,确保只有持有有效令牌的请求才能访问受保护的资源。...
- 在Spring Security配置中引用自定义的服务层代码,以替代原有的资源管理方式。 - **示例代码**: 在`spring-security.xml`中配置自定义资源管理逻辑。 **6. 控制用户信息** - **6.1 MD5加密** - 使用MD5算法...
在本实例中,我们将深入探讨如何配置Spring Security 3以连接数据库并执行查询,以及其核心组件的工作原理。 首先,我们看到配置文件中的 `,这是Spring Security的核心组件之一,它负责定义过滤器链。`...