- 浏览: 452498 次
- 性别:
- 来自: 大连
博客专栏
-
《Spring Secur...
浏览量:383396
最新评论
-
蒙奇君杰:
必须感谢一番!!!愿开源的态度为更多的人所拥有,所 认同!
关于对《Spring Security3》一书的翻译说明 -
601235723:
bbjavaeye 写道你好,有个问题请教一下我配了<b ...
《Spring Security3》第四章第一部分翻译下(自定义的UserDetailsService) -
bay0902:
中国互联网的脊梁
Spring Security 3全文下载 -
hdcustc:
项目源码下载 微博网盘里的那个依赖文件损坏了啊 能否提供个可 ...
Spring Security 3全文下载 -
i641878506:
楼主辛苦, 可以提供原书的原项目文件的下载么
Spring Security 3全文下载
文章列表
配置安全的密码
我们回忆第一章:一个不安全应用的剖析中,审计人员认为密码以明文形式进行存储是最高优先级的安全风险。实际上,在任何安全系统中,密码安全都是保证已经经过认证的安全实体是真实可 ...
JdbcDaoImpl的高级配置
JdbcDaoImpl拥有众多的可配置选项使其可以在已存在的schema中使用,或对其功能进行更复杂地调整。在很多场景下,很可能我们只需调整内置UserDetailsService类的配置而不需要写自己的代码。
有一个很重要的功能就是在用户(User)和权限(GrantedAuthority)之间添加一个隔离层(a level of indirection——找不到更好的译法了),这通过将GrantedAuthority按照逻辑划分成集合即组(group)来实现。用户能够被分配到一个或多个组,而组的成员被赋予了一系列的Granted ...
浅谈常见的前台技术(QClub活动记录)
- 博客分类:
- RIA&JS
7月23日有幸参加了在大连举行QClub活动,听到了两个精彩的演讲,并且在最后的Open Space阶段,作为主持人参与讨论了一个话题。此行很有收获,希望大连以后能有更多的技术交流活动,这对于推动大连的IT环境发展大有益处, ...
实现自定义的JDBC UserDetailsService
正如在前面章节中的那个练习,我们将以基本的JdbcDaoImpl作为起点,将其进行扩展以支持修改密码功能。
创建一个自定义的JDBC UserDetailsService
在com.packtpub.springsecurity.security包下创建如下的类:
public class CustomJdbcDaoImpl extends JdbcDaoImpl implements
IChangePassword {
public void changePassword(String usern ...
这次上传的部分内容是入门级的,比较简单,但是本章整体的功能还是非常重要的。
第四章
凭证安全存储
到现在为止,我们已经将JBCP Pets站点做了一些用户友好性方面的升级,包括一个自定义的登录页、修改密码以及remember me功能。
在本章中,我们将会把到目前为止都在使用的内存存储转移到数据库作为后台的认证存储。我们将会介绍默认的Spring Security数据库schema,并介绍自定义扩展JDBC实现的方式。
在本章的课程中,我们将会:
l 理解如何配置Spring
Security才能使用JDBC访问数据库服务以实现用户的存储和认证 ...
dojo是功能非常强大的JavaScript类库,论类库本身的功能,丝毫不逊色于jQuery,但是jQuery的轻量级和丰富的插件使其在互联网领域风生水起,知名度要高得多。dojo也提供了自己的组件库,名为dijit,它们拥有统一的生命周期。dojo这 ...
实现修改密码管理
现在我们将要对基于内存的UserDetailsService进行简单的扩展以使其支持用户修改密码。因为这个功能对用户名和密码存于数据库的场景更有用,所以基于o.s.s.core.userdetails.memory.InMemoryDaoImpl扩展的实现不会关注存储机制,而是关注框架对这种方式扩展的整体流程和设计。在第四章中,我们将通过将其转移到数据库后台存储来进一步扩展我们的基本功能。
扩展基于内存的凭证存储以支持修改密码
Spring Security框架提供的InMemoryDaoImpl内存凭证存储使用了一个简单的map来存储用户名以及关联的UserDet ...
Remember me是否安全?
对我们精心保护的站点来说,为了用户体验而添加的任何与安全相关的功能,都有增加安全风险的潜在可能。按照其默认方式,Remember me功能存在用户的cookie被拦截并被恶意用户重用的风险。下图展现了这种情况是如何发生的:
使用SSL(第四章进行讨论)以及其他的网络安全技术能缓解这种类型攻击的风险,但是要注意的是还有其他技术如跨站脚本攻击(XSS)能够窃取或损害一个remembered user session。为了照顾用户的易用性,我们不会愿意让用户的财产信息或个人信息因为remembered session的不合理使用而遭到 ...
Remember me
对于经常访问站点的用户有一个便利的功能就是remember me。这个功能允许一个再次访问的用户能够被记住,它通过在用户的浏览器上存储一个加密的cookie来实现的。如果Spring Security能够识别出用户提供的remember me cookie,用户将不必填写用户名和密码,而是直接登录进入系统。
与到目前为止我们介绍的其它功能不同,remember me功能并不是在使用security命名空间方式的配置中自动添加的。让我们尝试这个功能并查看它是怎样影响登录流程的。
实现remember me选项
完成这个练习后,将会为用户访问pet ...
理解退出功能
术语退出(Logout)指的是用户使其安全session失效的一种操作。一般来说,用户在退出后,将会被重定向到站点的非安全保护的界面。让我们在站点的页头部分添加一个“Log Out”的链接,并再次访问站点以了解其如何实现功能的。
在站点页头上添加“Log Out”链接
正如我们在第二章中讨论的那样,Spring Security将会监视一些特殊的URL,这些URL将会触发过滤器链中的一个或多个过滤器。用户实现退出的URL标识为/j_spring_security_logout。在header.jsp中添加一个退出的链接与为一个锚标签(即a标签)添加适合的href ...
第三章 增强用户体验
在本章中,我们将对JBCP Pets在线商店增加一些功能,这些新功能能够为用户提供更愉悦和可用的用户体验,同时提供一些对安全系统很重要的功能。
在本章中,我们将要:
l 按照你的意愿自定义登录和退出页面,并将它们与标准的Spring web MVC的控制器相关联;
l 使用remember me功能为用户提供便利,并理解其背后的安全含义;
l 构建用户账号管理功能,包括修改密码以及密码遗忘找回功能。
自定义登录页
关注这个系列的同学们有福了,我把前两章翻译的doc文档上传了,欢迎传播。有谬误之处,请不吝指正。
使用
Spring
表达式语言配置访问控制
基于角色标准投票机制的标准实现是使用
RoleVoter
,还有一种替代 ...
请求是怎样被授权的?
在Spring Security的默认过滤器链中,最后一个servelt过滤器是FilterSecurityInterceptor,它的作用是判断一个特定的请求是被允许还是被拒绝。在FilterSecurityInterceptor被触发的时候,安全实体已经经过了认证,所以系统知道他们是合法的用户。(其实也有可能是匿名的用户,译者注)。请记住的一点是,Authentication提供了一个方法((List<GrantedAuthority>
getAuthorities()),将会返回当前安全实体的一系列权限列表。授权的过程将使用这个方法提供的信息来 ...
安全的复杂之处:安全web请求的架构
借助于Spring
Security的强大基础配置功能以及内置的认证功能,我们在前面讲述的三步配置是很快就能完成的;它们的使用是通过添加auto-config属性和http元素实现的。
但不幸的是,应用实现的考量、架构的限制以及基础设施集成的要求可能使你的Spring Security实现远较这个简单的配置所提供的复杂。很多用户一使用比基本配置复杂的功能就会遇到麻烦,那是因为他们不了解这个产品的架构以及各个元素是如何协同工作以实现一个整体的。
理解web请求的整体流程以及它们是如何穿 ...
三步之内使我们的应用变得安全
尽管Spring
Security的配置可能会很难,但是它的作者是相当为我们着想的,因为他们为我们提供了一种简单的机制来使用它很多的功能并可以此作为起点。以这个为起点,额外的配置能够实现应用的分层次详细的安全控制。
我们将从我们不安全的在线商店开始,并且使用三步操作将它变成一个拥有基本用户名和密码安全认证的站点。这个认证仅仅是为了阐述使用Spring Security使我们应用变得安全的步骤,所以你可能会发现这样的方式会有明显不足,这将会引领我们在以后的配置中不断进行改良。
实现Spring Security的XM ...