package com.security;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
public class OnLoginFaild implements AuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request,
HttpServletResponse response, AuthenticationException exception)
throws IOException, ServletException {
String errorMSG=exception.getMessage();//User is disabled
//Bad credentials
System.out.println("errorMSG:"+exception.getMessage());
if(!("".equals(errorMSG)))response.sendRedirect(request.getContextPath()+"/others_handler/login_faild/"+errorMSG);
}
}
spring-security.xml配置中的修改
<http pattern="/login.jsp" security="none"/>
<http access-denied-page="/others_handler/no_power_access"><!-- 当访问被拒绝时,会转到403.jsp -->
<form-login login-page="/login.jsp"
authentication-failure-handler-ref="onLoginFaild"
authentication-failure-url="/others_handler/login_faild/*"
default-target-url="/others_handler/login_success" /><!-- 登录成功跳转到index.jsp -->
<logout logout-success-url="/login.jsp" />
<custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="myFilter" />
</http>
以上配置中authentication-failure-handler-ref="onLoginFaild"
表示登录失败时候跳转到anLoginFaild这个bean中
<http pattern="/login.jsp" security="none"/>这个配置当请求/login.jsp时,security不会去拦截,也就不过org.springframework.security.access.intercept.AbstractSecurityInterceptor
拦截器,所以在/login.jsp页面用org.springframework.security.core.context.SecurityContextHolder.getContext().getAuthentication()
也就获得不了用户信息
分享到:
相关推荐
**Spring Security 3 多用户登录实现详解** Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛应用于Java EE平台上的安全解决方案。在本文中,我们将深入探讨如何在Spring Security 3中实现...
在"Spring Security 3用户登录实现之十 用户切换"这个主题中,我们将探讨如何在Spring Security框架下实现在应用中切换不同用户的功能。 首先,Spring Security的核心在于它的安全拦截机制,即`Filter Security ...
在“Spring Security 3多用户登录实现之九 基于持久化存储的自动登录”这一主题中,我们将探讨如何利用Spring Security来实现多用户登录系统,并通过持久化存储来支持用户的自动登录功能。在这个过程中,我们会涉及...
SpringBoot+SpringSecurity处理Ajax登录请求问题 ...使用SpringBoot+SpringSecurity处理Ajax登录请求问题需要我们了解SpringBoot、SpringSecurity、MyBatis等技术框架,并掌握相关的配置和实现细节。
2. **配置Spring Security**:我们需要在Spring Cloud Gateway项目中引入Spring Security依赖,并配置相关的安全配置类。这包括定义认证和授权的规则,例如基于JWT(JSON Web Tokens)的认证,或者基于OAuth2的授权...
在"Spring Security 3 多页面登录 小秘密小运气"这个主题中,我们可以深入探讨Spring Security 3如何支持多个登录页面以及其中可能涉及的一些技巧和策略。 首先,Spring Security的核心功能包括身份验证、授权、...
应用中涉及到安全认证,目前项目有独立的统一认证网关,所以登录时只需要将安全认证网关的认证后信息塞到spring security中,由security3来管理用户的权限设置。目前项目由spring security2升级到spring security3。...
在"Spring Security 3多用户登录实现之七 用户验证失败处理改进"这个主题中,我们将探讨如何优化Spring Security的用户验证流程,以提高用户体验和系统安全性。 1. **用户验证流程**: Spring Security的认证过程...
在实现集成登录认证组件时,我们需要了解OAuth2.0认证体系、SpringBoot、SpringSecurity以及Spring Cloud等相关知识。同时,我们还需要了解如何定义拦截器、如何在拦截的通知进行预处理、如何在UserDetailService....
本文将详细介绍如何在Spring Security框架下配置多登录页面,包括前台与后台用户的分开登录界面,以及注销登录后返回到不同的页面等功能。 #### 一、Spring Security简介 Spring Security是Spring家族中的一个子...
- `CAS-spring-security-cas-client.jar`:支持 CAS 协议的单点登录功能。 - `OpenID-spring-security-openid.jar`:支持 OpenID 身份验证。 - **获得源代码**:可以从 GitHub 或 Maven 仓库获取 Spring Security ...
在Spring Security 3中,实现多用户登录功能是构建安全Web应用的重要环节。退出功能则允许用户安全地结束他们的会话,清除相关的会话数据,以保护用户的隐私和系统的安全性。 在Spring Security中,退出流程通常是...
SecurityContext 是 Spring Security 中的一个重要概念,表示当前用户的安全上下文。SecurityContext 中包含用户的身份信息、权限信息等。SecurityContext 是通过 SecurityContextHolder 实现的。 五、Spring ...
标题中的“利用Spring Security控制同一个用户只能一次登录”是指在基于Spring Security的Web应用程序中实现单点登录(Single Sign-On, SSO)的功能,确保同一时间只有一个设备或浏览器会话可以登录同一用户的账户。...
在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...
Spring Security 3提供了“记住我”服务,允许用户在关闭浏览器后仍保持登录状态。这通过在用户认证成功时生成一个持久化的令牌来实现。 五、CSRF保护 为了防止跨站请求伪造(CSRF)攻击,Spring Security 3引入了...
本项目结合了SpringBoot、SpringSecurity以及JPA(Java Persistence API),实现了用户角色权限的登录认证功能。以下是关于这些技术及实现过程的详细讲解。 1. **SpringBoot**:SpringBoot简化了Spring应用的初始...
这三份资料——"实战Spring Security 3.x.pdf"、"Spring Security 3.pdf" 和 "Spring Security使用手册.pdf" 将深入探讨这些概念,并提供实践指导,帮助读者掌握如何在实际项目中应用Spring Security。通过学习这些...
在Spring Security 3中,你可以看到如何配置和使用Remember-Me服务,以便为用户提供更加便捷的登录体验。 7. **集成其他Spring组件**:Spring Security 可以与Spring MVC、Spring Data等其他Spring组件无缝集成。...