Spring Security参考文献外文翻译资料

 2022-08-24 11:42:20

Spring Security

Reference Documentation

Ben Alex
Luke Taylor

Spring Security: Reference Documentation

by Ben Alex and Luke Taylor

  1. 8.RELEASE

Spring Security

Table of Contents

Preface x

  1. Getting Started 1
  2. Introduction 2
    1. What is Spring Security? 2
    2. History 4
    3. Release Numbering 4
    4. Getting Spring Security 5

Project Modules 5

Core - spring-security-core.jar 5

Web - spring-security-web.jar 5

Config - spring-security-config.jar 5

LDAP - spring-security-ldap.jar 5

ACL - spring-security-acl.jar 6

CAS - spring-security-cas-client.jar 6

OpenID - spring-security-openid.jar 6

Checking out the Source 6

  1. Security Namespace Configuration 7
    1. Introduction 7

Design of the Namespace 8

web.xml Configuration 8

A Minimal lt;httpgt; Configuration 9

What does auto-config Include? 10

Form and Basic Login Options 11

Using other Authentication Providers 12

Adding a Password Encoder 13

Remember-Me Authentication 14

Adding HTTP/HTTPS Channel Security 14

Session Management 15

Detecting Timeouts 15

Concurrent Session Control 15

Session Fixation Attack Protection 16

OpenID Support 16

Attribute Exchange 17

Adding in Your Own Filters 17

Setting a Custom AuthenticationEntryPoint 19

The lt;global-method-securitygt; Element 19

Adding Security Pointcuts using protect-pointcut 20

Customizing the AccessDecisionManager 21

3.0.8.RELEASE iii

Spring Security

  1. Sample Applications 23
    1. Tutorial Sample 23
    2. Contacts 23
    3. LDAP Sample 24
    4. CAS Sample 24
    5. Pre-Authentication Sample 25
  2. Spring Security Community 26
    1. Issue Tracking 26
    2. Becoming Involved 26
    3. Further Information 26
  3. Architecture and Implementation 27
  4. Technical Overview 28
    1. Runtime Environment 28
    2. Core Components 28

SecurityContextHolder, SecurityContext and Authentication Objects 28

Obtaining information about the current user 29

The UserDetailsService 29

GrantedAuthority 30

Summary 30

What is authentication in Spring Security? 30

Setting the SecurityContextHolder Contents Directly 32

ExceptionTranslationFilter 33

AuthenticationEntryPoint 34

Authentication Mechanism 34

Storing the SecurityContext between requests 34

Security and AOP Advice 35

Secure Objects and the AbstractSecurityInterceptor 36

What are Configuration Attributes? 36

RunAsManager 36

AfterInvocationManager 37

Extending the Secure Object Model 37

  1. Core Services 40
    1. The AuthenticationManager, ProviderManager and

AuthenticationProviders 40

DaoAuthenticationProvider 41

Erasing Credentials on Successful Authentication 41

In-Memory Authentication 42

JdbcDaoImpl 43

Authority Groups 43

3.0.8.RELEASE

iv

Spring Security

What is a hash? 43

Adding Salt to a Hash 44

