- 浏览: 263766 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (87)
- Java (6)
- Frameworks (1)
- JavaWeb (3)
- Spring (6)
- Hibernate (26)
- Maven (2)
- Plugin (1)
- Velocity (1)
- Freemarker (1)
- Spring security (18)
- Google (5)
- Guice (5)
- rmi (1)
- Annotation (1)
- Binding (1)
- commons-fileupload (3)
- fileupload (3)
- ehcache (1)
- ApplicationContext (1)
- Resource (1)
- Validator (1)
- PropertyEditor (1)
- one-to-many (5)
- cascade (2)
- MessageSource (1)
- Serialize (1)
- Serializable (1)
- delete (1)
- delete-orphan (1)
- fetch (1)
- one-to-one (1)
- join (4)
- DomainObject (1)
- CRUD (1)
- composite-element (1)
- Hibernate ORM (14)
- dynamic-insert (1)
- dynamic-update (1)
- Search (1)
- DDD (0)
- Job (0)
- element (1)
- Unique (1)
- Group (1)
- tomcat (1)
- https (1)
- mysql (1)
最新评论
-
xurunchengof:
[url][url][url][img][img][img][ ...
Spring Security 3多用户登录实现之三 验证过滤器 -
Wind_ZhongGang:
yo8237233 写道你这样的话如果上传文件超过了50000 ...
Spring集成Commons fileupload,文件上传 -
yo8237233:
你这样的话如果上传文件超过了50000000就会报异常
Spring集成Commons fileupload,文件上传 -
zhuzhiguosnail:
Wind_ZhongGang 写道lianglaiyang 写 ...
Spring Security 3多用户登录实现一 -
曾老师:
?????
Spring Security 3用户登录实现之十 用户切换
验证用户后主要有这样两种走向,一种是验证失败,一种是验证成功,验证失败后应该如何处理呢,验证成功又该如何处理呢?
验证失败的处理需要实现AuthenticationFailureHandler接口,我的前台用户认证失败的处理是这样的
package com.template.security.authentication.handler; import com.template.security.shared.DirectUrlResolver; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 12-11-9 * Time: 下午11:20 */ public class MultipleAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { private List<DirectUrlResolver> resolvers = new ArrayList<DirectUrlResolver>(); @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { for (DirectUrlResolver resolver : resolvers) { if (resolver.support(request)) { String directUrl = resolver.directUrl(); setDefaultFailureUrl(directUrl); } } super.onAuthenticationFailure(request, response, exception); } public void setResolvers(List<DirectUrlResolver> resolvers) { this.resolvers = resolvers; } }
验证成功的处理需要实现AuthenticationSuccessHandler接口,我的后台验证成功处理是这样的
package com.template.security.authentication.handler; import com.template.security.shared.DirectUrlResolver; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 12-11-9 * Time: 下午11:20 */ public class MultipleAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { private List<DirectUrlResolver> resolvers = new ArrayList<DirectUrlResolver>(); @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { for (DirectUrlResolver resolver : resolvers) { if (resolver.support(request)) { String directUrl = resolver.directUrl(); setDefaultTargetUrl(directUrl); } } super.onAuthenticationSuccess(request, response, authentication); } public void setResolvers(List<DirectUrlResolver> resolvers) { this.resolvers = resolvers; } }
不论是前台验证成功还是后台验证成功,前台验证失败还是后台验证失败我都有不同的处理,前台验证成功导向前台验证成功界面,后台验证成功导向后台验证成功界面, 前台验证失败导向前台登录界面, 后台验证失败导向后台登录界面,所以这里我使用了前面我书写的一个通用接口,也就是DirectUrlResolver。来看看验证处理成功或失败的配置信息。
<beans:bean id="multipleAuthenticationSuccessHandler" class="com.template.security.authentication.handler.MultipleAuthenticationSuccessHandler"> <beans:property name="alwaysUseDefaultTargetUrl" value="true"/> <beans:property name="resolvers"> <beans:list> <beans:ref bean="backendAuthenticationSuccessUrlResolver"/> <beans:ref bean="forendAuthenticationSuccessUrlResolver"/> </beans:list> </beans:property> </beans:bean> <beans:bean id="backendAuthenticationSuccessUrlResolver" class="com.template.security.shared.RequestParameterDirectUrlResolver"> <beans:property name="parameterName" value="token"/> <beans:property name="pattern" value="backend"/> <beans:property name="directUrl" value="/backend/login/success"/> </beans:bean> <beans:bean id="forendAuthenticationSuccessUrlResolver" class="com.template.security.shared.RequestParameterDirectUrlResolver"> <beans:property name="parameterName" value="token"/> <beans:property name="pattern" value="forend"/> <beans:property name="directUrl" value="/forend/login/success"/> </beans:bean> <beans:bean id="multipleAuthenticationFailureHandler" class="com.template.security.authentication.handler.MultipleAuthenticationFailureHandler"> <beans:property name="resolvers"> <beans:list> <beans:ref bean="backendAuthenticationFailureUrlResolver"/> <beans:ref bean="forendAuthenticationFailureUrlResolver"/> </beans:list> </beans:property> </beans:bean> <beans:bean id="backendAuthenticationFailureUrlResolver" class="com.template.security.shared.RequestParameterDirectUrlResolver"> <beans:property name="parameterName" value="token"/> <beans:property name="pattern" value="backend"/> <beans:property name="directUrl" value="/backend/login?error=1"/> </beans:bean> <beans:bean id="forendAuthenticationFailureUrlResolver" class="com.template.security.shared.RequestParameterDirectUrlResolver"> <beans:property name="parameterName" value="token"/> <beans:property name="pattern" value="forend"/> <beans:property name="directUrl" value="/forend/login?error=1"/> </beans:bean>
这里还需要将相应的验证Handler注入到前讲的认证处理Filter中。
- SHTEPMPLATE.zip (43.6 KB)
- 下载次数: 45
发表评论
-
Spring Security 之 Session Management
2013-01-06 11:43 5612Spring Security为我们提供了Sess ... -
Spring Security 之 Digest Authentication
2013-01-04 16:22 0<?xml version=" ... -
Spring Security 之 Basic Authentication
2013-01-04 11:58 2048Spring Security实现Basic A ... -
Spring Security 3用户登录实现之十二 授权判断
2012-11-29 15:38 2251Spring Security在验证用户登录后的另 ... -
Spring Security 3多用户登录实现之十一 退出
2012-11-19 21:41 2660Spring Security的退出功能由Logou ... -
Spring Security 3用户登录实现之十 用户切换
2012-11-17 18:15 6337部分情况下用户希望能够在不知道其它用户账号及密码的 ... -
Spring Security 3多用户登录实现之九 基于持久化存储的自动登录
2012-11-17 00:40 6313Spring Security实现自动登录的基本流 ... -
Spring Security 3多用户登录实现之八 基于Cookie的自动登录
2012-11-15 22:44 11038Spring Security为我们提供了两种方式的自 ... -
Spring Security 3多用户登录实现之七 用户验证失败处理改进
2012-11-11 11:24 8982验证登录失败后的处理的常见处理是返回到登录页面,并 ... -
Spring Security 3多用户登录实现之五 验证用户凭证
2012-11-11 00:42 4969有了用户凭证后, 如何验证用户的凭证是否正确呢, 这就需 ... -
Spring Security 3多用户登录实现之四 用户凭证
2012-11-10 20:00 5111前讲讲到AuthenticationFilt ... -
Spring Security 3多用户登录实现之三 验证过滤器
2012-11-10 19:58 15173当填写完成登录表单提交后,首先会被对应的提交表单提起 ... -
Spring Security 3多用户登录实现之二 多登录界面展示
2012-11-10 19:58 9805接前讲,首先针对一个多种用户类型的登录需求,需要先 ... -
Spring Security 3多用户登录实现一
2012-11-10 19:57 5089使用Spring Security 3 来实现多种 ... -
Spring security customize password encoder
2011-07-29 22:21 2427Spring security为我们 ... -
Spring security防用户重复登录
2011-07-28 23:28 3965使用Spring security如何防止用户的重复登录呢 ... -
Spring security用户权限数据库配置
2011-07-28 22:11 6565关于安全性服务,有两个重要的概念需要理解,一是认证,即判断 ... -
Spring security HTTP Basic认证
2011-07-27 21:54 5301Spring security框架集成了多种流行的安全认证 ...
相关推荐
在"Spring Security 3多用户登录实现之七 用户验证失败处理改进"这个主题中,我们将探讨如何优化Spring Security的用户验证流程,以提高用户体验和系统安全性。 1. **用户验证流程**: Spring Security的认证过程...
以下是一些关于实现Spring Security多用户登录退出功能的关键知识点: 1. **配置注销URL**: 在Spring Security的配置中,你需要定义一个注销URL,如`/logout`。例如,在XML配置中,你可以使用`<http>`元素的`...
在这个项目中,SpringSecurity被用来处理用户登录、角色权限分配和防止非法请求。 3. **JPA**:Java Persistence API是Java平台上的ORM(对象关系映射)规范,它允许开发者以面向对象的方式操作数据库,将数据对象...
在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...
本文将详细介绍如何在Spring Security框架下配置多登录页面,包括前台与后台用户的分开登录界面,以及注销登录后返回到不同的页面等功能。 #### 一、Spring Security简介 Spring Security是Spring家族中的一个子...
在这个场景中,我们关注的是如何使用Spring Security实现登录验证以及在登录过程中传递参数,特别是记录并返回用户登录前的页面。我们将深入探讨这个过程,并结合MySQL数据库的使用。 首先,让我们了解Spring ...
在Spring Security和OAuth 2.0的组合中,`xp-sso-server`充当认证中心,处理所有用户的登录和授权请求。 - 当用户在任何客户端应用(如`xp-sso-client-a`或`xp-sso-client-b`)上尝试访问受保护资源时,会被重定向...
在Spring Security框架中实现多个登录页面的配置是一项高级特性,主要应用于区分前端用户与后端管理员的不同登录需求。本文将详细介绍如何通过Spring Security配置多个登录页面,并为不同类型的用户设置不同的登录...
它提供了许多功能,包括登录表单、记住我功能、多身份验证器、基于注解的安全配置、CSRF 防护、OAuth2 客户端和服务端支持等。Spring Security 的目标是使开发人员能够快速地为应用程序添加安全功能,同时提供足够的...
Spring Security 3提供了“记住我”服务,允许用户在关闭浏览器后仍保持登录状态。这通过在用户认证成功时生成一个持久化的令牌来实现。 五、CSRF保护 为了防止跨站请求伪造(CSRF)攻击,Spring Security 3引入了...
### 单点登录SSO解决方案之SpringSecurity+JWT实现 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种认证机制,允许用户仅通过一次登录就能访问同一域下的多个应用程序和服务。这种机制...
在用户登录时,认证过程首先通过用户表来校验用户身份。认证成功后,授权过程会检查用户的关联角色,进一步确定用户的角色权限和角色菜单,从而决定用户能够访问的菜单和拥有哪些操作权限。 Spring Security为...
`AuthenticationProcessingFilter`是Spring Security中用于处理用户登录请求的核心组件之一。它负责接收用户提交的登录信息并进行验证。为了支持多页面登录,我们需要为每个登录页面配置一个`...
在本主题中,我们将深入探讨如何使用Spring Security与数据库配合,实现用户认证。这一过程涉及多个步骤,包括配置、数据库模型、用户DetailsService 和权限控制。 1. **配置Spring Security** 在Spring Security...
3. **CAS客户端配置**:在应用中集成CAS作为SSO的客户端,需要在Spring Security的配置中加入CAS的相关配置,如指定CAS服务器地址、服务验证URL等。同时,配置CAS过滤器以处理用户的身份验证请求。 4. **Spring ...
反之,如果认证成功,`successfulAuthentication`方法会被调用,此时可以配置`AuthenticationSuccessHandler`来决定如何处理成功认证后的请求,例如重定向到主页或者显示欢迎信息。 值得注意的是,`sessionStrategy...
在前后端分离的场景下,Spring Security 可以作为后端的身份验证服务,处理用户的登录请求,确保只有合法的用户能够访问受保护的资源。 **JWT** JWT 是一种轻量级的身份验证标准,用于在网络应用环境中安全地传输...
3. **过滤器链(Filter Chain)**:Spring Security 使用一系列过滤器处理请求,如 `SecurityContextPersistenceFilter` 保存和恢复安全上下文,`UsernamePasswordAuthenticationFilter` 处理登录请求。理解过滤器链...
例如,你可以指定哪些URL需要用户登录后才能访问,哪些URL可以匿名访问。还可以配置登录页面、注销行为、CSRF保护等。 2. **** 子元素:这些子元素定义了URL模式及其对应的访问权限。例如,`**" access="ROLE_ADMIN...
### Spring Security3 相关知识点概述 #### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:识别系统中的安全隐患,并评估安全措施的有效性。 - **过程**:通过模拟攻击来测试系统的安全性,分析日志记录...