- 博客(64)
- 收藏
- 关注
《Java应用架构设计:模块化模式与OSGi》序
“分而治之”是解决复杂问题的有效方式。面对业务功能复杂的企业级软件,我们会寻找各种方式和标准进行拆分,其目的无非是降低每一部分的复杂性并提高软件重用的便利性。但是,到目前为止,取得的效果并不理想。应用程序依然是庞然大物,难以进行维护和管理,而在重用方面,最常见的方式恐怕还是复制和粘贴。各方面似乎都不尽如人意。在本书中,作者提供了解决这类问题的另一种方案,那就是模块化。借助模块化技术,我们...
2013-11-14 16:17:05 220
《Spring In Action》第三版译序
《Spring In Action》第三版已经上市多日了,这本书是另外一位朋友和我一起翻译的,翻译期间受益很多,大家在阅读过程中如果发现什么错误的话,也欢迎在这里反馈给我! 当写下这些文字的时候,恰好是2012年的最后一天。我们顺利度过了所谓的“世界末日”,此时的大连,外面漫天飞雪,似乎在迎接即将到来的新年,正如那句诗所言:冬天到了,Spring还会远吗,是的,希望这本书能够帮你更好地学...
2013-07-12 12:19:52 170
Tomcat源码解读系列(四)——Tomcat类加载机制概述
声明:源码版本为Tomcat 6.0.35 在本系列的第二篇文章中,曾经介绍过在Tomcat启动时会初始化类加载器(ClassLoader),来处理整个Web工程中Class的加载问题。 类加载机制是Java平台中相当重要的核心技术,待笔者有所积累后会再次讨论这个话题。在一般的业务开发中我们可能较少接触和使用ClassLoader,但是在进行框架级程序...
2012-09-23 22:23:51 229
原创 OSGi技术在Java Web开发中的应用
随着Java SE对模块化功能原生支持的一再推迟(据最新的消息,Jigsaw项目——JavaSE中的标准模块系统——的开发工作相对滞后,已经延期到了Java 9中,而Java 9到2015年才有希望发布),OSGi作为事实标准的Java模块化实现得到了长足的发展,尤其是随着云计算和分布式技术的兴起,OSGi这种模块化、动态部署的核心功能将会受到越来越多的重视。目前OSGi规范的主流实...
2012-09-17 05:35:33 150
Tomcat源码解读系列(三)——Tomcat对HTTP请求处理的整体流程
声明:源码版本为Tomcat 6.0.35前面的文章中介绍了Tomcat初始化的过程,本文将会介绍Tomcat对HTTP请求的处理的整体流程,更细节的。在上一篇文章中,介绍到JIoEndpoint中的内部类Acceptor用来接受Socket请求,并调用processSocket方法来进行请求的处理,所以会从本文这个方法开始进行讲解。 protected boolean ...
2012-09-09 22:34:04 200
Tomcat源码解读系列(二)——Tomcat的核心组成和启动过程
声明:源码版本为Tomcat 6.0.35前面的文章中介绍了Tomcat的基本配置,每个配置项也基本上对应了Tomcat的组件结构,如果要用一张图来形象展现一下Tomcat组成的话,整个Tomcat的组成可以如下图所示: Tomcat在接收到用户请求时,将会通过以上组件的协作来给最终用户产生响应。首先是最外层的Server和Service来提供整个运行环境的基础设施...
2012-09-02 16:59:07 116
Tomcat源码解读系列(一)——server.xml文件的配置
Tomcat是JEE开发人员最常用到的开发工具,在Java Web应用的调试开发和实际部署中,我们都可以看到Tomcat的影子。大多数时候,我们可以将Tomcat当做一个黑盒来看待,只需要将编写的Java Web工程进行部署即可,但是,在遇到一些比较复杂难解决的问题时,如果我们了解了Tomcat的内部实现原理将会处理起来更得心应手更快地定位问题。另外,通过学习Tomcat的源码还可以更加深入...
2012-08-25 07:31:16 108
原创 dojo1.7功能介绍:面向方面编程(AOP)功能与原理
声明:本文为笔者原创,但首发于InfoQ中文站,详见文末声明 日前发布的dojo 1.7版本对其源码进行了很大的变更。在迈向2.0版本之际,dojo提供了许多新的功能,也对许多已有的功能进行了修改,具体来说新版本更好地支持AMD规范、提供了新的事件处理系统(计划在2.0版本中替换dojo.connect API)和DOM查询模块、更新对象存储相关接口(ObjectStore)等。在本...
2012-06-03 06:09:17 161
Spring Security 3全文下载
本书已经翻译完成,提供给大家下载以下地址为ITEYE的电子书下载地址:http://lengyun3566.iteye.com/blog/pdf附件是我用的word转换成的pdf,也可下载本书版权归原作者,希望大家不要将其用于商业目的。 ...
2012-03-15 20:31:34 155
《Spring Security3》附录翻译(参考资料)
附录:参考材料 在本附录中,将会涉及到一些我们感觉有用的参考材料(并相当缺乏文档),而将其插入到章节的内容中又会觉得过于综合。JBCP Pets示例代码起步 就像我们在第一章:一个不安全应用的剖析中所描述的那样,我们假设你已有了Eclipse 3.4(或3.5)IDE,并包含Web Tools Package(WTP)。示例代码按每...
2012-02-13 22:58:44 196
《Spring Security3》第十三章翻译(迁移到Spring Security 3)
第十三章迁移到Spring Security 3 在最后一章中,我们将会了解从Spring Security2迁移到Spring Security3时常见问题的相关情况。 在本章中,我们将会:l 了解SpringSecurity 3的重要增强;l 理解已有的SpringSecurity 2应用迁移到Spring Secu...
2012-02-13 22:50:15 142
《Spring Security3》第十二章翻译(Spring Security扩展)
第十二章Spring Security扩展 在本章中,我们将会探索一个SpringSecurity扩展项目的功能——这是很令人兴奋的功能即将Windows Active Directory认证(或其它支持Kerberos的设施)与SpringSecurity集成以为你的Intranet用户提供完善的单点登录体验。 在本章中,我们将会...
2012-02-13 22:38:50 319
《Spring Security3》第十一章(客户端证书认证)第二部分翻译
在Spring Security中配置客户端证书认证 不同于我们到目前为止所使用的认证机制,使用客户端证书认证会使得用户的请求已经被服务器预先认证(pre-authenticated)了。因为服务器(Tomcat)已经确定用户提供了合法且可信的证书,所以Spring Security只需信任这个assertion的合法性。 安全登录过程的另一个...
2012-02-13 22:23:05 212
《Spring Security3》第十一章(客户端证书认证)第一部分翻译
第十一章客户端证书认证(ClientCertificate Authentication) 尽管用户名和密码认证特别常见,就像我们在第一章:一个不安全应用的剖析和第二章:SpringSecurity起步所讨论的那样,form认证的存在允许用户提供各种类型的凭证。Spring Security也为这种需求提供了支持,在本章中我们将不再讨论基于form的认证并探索使用...
2012-02-13 22:00:18 281
《Spring Security3》第十章(CAS)第二部分翻译(CAS高级配置)
高级CAS配置 CAS认证框架提供了高级的配置和与CAS服务的数据交换。在本节中,我们将会介绍CAS集成的高级配置。在我们觉得重要的地方将会包含相关的CAS配置指令,但是要记住的是CAS配置是很复杂的并超出了本书的范围。从CAS assertion中获取属性 在CAS服务器传递ticket校验结果时,可以将基于CAS认证时查询到的信息进行...
2012-01-19 13:07:40 198
《Spring Security3》第十章(CAS)第一部分翻译(CAS基本配置)
第十章 使用中心认证服务(CAS)进行单点登录 在本章中,我们将会介绍使用中心认证服务(Central Authentication Service,CAS)为基于SpringSecurity的应用提供单点登录门户(single sign-on portal)。在本章的内容中,我们将会:l 学习CAS,包括它的架构以及对于系统管理员和各种规模组织的好处;...
2012-01-19 12:54:19 186
《Spring Security3》第九章(LDAP)第三部分翻译(LDAP明确配置)
明确的LDAP bean配置 在本节中,我们带领你学会明确配置以下两项功能所需要的bean集合,即连接外部的LDAP服务器和支持授权的LdapAuthenticationProvider。正如其它基于bean的配置,你可能不希望这样做,除非你发现security命名空间风格的配置不能支持你的业务或技术需求——在这种情况下,请继续阅读。配置外部的LDAP服务器引...
2012-01-19 12:44:04 226
《Spring Security3》第九章(LDAP)第二部分翻译(LDAP高级配置)
LDAP的高级配置 一旦我们要了解LDAP基础集成之外的知识,就会发现security XML命名空间方式的配置中,Spring Security LDAP模块还有许多的可用配置。它包括查询用户的个人信息、用户认证的其它方式以及使用LDAP作为UserDetailsService且与DaoAuthenticationProvider结合。实例JBCP LDAP...
2012-01-19 12:36:09 422
《Spring Security3》第九章(LDAP)第一部分翻译(LDAP基本配置)
第九章 LDAP目录服务 在本章中,我们将会了解轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)以及它怎样集成到使用Spring Security的应用中以提供认证、授权和用户信息服务。在本章的内容中,我们将会:l 学习一些LDAP协议相关的基本概念以及服务器实现;l 在SpringSecurity中...
2012-01-19 12:22:20 316
《Spring Security3》第八章第三部分翻译(属性交换)
属性交换(Attribute Exchange) OpenID另外一个有趣的功能就是如果使用OpenID的站点需要,OpenID provider提供(基于用户的许可)典型的用户注册数据,如名字、e-mail、生日。这个功能叫做属性交换(Attribute Exchange,AX)。下图展现了在OpenID请求中要求属性交换是如何添加进去的: AX属性值(如果...
2012-01-18 15:46:02 133
《Spring Security3》第八章第二部分翻译(OpenID用户的注册)
OpenID用户的注册问题 请使用我们前面的技术来测试Yahoo!OpenID——例如,https://me.yahoo.com/pmularien。你会发现它并不好用,像其它OpenID提供者那样。这带出了OpenID结构的一个很重要的问题,并体现出了启用OpenID用户注册的重要性。OpenID标识是如何处理的 Yahoo!返回的实...
2012-01-18 13:39:15 199
《Spring Security3》第八章第一部分翻译(OpenID与Spring Security)
第八章 对OpenID开放 OpenID是很流行的可信任身份管理方式,它允许用户通过一个单独的可信任提供者(provider)管理其身份信息。这个便利的功能为用户提供了安全的方式即使用可信任的OpenID提供者来存储器密码和个人信息,并可以随意的基于请求获取其个人信息。另外,启用OpenID功能的站点能够确信用户提供的OpenID凭证信息就是他们所说的人。 在本章中,我...
2012-01-17 22:38:52 158
《Spring Security3》第七章第三部分翻译(ACL的注意事项)
典型ACL部署所要考虑的事情 实际部署SpringACL到业务应用是很复杂的。我们总结了Spring ACL要注意的事情,它们在大多数Spring ACL实现场景中都存在。关于ACL的伸缩性和性能模型 对于小型和中型应用,添加ACL功能是很容易的,尽管它增加数据库存储和影响运行时性能,这个影响可能不会那么明显。但是,取决于ACL和ACE...
2012-01-17 22:25:23 148
《Spring Security3》第七章第二部分翻译(高级ACL)(下)
支持ACL的Spring表达式语言 SpEL对ACL系统的支持仅限于方法安全,通过使用hasPermission SpEL方法。典型情况下,这种类型的访问检查会与引用一个或多个传入参数(进行@PreAuthorize检查)或集合过滤(进行@PostAuthorize检查)联合使用。 遗憾的是,启用ACL方法安全配置需要我们配置所有的方法安全以明确的Spring B...
2012-01-17 22:17:37 174
《Spring Security3》第七章第二部分翻译(高级ACL)(上)
高级ACL话题 一些高级的话题在我们配置ACL环境时略过了,包括处理ACE许可授权,在运行时根据GrantedAuthority确定某种类型的ACL变化是否允许。既然现在我们已经有了一个运行环境,那我们要开始了解这些更高级的话题。Permission如何工作 许可授权(permission)只不过是简单的逻辑标识符用一个整数的二进制位来表示...
2012-01-10 22:59:27 133
《Spring Security3》第七章第一部分翻译(访问控制列表ACL)
第七章 访问控制列表(ACL)在本章中,我们将会介绍访问控制列表这个复杂话题,它能够提供域对象实例层次授权的丰富模型。Spring Security提供了强大的访问控制列表,但是复杂且缺少文档,它能够很好的满足小到中型规模的实现。在本章的内容中,我们将会:l 理解访问控制列表的概念模型;l 了解SpringSecurity ACL模型中的关于访问控制列表的...
2011-12-30 22:02:21 239
《Spring Security3》第六章第七部分翻译(认证事件处理与小结)
认证事件处理 有一个重要的功能只能通过基于bean的配置就是自定义处理认证事件。认证事件使用了Spring的时间发布机制,它基于o.s.context.ApplicationEvent事件模型。Spring事件模型使用并不广泛,却能够很有用处——特别在认证系统中——如当你想绑定特定行为到认证领域的行动上去的时候。 事件是典型的订阅-发布模式,通知订阅者...
2011-11-22 22:37:01 150
《Spring Security3》第六章第六部分翻译(Spring Security基于bean的高级配置)
Spring Security基于bean的高级配置 正如我们在前面几页中看到的那样,基于bean的Spring Security配置尽管比较复杂,但是提供了一定层次的灵活性,如果复杂应用需要超过security XML命名空间风格配置所允许的功能时会用到。 我们将利用这个章节来阐明可用的一些配置选项以及怎么使用。尽管我们不能提供每个可能属性的细节,但是我们鼓励...
2011-11-22 22:25:44 124
《Spring Security3》第六章第五部分翻译(手动配置Spring Security设施的bean)
手动配置Spring Security设施的bean 如果你工作要求的环境很复杂而Spring Security的基本功能——尽管非常强大——不能满足所有的要求,你可能最终需要自己从头构建Spring Security的过滤器链以及支持实施。这是在Spring Security参考手册中没有完全提及的部分,但是却难住了很多人。有些人将这种类型的配置成为Spring...
2011-10-19 22:05:27 105
《Spring Security3》第六章第四部分翻译(异常处理)
理解和配置异常处理 SpringSecurity使用简单的分发器模式将框架抛出的异常转移到明确的处理行为中,这将会影响用户对安全资源的访问。Spring Security过滤器链中最后几个过滤器之一的o.s.s.web.access.ExceptionTranslationFilter负责检查在认证和授权过程中(在过滤器链的最后一个过滤器即FilterSecurity...
2011-10-18 23:35:11 108
《Spring Security3》第六章第三部分翻译(Session的管理和并发)
Session的管理和并发Spring Security的一个常见配置就是检测相同的用户以不同的session登录安全系统。这被称为并发控制(concurrency control),是session管理(session management)一系列相关配置功能的一部分。严格来说,这个功能并不是高级配置,但是它会让很多新手感到迷惑,并且最好在你对Sping Security整体功能有所了...
2011-10-17 23:22:14 127
《Spring Security3》第六章第二部分翻译(自定义AuthenticationProvider)
实现自定义的AuthenticationProvider在很多场景下,你的应用需要跳出SpringSecurity功能的边界,可能会需要实现自己的AuthenticationProvider。回忆在第二章中AuthenticationProvider的角色,在整个认证过程中,它接受安全实体请求提供的凭证(即Authentication对象或authentication tok...
2011-09-18 00:23:17 245
《Spring Security3》第六章第一部分翻译(自定义安全过滤器)
第六章 高级配置和扩展到目前为止,我们已经介绍了大多数Spring Security组件的理论以及架构和使用。我们的JBCP Pets商业站点也在逐渐变成一个安全的web应用,我们将会深入讲解一些更有难度的挑战。在本章的课程中,我们将会:l 实现我们自己的安全过滤器,解决一个很有趣的问题,即对特定的用户角色用IP过滤的方式增强站点的安全;l 构建自定义的Authe...
2011-09-18 00:14:51 84
javascript类机制
JavaScript是一种功能强大的语言,起初它只是用于在浏览器中完成一定的Dom操作和特殊效果。随着AJAX和RIA技术的广泛普及,JavaScript发挥了越来越重要的作用,JavaScript的代码量越来越大,对可维护性的要求也越来越高。JavaScript提供了特有的类机制,但是在语法习惯上与传统面向对象的语言有很大的不同,这使得不少的JavaScript开发人员感到困惑,本文将会对...
2011-09-17 15:23:18 68
《Spring Security3》第五章第四部分翻译(方法安全的高级知识和小结)
方法安全的高级知识方法安全的表现力不仅局限于简单的角色检查。实际上,一些方法安全的注解能够完全使用Spring表达式语言(SpEL)的强大功能,正如我们在第二章中讨论URL授权规则所使用的那样。这意味着任意的表达式,包含计算、Boolean逻辑等等都可以使用。使用bean包装类实现方法安全规则 另外一种定义方法安全的形式与XML声明有关,它可以包含在Spri...
2011-09-11 14:50:59 129
《Spring Security3》第五章第三部分翻译(保护业务层)
保护业务层 到目前为止,在本书中我们的关注点都主要在JBCP Pets 应用web层面的安全。但是,在实际的安全系统规划中,对服务方法应该给予同等的重视,因为它们能够访问系统中最重要的部分——数据。 SpringSecurity支持添加授权层(或者基于授权的数据处理)到应用中所有Spring管理的bean中。尽管很多的开发人员关注层的安全,其实业务...
2011-09-11 14:36:57 162
《Spring Security3》第五章第二部分翻译下(实现授权精确控制的方法——页面级权限)...
使用控制器逻辑进行有条件渲染内容 现在,让我们将刚刚用<authorize>标签实现的例子改成用java代码的方式。为了简洁起见,我们只实现一个例子,但实现基于控制器检查的其它例子是很简单直接的。添加有条件显示的Log In链接 为了替代SpringSecurity的<authorize>标签,我们假设在模...
2011-09-11 14:26:29 151
《Spring Security3》第五章第二部分翻译上(实现授权精确控制的方法——页面级权限)...
实现授权精确控制的方法 精确的授权指的是基于用户特定的请求进行授权的应用功能特性。不同于我们在第二章:Spring Security起步、第三章增强用户体验和第四章凭证安全存储中的粗粒度的授权,精确的授权一般指的是对页面中的部分进行选择性显示的功能,而不是限制访问一个完整的页面。现实世界中的应用将会花费可观的时间用在规划精确授权的细节上。 SpringSecu...
2011-09-11 14:22:19 112
《Spring Security3》第五章第一部分翻译(重新思考应用功能和安全)
第五章 精确的访问控制 到目前为止,我们已经为JBCP Pets站点添加了用户友好的一些功能,包括自定义的登录页以及修改密码、remember me功能。 在本章中,我们将要学习规划应用安全的技术以及用户/组的划分。其次,我们学习两种实现精确访问控制的实现方式——这会影响应用中页面的授权。然后,我们会了解Spring Security如何通过使用方法注解和AOP的方...
2011-08-25 05:51:56 93
《Spring Security3》第四章第四部分翻译(Remember me后台存储和SSL)附前四章doc文件...
到此,前四章翻译完成,欢迎朋友提些意见! 将Remember me功能迁移至数据库 现在你可能会意识到我们remember me功能的实现,能够在应用重启前很好的使用,但在应用重启时用户的session会被丢失。这对用户来说会不太便利,他们不应该关心JBCP Pets的维护信息。 幸运的是,Spring Security提供了将re...
2011-08-05 21:55:15 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人