Hashing and Authentication 44

  1. Web Application Security 45
  2. The Security

    剩余内容已隐藏,支付完成后下载完整资料


    Spring Security参考文献

    第一部分:入门

    本指南的后面部分提供了有关框架体系结构和实现类的深入讨论,如果要进行任何深入的自定义,则需要继续了解这些内容。在这一部分中,我们将介绍Spring Security 3.0,简要概述该项目的历史,并逐渐简单地看一下如何开始使用该框架。特别的是,我们将研究命名空间配置。与传统的Spring bean方法相比,命名空间配置提供了一种更为简单的方法来保护应用程序安全,比如在传统的Spring bean方法中,您必须单独连接所有实现类。

    我们还将看一下可用的示例应用程序,他们值得一试。在阅读后面的部分之前,运行它们并进行一些试验-随着对框架的了解加深,您可以重新研究它们。请访问项目网站[http://static.springsource.org/spring-security/site/index.html],因为它具有有关构建项目的相关信息,以及指向文章,视频和教程的链接。

    1.简介

    1.1什么是Spring Security?

    Spring Security为基于J2EE的企业软件应用程序提供全面的安全服务。 特别强调支持使用The Spring Framework构建的项目,该框架是用于企业软件开发的领先J2EE解决方案。 如果您不使用Spring开发企业应用程序,我们热烈鼓励您仔细研究它。 熟悉Spring,尤其是Spring依赖注入原理,将帮助您更轻松地掌握Spring Security。

    人们使用Spring Security的原因有很多,但是大多数人是在发现J2EE的Servlet规范或EJB规范的安全功能缺乏典型企业应用程序场景所需的深度之后被吸引到该项目的。 在提及这些标准时,重要的是要认识到它们在WAR或EAR级别上不是可移植的。 因此,如果您切换服务器环境,则在新的目标环境中重新配置应用程序的安全性通常需要大量工作。 使用Spring Security不仅克服了这些问题,还为您带来了许多其他有用的、可自定义的安全性功能。

    您可能知道应用程序安全性的两个主要方面是“身份验证”和“授权”(或“访问控制”)。 这是Spring Security的两个主要领域。 “认证”是建立委托人的过程,即所谓的委托人(“委托人”通常是指可以在您的应用程序中执行操作的用户,设备或其他系统)。 “授权”是指确定是否允许委托人在您的应用程序内执行操作的过程。 为了到达需要授权决策的位置,主体的身份已经通过身份验证过程确定。 这些概念是通用的,并非完全针对于Spring Security。

    在身份验证级别,Spring Security支持广泛的身份验证模型。这些认证模型中的大多数要么由第三方提供,要么由相关的标准机构(例如Internet工程任务组)开发。另外,Spring Security提供了自己的一组身份验证功能。具体来说,Spring Security当前支持与所有以下技术的身份验证集成:

    bull;HTTP BASIC身份验证标头(基于IEFT RFC的标准)

    bull;HTTP摘要身份验证标头(基于IEFT RFC的标准)

    bull;HTTP X.509客户端证书交换(基于IEFT RFC的标准)

    bull;LDAP(一种非常常见的跨平台身份验证方法,在大型环境中尤其如此)

    bull;基于表单的身份验证(用于简单的用户界面需求)

    bull;OpenID认证

    bull;基于预先建立的请求标头的身份验证(例如Computer Associates Siteminder)

    bull;JA-SIG中央身份验证服务(也称为CAS,这是一种流行的开源单点登录系统)

    bull;用于远程方法调用(RMI)和HttpInvoker(Spring远程协议)的透明身份验证上下文传播

    bull;自动的“记住我”身份验证(因此,您可以在方框中打勾,以避免在预定的时间段内重新进行身份验证)

    bull;匿名身份验证(允许每个呼叫自动采用特定的安全身份)

    bull;运行身份验证(如果一个呼叫应以不同的安全身份进行则很有用)

    bull;Java身份验证和授权服务(JAAS)

    bull;JEE容器认证(因此,如果需要,您仍然可以使用容器管理的身份验证)

    bull;Kerberos

    bull;Java开源单一登录(JOSSO)*

    bull;OpenNMS网络管理平台*

    bull;AppFuse *

    bull;AndroMDA *

    bull;Mule ESB *

    bull;直接Web请求(DWR)*

    bull;Grails*

    bull;Tapestry*

    bull;JTrac *

    bull;Jasypt *

    bull;Roller *

    bull;Elastic Path*

    bull;Atlassian Crowd*

    bull;您自己的身份验证系统(请参见下文)

    (*表示由第三方提供;请查看我们的集成页[http://acegisecurity.org/ powering.html],以获取最新详细信息的链接)

    由于Spring Security具有了灵活的身份验证模型,因此许多独立软件供应商(ISV)都采用了Spring Security。 这样做使他们能够快速将解决方案与最终客户的需求进行集成,而无需进行大量的工程设计或要求客户更改环境。 如果以上认证机制都不满足您的需求,可以基于Spring Security的开放平台,非常简单地编写您自己的认证机制。 Spring Security的许多企业用户需要在不遵循任何特定安全性标准的“旧版”系统集成,Spring Security乐于在此类系统上“表现出色”。

    有时仅凭身份验证过程是不够的,您还需要根据主体与应用程序交互的方式来区分安全性。 例如,您可能要确保请求仅通过HTTPS到达,以防止密码被窃听或使最终用户免受中间人攻击。 这对于保护密码恢复过程免遭暴力攻击特别有用,或者仅是使人们更难以复制应用程序的关键内容,这特别有用。 为了帮助您实现这些目标,Spring Security完全支持自动的“通道安全性”,以及用于人工用户检测的JCaptcha集成。

    无论如何进行身份验证,Spring Security都会提供一组深层的授权功能。 与授权有关的三个主要领域是:授权Web请求,授权是否可以调用方法以及授权访问各个域对象实例。 为了帮助您理解差异,请分别考虑Servlet规范Web模式安全性,EJB容器管理的安全性和文件系统安全性中的授权功能。 Spring Security在所有这些重要领域提供了深层功能,我们将在本参考指南的后面部分中进行探讨。

    1.2 历史

    Spring Security于2003年末开始,称为“ Spring Acegi安全系统”。 在Spring Developers的邮件列表上提出了一个问题,询问是否考虑过基于Spring的安全性实现。 当时Spring社区相对较小(尤其是与今天的规模相比!),实际上Spring本身只是从2003年初开始才作为SourceForge项目存在的。对此问题的回答是,这是一个有价值的领域,尽管由于缺乏时间,有一段时间停止了对它的探索。

    考虑到这一点,一个简单的安全性实施方案被构建了出来,但并未进行发布。 几周后,Spring社区的另一个成员询问了相关的安全性,并在当时向他们提供了此代码。 随后提出了其他一些要求,到2004年1月,大约有20个人正在使用该代码。 这些开拓性用户与其他被建议订购SourceForge项目的人一起参加了会议,由此该项目于2004年3月正式成立。

    在早期,该项目没有任何自己的身份验证模块。 身份验证过程依赖于Container Managed Security,而Acegi Security则专注于授权。 起初这是很合适的,但是随着越来越多的用户请求附加的容器支持,特定于容器的身份验证领域接口的基本限制变得显而易见。 还有一个相关问题,即在容器的类路径中添加新的JAR,这是导致最终用户困惑和配置错误的常见原因。

    随后引入了Acegi Security特定的身份验证服务。 大约一年后,Acegi Security正式成为了Spring Framework的子项目。 1.0.0版本最终于2006年5月发布-经过两年半的时间在众多生产软件项目中被频繁的使用,并进行了数百次改进和社区贡献。

    Acegi Security于2007年底成为正式的Spring Portfolio项目,并更名为“ Spring Security”。

    今天,Spring Security拥有强大而活跃的开源社区。 支持论坛上有成千上万条有关Spring Security的消息。 有一个活跃的开发人员核心从事代码本身的工作,还有一个活跃的社区,该社区还定期共享补丁并为同辈提供支持。

    1.3版本编号

    了解Spring Security发行版编号的工作方式很有用,因为它将帮助您确定迁移到项目的未来发行版中涉及的工作(或缺乏工作量)。 正式地,我们使用Apache可移植运行时项目版本控制指南,该指南可在http:// apr.apache.org/versioning.html上查看。 为了方便起见,我们引用该页面上的介绍:

    “版本使用整数的标准三元组表示:MAJOR.MINOR.PATCH。 基本目的是MAJOR版本是不兼容的API的大规模升级。 MINOR版本保留了与较早的次要版本的源代码和二进制兼容性,并且PATCH级别的更改是完全兼容的(向前和向后)。”

    1.4获取Spring Security

    您可以通过多种方式获得Spring Security。 您可以从Spring主下载页面[http://www.springsource.com/download/community?project=Spring%20Security]下载打包的发行版,从Maven Central存储库中下载单个jar(以及示例WAR文件)(或 一个用于快照和里程碑版本的SpringSource Maven存储库),或者,您也可以自己从源代码构建项目。 有关更多详细信息,请参见项目网站。

    项目模块

    在Spring Security 3.0中,代码库已细分为单独的jar,可以更清楚地将不同的功能区域和第三方依赖项分开。 如果使用Maven构建项目,则将这些模块添加到pom.xml中。 即使您不使用Maven,我们也建议您查阅pom.xml文件以了解第三方依赖关系和版本,另外,检查示例应用程序中包含的库是一个好建议。

    Core-spring-security-core.jar

    包含核心身份验证和访问控制类和接口,远程支持和基本配置API。使用Spring Security的任何应用程序都需要。支持独立的应用程序,远程客户端,方法(服务层)安全性和JDBC用户配置。包含顶级软件包:

    bull;org.springframework.security.core

    bull;org.springframework.security.access

    bull;org.springframework.security.authentication

    bull;org.springframework.security.provisioning

    bull;org.springframework.security.remoting

    Web-spring-security-web.jar

    包含过滤器和相关的Web安全基础结构代码。任何与servlet API依赖的东西。如果您需要Spring Security Web认证服务和基于URL的访问控制,则将需要它。

    主要软件包是org.springframework.security.web。

    Config-spring-security-config.jar

    包含安全名称空间解析代码(因此不包含您可能直接在应用程序中使用的任何内容)。如果您使用Spring Security XML名称空间进行配置,则需要它。

    主要软件包是org.springframework.security.config。

    LDAP-spring-security-ldap.jar

    LDAP身份验证和配置代码。如果您需要使用LDAP认证或管理LDAP用户条目,则为必需。顶级包是org.springframework.security.ldap。

    ACL-spring-security-acl.jar

    专门的域对象ACL实现。用于将安全性应用于应用程序中的特定域对象实例。顶级包是org.springframework.security.acls。

    CAS-spring-security-cas-client.jar

    Spring Security的CAS客户端集成。如果您想通过CAS单点登录服务器使用Spring Security Web认证。顶级包是org.springframework.security.cas。

    OpenID-spring-security-openid.jar

    OpenID Web身份验证

    剩余内容已隐藏,支付完成后下载完整资料


    资料编号:[234870],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。