- 浏览: 266052 次
- 性别:
- 来自: 成都
-
文章分类
- 全部博客 (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用户登录实现之十 用户切换
有了用户凭证后, 如何验证用户的凭证是否正确呢, 这就需要借助AuthenticationManager了, AuthenticationManager可以包含多个AuthenticationProvider, 每个AuthenticationProvider都会针对特定的AuthenticationToken, 也就是用户凭证来验证相应的用户凭证是否正确。
来看看我为了实现验证前台用户凭证和后台用户凭证而实现的AuthenticationProvider吧。
package com.template.security.authentication.provider; import com.template.security.authentication.token.BackendAuthenticationToken; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 12-11-4 * Time: 下午11:16 */ public class BackendAuthenticationProvider implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { BackendAuthenticationToken authenticationToken = (BackendAuthenticationToken) authentication; // String captcha = authenticationToken.getCaptcha(); // if (captcha.startsWith("ZZ")) { // throw new AuthenticationServiceException("The captcha is wrong!"); // } String username = (String) authenticationToken.getPrincipal(); String password = (String) authenticationToken.getCredentials(); if (username.equalsIgnoreCase("ZHONGGANG") && password.equalsIgnoreCase("123")) { SecurityContextHolder.getContext().setAuthentication(authenticationToken); return authenticationToken; } throw new AuthenticationServiceException("The username or password is not correct!"); } @Override public boolean supports(Class<?> authentication) { return BackendAuthenticationToken.class.isAssignableFrom(authentication); } }
package com.template.security.authentication.provider; import com.template.security.authentication.token.ForendAuthenticationToken; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 12-11-4 * Time: 下午11:16 */ public class ForendAuthenticationProvider implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { ForendAuthenticationToken authenticationToken = (ForendAuthenticationToken) authentication; String email = authenticationToken.getEmail(); String phone = authenticationToken.getPhone(); if (email.endsWith("@qq.com") && phone.startsWith("139")) { authenticationToken.setAuthenticated(true); SecurityContextHolder.getContext().setAuthentication(authenticationToken); return authenticationToken; } throw new AuthenticationServiceException("The email or phone is not correct!"); } @Override public boolean supports(Class<?> authentication) { return ForendAuthenticationToken.class.isAssignableFrom(authentication); } }
不论是前台用户凭证验证还是后台用户凭证验证,都实现了AuthenticationProvider接口,其中的supports方法表明这个AuthenticationProvider需要对哪个类型的用户凭证进行验证。这里我只是进行了一个简单的验证,没有什么实际意义,如果你的验证需要与数据库打交道,你可以在AuthenticationProvider中注入你的服务。来看看配置文件中的相应配置信息吧。
<authentication-manager alias="authenticationManager"> <authentication-provider ref="forendAuthenticationProvider"/> <authentication-provider ref="backendAuthenticationProvider"/> </authentication-manager> <beans:bean id="backendAuthenticationProvider" class="com.template.security.authentication.provider.BackendAuthenticationProvider"/> <beans:bean id="forendAuthenticationProvider" class="com.template.security.authentication.provider.ForendAuthenticationProvider"/>
- SHTEPMPLATE.zip (43.6 KB)
- 下载次数: 53
发表评论
-
Spring Security 之 Session Management
2013-01-06 11:43 5648Spring Security为我们提供了Sess ... -
Spring Security 之 Digest Authentication
2013-01-04 16:22 0<?xml version=" ... -
Spring Security 之 Basic Authentication
2013-01-04 11:58 2071Spring Security实现Basic A ... -
Spring Security 3用户登录实现之十二 授权判断
2012-11-29 15:38 2272Spring Security在验证用户登录后的另 ... -
Spring Security 3多用户登录实现之十一 退出
2012-11-19 21:41 2676Spring Security的退出功能由Logou ... -
Spring Security 3用户登录实现之十 用户切换
2012-11-17 18:15 6380部分情况下用户希望能够在不知道其它用户账号及密码的 ... -
Spring Security 3多用户登录实现之九 基于持久化存储的自动登录
2012-11-17 00:40 6332Spring Security实现自动登录的基本流 ... -
Spring Security 3多用户登录实现之八 基于Cookie的自动登录
2012-11-15 22:44 11054Spring Security为我们提供了两种方式的自 ... -
Spring Security 3多用户登录实现之七 用户验证失败处理改进
2012-11-11 11:24 9011验证登录失败后的处理的常见处理是返回到登录页面,并 ... -
Spring Security 3多用户登录实现之六 用户验证后处理
2012-11-11 00:42 4262验证用户后主要有这样两种走向,一种是验证失败,一种 ... -
Spring Security 3多用户登录实现之四 用户凭证
2012-11-10 20:00 5128前讲讲到AuthenticationFilt ... -
Spring Security 3多用户登录实现之三 验证过滤器
2012-11-10 19:58 15196当填写完成登录表单提交后,首先会被对应的提交表单提起 ... -
Spring Security 3多用户登录实现之二 多登录界面展示
2012-11-10 19:58 9834接前讲,首先针对一个多种用户类型的登录需求,需要先 ... -
Spring Security 3多用户登录实现一
2012-11-10 19:57 5123使用Spring Security 3 来实现多种 ... -
Spring security customize password encoder
2011-07-29 22:21 2475Spring security为我们 ... -
Spring security防用户重复登录
2011-07-28 23:28 4008使用Spring security如何防止用户的重复登录呢 ... -
Spring security用户权限数据库配置
2011-07-28 22:11 6594关于安全性服务,有两个重要的概念需要理解,一是认证,即判断 ... -
Spring security HTTP Basic认证
2011-07-27 21:54 5323Spring security框架集成了多种流行的安全认证 ...
相关推荐
在"Spring Security 3多用户登录实现之七 用户验证失败处理改进"这个主题中,我们将探讨如何优化Spring Security的用户验证流程,以提高用户体验和系统安全性。 1. **用户验证流程**: Spring Security的认证过程...
在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...
它提供了许多功能,包括登录表单、记住我功能、多身份验证器、基于注解的安全配置、CSRF 防护、OAuth2 客户端和服务端支持等。Spring Security 的目标是使开发人员能够快速地为应用程序添加安全功能,同时提供足够的...
Spring Security 是一个强大的Java安全框架,专为Java和Spring生态系统设计,用于实现全面的身份验证、授权和服务级安全功能。在Spring Security 3版本中,它引入了许多改进和新特性,以适应不断变化的安全需求和...
### 单点登录SSO解决方案之SpringSecurity+JWT实现 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种认证机制,允许用户仅通过一次登录就能访问同一域下的多个应用程序和服务。这种机制...
Spring Security和OAuth 2.0是两个在Web应用安全领域广泛应用的框架,它们结合使用可以构建强大的单点登录(SSO)和认证授权系统。在这个系统中,`xp-sso-server`代表了认证服务器,而`xp-sso-client-a`和`xp-sso-...
用户登录时,系统会验证提供的凭证,如果通过,则创建一个Authentication对象,存储在SecurityContext中。 2. **授权(Authorization)**:一旦用户被认证,授权过程就开始了,决定用户是否可以访问特定的资源或...
7. **OAuth2整合**:Spring Security可以与OAuth2框架集成,支持第三方身份验证服务,如Google、Facebook等,实现社交登录功能。 8. **Web安全**:文档涵盖了HTTP基本认证、表单登录、HTTP方法转换、XSS防护、点击...
在用户登录时,认证过程首先通过用户表来校验用户身份。认证成功后,授权过程会检查用户的关联角色,进一步确定用户的角色权限和角色菜单,从而决定用户能够访问的菜单和拥有哪些操作权限。 Spring Security为...
在Spring Security 3版本中,这个框架进一步完善了其特性和性能,使其成为开发者构建安全应用的首选工具。下面将详细探讨Spring Security 3中的关键知识点。 1. **核心组件**: - **Filter Chain**: Spring ...
通常,用户通过登录界面提供凭证,框架会验证这些凭证并创建一个Authentication对象。 2. **授权(Authorization)**:授权决定了已认证的用户可以访问哪些资源或执行哪些操作。Spring Security 支持角色基础的授权...
在这个项目中,它被用来实现用户权限管理,确保只有授权的用户才能访问特定的资源和服务。Spring MVC 作为 MVC 模式在 Spring 框架中的实现,负责处理 HTTP 请求和响应,而 MyBatis 是一个轻量级的持久层框架,用于...
- Spring Security 的验证机制允许开发者自定义认证过程,包括用户凭证的检查和存储。 - **直接设置 SecurityContextHolder 的内容**:允许在特定情况下直接设置用户的 Authentication 信息,从而绕过常规的身份...
### Spring Security3 相关知识点概述 #### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:识别系统中的安全隐患,并评估安全措施的有效性。 - **过程**:通过模拟攻击来测试系统的安全性,分析日志记录...
4. **登录与注销处理**:Spring Security会自动处理登录和注销请求,但你可能需要自定义登录页面或者实现特定的注销逻辑。 **三、客户端应用的SSO体验** 1. **用户访问**:当用户首次访问受保护的资源时,会被...
在Demo中,你可能会看到如何通过Spring Security实现用户登录、基于角色的权限控制,以及如何自定义登录失败和成功处理器。这些基本操作为理解Spring Security的全貌打下了基础。 总的来说,Spring Security通过...
标题中的"Spring Security 3 与 CAS 单点登录配置-Server"涉及到的是在Java Web开发中使用Spring Security 3框架集成Central Authentication Service (CAS)实现单点登录(Single Sign-On, SSO)的服务器端配置。...
在本主题中,我们将深入探讨如何使用Spring Security与数据库配合,实现用户认证。这一过程涉及多个步骤,包括配置、数据库模型、用户DetailsService 和权限控制。 1. **配置Spring Security** 在Spring Security...
- **身份认证**:这通常涉及自定义认证提供者,处理用户登录请求,从数据库或其他来源验证凭证。 - **访问授权**:设置访问控制规则,比如使用 @Secured 或 @PreAuthorize 注解,或者在配置文件中定义访问策略。...
在Spring Security 3.1版本中,它提供了一套全面的安全解决方案,涵盖了从用户认证到权限控制等多个层面。本文将深入探讨Spring Security 3.1的核心概念、配置以及实际应用。 1. **核心概念** - **Authentication...