`
zcw_java
  • 浏览: 303074 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一、Spring Security基础了解

 
阅读更多
公司目前在用Spring Security框架,用来控制权限;
安全包含两块
一,验证
  1.效验用户合法性
  2.对一些受保护的信息是否可访问
二,认证
  1.当验证1通过,可以给该用户或者说是主体授权

这两块用了很久,但今天还想了一会,又查了查所谓(AA,authentication和authorization,一般翻译成认证和授权。认证是识别客户,授权的前提是认证,授权给指定客户权限。)
认证是对用户是否可以执行操作的判断或者说是授权
验证是对用户权限判断,是否可执行一些特定操作

目前支持认证一体化和如下认证技术:
HTTP BASIC authentication headers (一个基于IEFT RFC 的标准)
HTTP Digest authentication headers (一个基于IEFT RFC 的标准)
HTTP X.509 client certificate exchange (一个基于IEFT RFC 的标准)
LDAP (一个非常常见的跨平台认证需要做法,特别是在大环境)
Form-based authentication (提供简单用户接口的需求)
OpenID authentication
基于预先建立的请求头进行认证(比如Computer Associates Siteminder)
JA-SIG Central Authentication Service (也被称为CAS,这是一个流行的开源单点登
录系统)
Transparent authentication context propagation for Remote Method Invocation
(RMI) and HttpInvoker (一个Spring 远程调用协议)
Automatic "remember-me" authentication (这样你可以设置一段时间,避免在一段时
间内还需要重新验证)
Anonymous authentication (允许任何调用,自动假设一个特定的安全主体)
Run-as authentication (这在一个会话内使用不同安全身份的时候是非常有用的)
Java Authentication and Authorization Service (JAAS)
JEE Container autentication (这样,你可以继续使用容器管理认证,如果想的话)

1.4.1.1. Core - spring-security-core.jar
包含了核心认证和权限控制类和接口, 运程支持和基本供应API。使用Spring Security
所必须的。支持单独运行的应用, 远程客户端,方法(服务层)安全和JDBC 用户供应。
包含顶级包:
org.springframework.security.core
org.springframework.security.access
org.springframework.security.authentication
org.springframework.security.provisioning
org.springframework.security.remoting
1.4.1.2. Web - spring-security-web.jar
包含过滤器和对应的web 安全架构代码。任何需要依赖servlet API 的。你将需要它,如
果你需要Spring Security Web 认证服务和基于URL 的权限控制。主包是
org.springframework.security.web。
1.4.1.3. Config - spring-security-config.jar
包含安全命名控制解析代码(因此我们不能直接把它用在你的应用中)。你需要它, 如果使
用了Spring Security XML 命名控制来进行配置。主包是
org.springframework.security.config。
1.4.1.4. LDAP - spring-security-ldap.jar
LDAP 认证和实现代码,如果你需要使用LDAP 认证或管理LDAP 用户实体就是必须的。顶
级包是org.springframework.security.ldap。
1.4.1.5. ACL - spring-security-acl.jar
处理领域对象ACL 实现。用来提供安全给特定的领域对象实例,在你的应用中。顶级包是
org.springframework.security.acls。
1.4.1.6. CAS - spring-security-cas-client.jar
Spring Security 的CAs 客户端集成。如果你希望使用Spring Security web 认证整合
一个CAS 单点登录服务器。顶级包是org.springframework.security.cas。
1.4.1.7. OpenID - spring-security-openid.jar
OpenID web 认证支持。用来认证用户, 通过一个外部的OpenID 服务。
org.springframework.security.openid。需要OpenID4Java。
1.4.2. 获得源代码
Spring Security 是一个开源项目,我们大力推荐你从subversion 获得源代码。这样你
可以获得所有的示例,你可以很容易的建立目前最新的项目。获得项目的源代码对调试也
有很大的帮助。异常堆栈不再是模糊的黑盒问题,你可以直接找到发生问题的那一行,查
找发生了什么额外难题。源代码也是项目的最终文档,常常是最简单的方法,找出这些事
情是如何工作的。
要像获得项目最新的源代码,使用如下subversion 命令:
svn checkout
http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/spring-security/trunk/
你可以获得特定版本的源代码
http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/spring-security
/tags/.
Security 命名空间配置
从Spring-2.0开始可以使用命名空间的配置方式。使用它呢,可以通过附加xml 架构,
为传统的spring beans 应用环境语法做补充。你可以在spring 参考文档得到更多信息。命
名空间元素可以简单的配置单个bean,或使用更强大的,定义一个备用配置语法,这可以
更加紧密的匹配问题域,隐藏用户背后的复杂性。简单元素可能隐藏事实,多种bean 和
处理步骤添加到应用环境中。比如,把下面的security 命名元素添加到应用环境中,将会
为测试用途,在应用内部启动一个内嵌LDAP 服务器:
<security:ldap-server />
这比配置一个Apache 目录服务器bean 要简单得多。最常见的替代配置需求都可以使用
ldap-server 元素的属性进行配置,这样用户就不用担心他们需要设置什么,不用担心bean
里的各种属性。[1]。使用一个良好的XML 编辑器来编辑应用环境文件,应该提供可用的属
性和元素信息。我们推荐你尝试一下SpringSource 工具套件因为它具有处理spring 组合
命名空间的特殊功能。
要开始在你的应用环境里使用security 命名空间,你所需要的就是把架构声明添加到你的
应用环境文件里:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
...
</beans>

在许多例子里,你会看到(在示例中)应用,我们通常使用"security"作为默认的命名空间,
而不是"beans",这意味着我们可以省略所有security 命名空间元素的前缀,使上下文更
容易阅读。如果你把应用上下文分割成单独的文件,让你的安全配置都放到其中一个文件
里,这样更容易使用这种配置方法。你的安全应用上下文应该像这样开头
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
...
</beans:beans>
分享到:
评论

相关推荐

    SpringSecurity.pdf

    入门阶段主要是了解Spring Security的基本概念和配置方法。进阶阶段需要深入学习如何定制认证和授权流程、如何集成各种认证方式以及如何在实际项目中进行应用。高级阶段则涉及框架的原理深入、性能优化、安全漏洞的...

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    spring security3 中文版本

    Spring Security 3.0.1 是在 Spring Security 3.0 的基础上进行的一次 bug 修复版本,主要针对先前版本中存在的问题进行了修正。此次版本未引入新的功能,但修正了一些已知的问题,增强了稳定性。 ##### 1.4 获取 ...

    SpringSecurity安全框架基础Demo

    这个"SpringSecurity安全框架基础Demo"旨在帮助开发者快速理解和实践Spring Security的核心功能。 **1. 用户认证** 在Spring Security中,用户认证主要由Authentication对象负责。当用户尝试访问受保护的资源时,...

    spring security3.1.3 和 spring security3.0.0

    接下来,Spring Security 3.1.3是3.1.x系列的一个维护版本,它在3.0.0的基础上做了进一步优化和bug修复,以提高稳定性和性能。这个版本的一些亮点包括: 1. **Remember Me服务增强**:提供了更多的选项来管理“记住...

    SpringSecurity入门小demo(SSM+Spring Security)

    在 `HelloSpringSecurity` 文件中,你可能看到以下关键代码: - **WebSecurityConfigurerAdapter** 类:这是 Spring Security 提供的配置适配器,可以覆盖其方法来定制安全规则。 - `configure(HttpSecurity http)...

    Spring Security 3多用户登录实现一

    以上是Spring Security 3中实现多用户登录的基础步骤。实际项目中,你可能还需要考虑其他因素,如记住我功能、CSRF防护、国际化登录页面等。通过深入了解Spring Security的各个组件和API,你可以构建出满足各种复杂...

    Spring Security 教程(Spring Security Tutorial)1

    - 学习 Spring Security 的第一步通常是创建一个简单的 "Hello World" 应用,这通常涉及添加必要的依赖和配置,以便启动基础的安全功能。 3. **单元测试**: - 在安全相关的开发中,单元测试是必不可少的,因为它...

    spring security3.0所需要的最精简的jar包

    Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理。它提供了认证、授权和访问控制功能,使得开发者可以轻松地在应用程序中实现复杂的安全需求。在3.0版本中,Spring Security 已经相当成熟,提供...

    基本的spring mvc + spring security实现的登录(无数据库)

    这个简单的示例为初学者提供了一个了解Spring MVC和Spring Security交互的基础平台,有助于理解这两个框架在实际项目中的作用和集成方式。通过深入研究和实践,可以进一步提升Web应用的安全性和可维护性。

    SpringSecurity源码 SpringSecurity jar包 简单的Demo

    这些基本操作为理解Spring Security的全貌打下了基础。 总的来说,Spring Security通过提供一套强大的安全工具,使得开发人员能够专注于编写业务逻辑,而不是安全性。深入了解其源码,可以帮助我们更好地理解其工作...

    初识 Spring Security - v1.1.pdf

    - **了解前置知识**:为了更好地学习Spring Security,读者需要具备一定的基础知识,包括但不限于AOP(面向切面编程)、Servlet等相关概念;如果熟悉Java语言则更易于理解Spring Security的相关概念和操作。 #### ...

    SpringMVC集成SpringSecurity

    在提供的文件列表“springSecurity3”中,可能包含了实现上述集成步骤的代码示例、配置文件等,通过学习这些文件,你可以更深入地了解SpringMVC与SpringSecurity的集成过程和细节。记住,安全是Web应用的基础,理解...

    spring security 3.1学习资料 及 附件下载

    阅读这份文档,可以了解到Spring Security的架构设计、配置方法以及实战案例。而"Spring Security 3.1.zip"文件可能包含了示例代码或额外的教程资源,用于辅助学习和实践。 总结,Spring Security 3.1作为一款强大...

    Spring Security实战例子

    通过这个Spring Security实战例子,你可以深入了解Spring Security的配置、认证和授权机制,以及如何与数据库集成。实践是最好的老师,动手完成这四个小项目将有助于巩固理解,并为你在实际项目中应用Spring ...

    Spring Security 3 中文 chm

    教程部分则会通过实例引导你一步步实现Spring Security的基础和高级功能,帮助你快速上手并熟练掌握。 总的来说,这个资源包是学习Spring Security 3的理想资料,无论你是初学者还是有一定经验的开发者,都能从中...

    spring security 项目配置源码

    Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个"Spring Security 项目配置...通过逐步研究和运行项目,你可以掌握Spring Security的基础知识,并为未来的安全开发打下坚实基础。

    SpringSecurity+MVC入门Demo

    通过这个"SpringSecurity+MVC入门Demo",初学者可以了解如何在Spring MVC应用中集成Spring Security,实现用户认证和授权的基本流程,为后续深入学习和实践打下基础。这个Demo应该包含了配置文件、控制器、视图和...

    spring security3 开发手册

    Spring Security 3作为该框架的一个版本,提供了丰富的安全性配置选项,涵盖了从基础的认证和授权到复杂的单点登录和方法保护等各个方面。 ### 基础篇 #### Hello World示例 Spring Security的入门通常以一个简单...

    spring-boot spring-security-oauth2 完整demo

    本篇文章将围绕“spring-boot spring-security-oauth2 完整demo”这一主题,详细阐述这三个框架如何协同工作,以及如何通过类似微信的方式获取token并访问资源。 首先,Spring Boot是基于Spring框架的快速开发工具...

Global site tag (gtag.js) - Google Analytics