- 博客(87)
- 问答 (1)
- 收藏
- 关注
原创 Spring Security 之 Session Management
Spring Security为我们提供了SessionAuthenticationStrategy接口来定制针对Session的一些特殊管理,如防Session的固定攻击, 防Session的单用户多次登陆等, 这些特殊的管理功能Spring Security都为我们提供了相应的类,如下示: 1. SessionFixationProtectionStrategy,...
2013-01-06 11:43:29
765
原创 Spring Security 之 Basic Authentication
Spring Security实现Basic Authentication 配置Security文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...
2013-01-04 11:58:33
360
原创 Maven scope解释
依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:compile (编译范围)compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。provided (已提供范围)provided 依赖只有在当JDK 或者一个容器已提供该依赖之...
2013-01-04 11:58:15
150
Spring Security 3用户登录实现之十二 授权判断
Spring Security在验证用户登录后的另一个重要步骤就是对受保护资源进行授权判断,以确定当前登录用户是否具有相应的权限访问当前受保护资源,针对受保护资源的权限设置在相关安全配置文件中进行设定,而当用户登录后,用户的相应权限也就随之确定,将两者进行比较,查看访问当前受保护资源的权限是否在当前登录用户的权限列表中,这一系列的过程都是由FilterSecurityIntercept...
2012-11-29 15:38:45
189
原创 Spring Security 3多用户登录实现之十一 退出
Spring Security的退出功能由LogoutFilter过滤器实现,只需要一段简单的配置就可以在项目中实现退出功能,如下示 <logout logout-url="/logout" logout-success-url="/login"/> 1.logout-url表示退出的URL地址 2.logout-success-url表示...
2012-11-19 21:41:07
250
原创 Spring Security 3用户登录实现之十 用户切换
部分情况下用户希望能够在不知道其它用户账号及密码的情况下,直接通过内部系统切换到另一个用户,比如一个项目经理希望在一个项目管理系统中直接切换到他的项目组下的成员账号上去,这时候就可以考虑使用Spring Security提供的Switch user功能。Switch user功能的大致流程是向服务器发送一个切换用户的请求,请求参数要有用户名称,SwitchUserFilter拦截这个请...
2012-11-17 18:15:57
622
原创 Spring Security 3多用户登录实现之九 基于持久化存储的自动登录
Spring Security实现自动登录的基本流程是,在第一次登录成功时将相关用户凭证及相关自动登录所需信息保存起来,在下次未登录访问受限资源时,会从中取出相关信息进行验证来实现自动登录的效果。 Spring Security除了提供将用户凭证信息存储在Cookie以便下次登录时进行自动登录的方式外,还支持将相关用户凭证信息及自动登录所需信息存储在持久化存储中的方...
2012-11-17 00:40:23
358
Spring Security 3多用户登录实现之八 基于Cookie的自动登录
Spring Security为我们提供了两种方式的自动登录,一种是基于Cookie的自动登录,想实现这种自动登录功能,需要使用TokenBasedRememberMeServices类,如果想扩展自己的特殊登录,可以继承该类;一种是基于持久化存储的自动登录,需要使用PersistentTokenBasedRememberMeServices类,两者都继承了抽象类AbstractRemem...
2012-11-15 22:44:39
739
Spring Security 3多用户登录实现之七 用户验证失败处理改进
验证登录失败后的处理的常见处理是返回到登录页面,并提醒用户发生了何种错误,Spring Security提供了一个通用的验证错误异常,这个抽象类的名字叫做AuthenticationException, 并且还提供了一个名为ExceptionMappingAuthenticationFailureHandler的验证发生异常进行处理的类, 查看源代码可以发现这个类中有一个类型为Map的...
2012-11-11 11:24:49
316
原创 Spring Security 3多用户登录实现之六 用户验证后处理
验证用户后主要有这样两种走向,一种是验证失败,一种是验证成功,验证失败后应该如何处理呢,验证成功又该如何处理呢? 验证失败的处理需要实现AuthenticationFailureHandler接口,我的前台用户认证失败的处理是这样的 package com.template.security.authentication.handler;import...
2012-11-11 00:42:32
196
原创 Spring Security 3多用户登录实现之五 验证用户凭证
有了用户凭证后, 如何验证用户的凭证是否正确呢, 这就需要借助AuthenticationManager了, AuthenticationManager可以包含多个AuthenticationProvider, 每个AuthenticationProvider都会针对特定的AuthenticationToken, 也就是用户凭证来验证相应的用户凭证是否正确。 来看看我为了实现验...
2012-11-11 00:42:15
325
原创 Spring Security 3多用户登录实现之四 用户凭证
前讲讲到AuthenticationFilter会拦截我们的登录表单提交信息并根据相应的信息构造出对应的用户凭证,这里的用户凭证将会贯穿整个Spring Security安全验证过程,如果验证用户凭证成功,我们可以为相应的用户凭证分配相应的权限,并将用户导向登录成功的界面。来看看这里的多种类型用户登录凭证的实现吧,这里主要实现了两种用户凭证,一种是前台用户登录凭证,一种是后台用户...
2012-11-10 20:00:34
460
原创 Spring Security 3多用户登录实现之三 验证过滤器
当填写完成登录表单提交后,首先会被对应的提交表单提起的过滤器进行拦截,这里过滤器的作用就是拦截登录表单提交验证请求,并根据相应的表单信息构造对应的登录凭证,这里来看看过滤器是如何构造相应的用户凭证。 package com.template.security.filter;import org.springframework.security.core.Authen...
2012-11-10 19:58:42
537
原创 Spring Security 3多用户登录实现之二 多登录界面展示
接前讲,首先针对一个多种用户类型的登录需求,需要先实现多种用户类型的登录界面的展示,Spring Security提供了这样一个接口来帮助我们实现多种用户类型的登录界面的展示,这个接口就是AuthenticationEntryPoint, 实现这样一个接口,我们就可以随心所欲的控制登录界面的展示了,当我们访问一个受权限的资源,而当前又没有权限访问时,Spring Security就会将...
2012-11-10 19:58:17
798
原创 Spring Security 3多用户登录实现一
使用Spring Security 3 来实现多种用户类型的登录方式,在我看来,大致分为两大步,第一步是控制多种用户登录类型的登录界面的展示,第二步是控制多种用户登录的验证方式,而第二大步又可分为三个小步来展开,第一小步是验证过滤器,第二小步是验证凭证的制作,第三小步是验证用户凭证,在这里我将就这几步的分析与实现一步一步展开来进行描述。 这里我假定有这样一个系统,分...
2012-11-10 19:57:52
1754
原创 Web项目文件组织结构
上图为一个Web项目的标准文件组织结构图 1. web.xml为Web项目的部署描述文件 2. lib文件夹下为Web项目使用的第三方库 3. classes文件夹下为编写的Java文件编译后的class文件 4. js, css, image为项目当中使用到的图片等资源文件,这些资源文件允许用户访问 5. WEB-INF文件下的资源为用户不可访问的 6. 在cla...
2012-11-10 02:07:00
863
原创 Tomcat配置https
为Tomcat服务器配置https服务 Step1. 生成证书 在命令行窗口输入以下命令: keytool -genkey -alias tomcat -keyalg RSA 该命令运行在Windows系统下 Step2.配置Connector 在Tomcat安装文件的Catalina目录下的service.x...
2012-10-26 16:22:56
100
通用分组
一.Grouper import java.util.List;/** * User: Zhong Gang */public interface Grouper<K, E> { GroupResults group(); K key(E element);} 二.AbstractGrouper...
2012-03-20 17:41:15
256
Hibernate unique使用
在Hibernate中对于一对一的关联关系配置时,提倡在many-to-one配置元素中配置unique="true",以达到约束该外键只能在数据表中出现一次,从而实现一对一的关联关系配置,但在实践中却发现如果相应的建表语句中如果没有设置相应的唯一性外键,那么即使加上这样的配置也是不起任何作用的。以下是我在实践中进行实验的例子,以一个Student有且仅有一个IDCARD的一对一关...
2011-11-28 22:16:45
287
Hibernate cascade在不同关联关系中的具体表现
在Hibernate中,针对持久化实体的配置文件中有Cascade这样一个属性,顾名思义就是级联,也就是说在操作当前实体时,针对当前实体的操作会影响到相应配置的关联实体。比如针对当前实体进行保存操作时,会同时保存与其关联的实体,当然这种额外操作的产生取决于你是否在当前实体的配置文件中对关联实体的元素配置了Cascade属性。而需要进行级联的操作可能涉及到增加,修改,删除等相应的数据库操作...
2011-11-22 21:47:30
125
Hibernate element使用
一.Person package com.aaxis.model;import java.util.List;/** * User: Zhong Gang */public class Person { private Integer id; private Integer version; private Stri...
2011-11-20 20:43:44
309
Hibernate 单表实现树结构
来看看通过单表来实现一个树形结构的方式。这里假设有这样一个实体名叫儿子,一个儿子只能有一个父亲,而一个父亲可能有多个儿子,因为父亲本身也是他自身父亲的儿子,所以在这里他们的属性没有什么区别。 一。Sonpackage com.aaxis.model;/** * User: Zhong Gang */public class Son { pri...
2011-11-13 21:10:11
270
Hibernate save persist merge探究
先来看看hibernate-reference.pdf上对persist和save的说明吧 从上面得知persist和save方法都可以对持久化实体进行保存,但它们的作用范围却是有着明显的区别,当你调用persist方法对持久化实体进行保存时,它必须在事务的包裹下,如果脱离事务,那么是不会向数据库发送插入语句的,也就是说当你调用persist方法时,必须首先开启...
2011-10-27 17:59:29
153
Hibernate关联关系疑问
有这样两个持久化对象Person和Book,两者是一对多双向关联关系,对Person.hbm.xml的bag元素设置了cascade="all"属性。下面来看看我的测试类以及测试结果来引出我的疑问。 package com.aaxis;import com.aaxis.model.Book;import com.aaxis.model.Person;i...
2011-10-27 17:32:51
115
Hibernate Search配置及简单应用
Hibernate Search是一款集成Apache Lucene的搜索jar包。 一。配置 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId...
2011-10-25 16:06:32
198
Hibernate的三种配置方式
对于Hibernate的配置方式,有三种,一种是通过外部的属性文件进行配置,一种是通过外部的xml文件进行配置,还有一种就是通过编程的方式进行配置,但对于编程式配置来说,不便于参数的集中管理与修改,所以这里主要介绍两种外部文件的配置方式。 一。属性文件配置方式 hibernate.connection.url=jdbc:mysql://localhost:3...
2011-10-24 16:58:15
182
dynamic-insert,dynamic-update 我有话要说
在之前的一个项目中,Team leader说在每一个持久化实体的配置文件中的class元素上加上dynamic-insert="true" dynamic-update="true"可以一定程度上增加与数据库操作相关的速度,当时半信半疑就加上了,也没有自己去进行深入的了解。但最近在练习Hibernate时却发现,事实并非如此,抛开速度上的问题不管,单说加上这两个属性后,这两个属性起作用的...
2011-10-21 17:39:49
228
Hibernate ORM 对象关联关系映射初解
这几天花了点时间写了点关于Hibernate对象关联关系映射的各种处理方式及实例讲解,特别适合初学者,希望大家踊跃批评指正以及拍砖。详情请参见附件中的pdf文件。 资源共享嘛大家该给个回应嘛,呵呵。...
2011-10-21 09:42:09
113
原创 Hibernate ORM - 继承关联关系之joined-subclass
Hibernate继承关联关系映射处理之joined-subclass,以这种方式处理继承关联关系映射,会将继承树中的每一个类都在数据库中进行映射,有着各自对应的数据表。与前两种处理方式,除去配置文件的不同之外,其它部分没有区别,如不了解,请参见前文关于subclass的讨论或者本文最后附上的源码。 配置文件 <?xml version="1.0" encodi...
2011-10-20 12:32:48
211
原创 Hibernate ORM - 继承关联关系之union-subclass
Hibernate继承关联关系映射之union-subclass, 以这种方式处理的继承关联关系映射会将每一个具体子类映射为数据库中的一张数据表,而父类则不会有数据表映射。因为除去配置文件的方式不同之外,其他部分没有变化,所以在这里我就只贴出相关配置文件的改动之处,如对代码等有不了解之处,可参见前文,有详细描述,也可以参见我在最后附上的源码。 配置文件 <?xm...
2011-10-20 12:27:29
169
原创 Hibernate ORM - 继承关联关系之sub-class
Hibernate对于继承的关联关系有三种处理方式,一种是将整个继承树的持久化实体在一张表中进行映射,一种是将继承树中的每一个持久化实体在数据库中为其各自建立一张表来进行映射,一种是将继承树的子类在数据库中为其各自建立一张表来进行映射。在这里先来看第一种方式的配置方式。 一。Person package com.orm.model;/** * Create...
2011-10-20 12:11:27
152
原创 Hibernate ORM - 多对多双向中间实体关联关系
对于多对多的关联关系处理,前面我讲解了在数据库中建立第三张表用于维护两者的关联关系,现在我来讲解另一种比较常用且通用的处理方式,那就是将这个多对多的关联关系拆解成两个一对多的关联关系,意取从这个多对多的关联关系中提取出一个中间实体,用来表示两者的多对多关联关系,这个中间实体在数据库中存在相应的数据表映射。 一。Husband package com.orm.model...
2011-10-20 09:27:55
143
原创 Hibernate ORM - 多对多双向连接表关联关系
对于多对多的关联关系处理,一种方式是使用连接表来维持两者的多对多关联关系,也就是说除去两者在数据库中相应的数据表外,还会创建第三张表用来维护两者的多对多关联关系。 一。Husband package com.orm.model;import java.util.List;/** * Created by IntelliJ IDEA. * User: ...
2011-10-20 09:27:26
158
原创 Hibernate ORM - 一对多双向组合关联关系
对于一对多的关联关系方式还有一种比较特殊的做法就是将多方视为一方的组合元素,这样多方并不会在数据库中存在相应的数据表,而是由表征两者一对多关联关系的连接表来存储多方的数据,并且该连接表的主键标识符即是对建立与一方一对多关联关系的外键标识。 一。Husband package com.orm.model;import java.util.List;/**...
2011-10-19 13:34:46
176
原创 Hibernate ORM - 一对多双向连接表关联关系
对于一对多的关联关系,除去上一单讲的在多方对应的数据表中增加一个外键字段,用来标识一方外,还有一种做法就是将两者的关联关系提取出来,单独建立一个第三方数据表用以维护两者的一对多关联关系。 一。Husband package com.orm.model;import java.util.List;/** * Created by Intel...
2011-10-19 13:11:02
155
原创 Hibernate ORM - 一对多双向关联关系
对于一对多的关联关系,通常的做法就是在多方映射的数据表中增加一个外键字段,用以保持一方的主键标识符,维持一对多的关联关系。 一。Husband package com.orm.model;import java.util.List;/** * Created by IntelliJ IDEA. * User: Zhong Gang * Da...
2011-10-19 10:51:20
235
原创 Hibernate ORM - 一对一连接表关联关系
对于一对一关联关系的建立,除了前面讲的方式,即将关联关系由某一方维持外,还可以采用另外一种基于第三张表的关联关系方式,即除去两方各自映射的数据表外,再在数据库中建立第三张表用以维持两者的一对一关联关系。下面来看看这是如何实现的吧。 一。Husband package com.orm.model;/** * Created by IntelliJ IDEA....
2011-10-19 10:29:54
162
原创 Hibernate ORM - 一对一主键关联关系
对于一对一的关联关系,除了为其中一方的数据表增加外键字段外,另一种做法就是将其中一方的标识符字段即作为主键又作为保持两者一对一关联关系的外键字段。下面来看看,这种做法是如何实现的呢? 一。Husband package com.orm.model;/** * Created by IntelliJ IDEA. * User: Zhong Gang ...
2011-10-19 10:05:47
153
原创 Hibernate ORM - 一对一外键关联关系
对于持久化实体间一对一的关联关系来说,在代码层面来看,没有什么太大的问题,如果你想建立一个一对一的单向关联关系,那么只需要在代码中增加一个对对方实体的引用即可,如果你想建立一个一对一的双向关联关系,那么只需要在双方实体中增加对对方实体的引用即可。而从数据表创建的层面上来看,则会根据你对持久化实体的配置文件的不同配置而有所不同。所以对于一对一关联关系,重点在于你在数据表层面上想怎样实现这样...
2011-10-18 18:00:24
154
空空如也
亲,为什么会有人看都没看就踩啊 人性啊
2011-07-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人