在这篇文章中,我们将讨论Spring框架和安全性以及模块基础。我们将在我接下来的帖子中开发一些简单而先进的例子。
现在,开发安全应用程序是避免出现故障、窃取或黑客攻击我们的机密数据或未经授权的访问的一个非常关键的方面。我们可以使用Spring安全模块来开发安全应用程序,以限制对应用程序的访问。
目录
Spring4安全
最初,Spring框架使用一个独立的第三方框架来支持Spring应用程序的安全性:Acegi安全性。但开发安全应用程序并不是一种简单的方法,而且也存在一些缺点。
springacegi安全性的缺陷
- 大量XML配置
- 学习曲线过多
- 不支持批注
为了避免所有这些问题,Spring团队(Pivotal团队)将“;Acegi Security”;framework集成到Spring framework中,作为“;Spring Security”;模块。
Spring 4框架有以下模块来为基于Spring的应用程序提供安全性:
- Spring安全
- Spring安全SAML
- OAuthSpring安全
- Spring Security Kerberos
- 云安全Spring
在Spring框架中,“;Spring Security”;模块是其余Spring安全模块的基础模块。
我们将讨论Spring安全&8221;本帖中的模块。我们将在我接下来的帖子中讨论一些简单和高级的实时示例。
一旦我们熟悉了,我们将回到四个模块的其余部分Spring安全&8221;模块在我即将到来的帖子。
什么是Spring安全?
Spring Security是Spring框架的安全模块之一。它是一个JavaSE/JavaEE安全框架,为Web应用程序或企业应用程序提供身份验证、授权、SSO和其他安全功能。
春安官网:https://projects.spring.io/spring-security/
Spring Security文档网站:https://docs.spring.io/spring-security/site/docs/
最新的稳定,Spring安全模块版本是“;4.0.2.发布和#8221;
Spring4安全特性
Spring 3.x安全框架提供了以下特性:
- 认证和授权。
- 支持基本、摘要和基于表单的身份验证。
- 支持LDAP身份验证。
- 支持OpenID身份验证。
- 支持SSO(单点登录)实现。
- 支持跨站点请求伪造(CSRF)实现。
- &;支持HTTP Cookies。
- 支持ACL的实现
- 支持“;通道安全”;这意味着在HTTP和HTTPS之间自动切换。
- 支持I18N(国际化)。
- 支持JAAS(Java身份验证和授权服务)。
- 使用springwebflow框架支持流授权。
- 使用springweb服务支持WS-Security。
- 支持XML配置和注解。很少或最少的XML配置。
Spring 4.x安全框架支持以下新功能:
- 支持WebSocket安全性。
- 支持Spring数据集成。
- CSRF令牌参数解析程序。
我们将开发一些简单的例子来演示这些特性。
Spring4安全级别
Spring Security支持以下两个级别的授权
- 方法级授权
- URL级授权
注意Spring Security通过使用AOP(面向切面编程)支持方法级安全性,即通过方面。Spring Security通过使用Servlet过滤器支持URL级别的安全性。
Spring4的安全优势
Spring 4安全框架提供了以下优势:
- 开源安全框架
- 灵活、易于开发和单元测试应用程序
- 声明式安全编程
- 易于扩展
- 易于维护
- 充分利用springdi(依赖注入)和AOP。
- 我们可以开发松耦合的应用程序。
Spring4安全子模块
Spring4安全模块又分为11个子模块. 它有以下子模块:
- Spring安全核心模块
- Spring安全配置模块
- Spring Security Web模块
- Spring安全标签库模块
- Spring Security AspectJ模块
- Spring Security ACL模块
- Spring Security LDAP模块
- Spring Security OpenID模块
- Spring Security CAS模块
- Spring安全加密模块
- Spring安全远程模块
在Spring框架的安全子模块中,Spring安全核心子模块是所有安全子模块的基础模块。
为了支持这11个Spring安全模块,Spring framework有以下jar:
- spring-security-core-4.0.2。释放.jar
- Spring安全配置。释放.jar
- spring-security-web-4.0.2。释放.jar
- spring-security-taglibs-4.0.2。释放.jar
- spring-security-aspects-4.0.2。释放.jar
- spring-security-acl-4.0.2。释放.jar
- spring-security-ldap-4.0.2。释放.jar
- spring-security-openid-4.0.2。释放.jar
- spring-security-cas-4.0.2。释放.jar
- spring-security-crypto-4.0.2。释放.jar
- spring-security-remoting-4.0.2。释放.jar
几乎所有的Spring Security jar都有类似的Maven或Gradle依赖项,如下所示:
Spring安全专家
<dependencies>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>[Spring Security Module Name Here]</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
</dependencies>
Spring安全等级
dependencies {
compile
"org.springframework.security:[Spring Security Module Name Here]:4.0.2.RELEASE"
}
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
</dependencies>
build.gradle
dependencies {
compile "org.springframework.security:spring-security-core:4.0.2.RELEASE"
}
这就是Spring4安全模块基础知识的全部内容。现在是时候开始开发一些简单的示例来探索Spring安全模块了。
我们将使用springstsuiteide、Maven或Gradle构建工具和java7/8来开发我们的应用程序。
如果你喜欢我的帖子或有任何问题/建议,请给我留言。