章丘市建设局网站,专做农产品的网站有哪些,微信商城app,郑州网站建设氵汉狮网络1.概述 本文将说明如何使用Maven设置Spring Security#xff0c;并介绍使用Spring Security依赖项的特定用例。 最新的Spring Security版本可以在Maven Central上找到。 这是上一篇有关Maven的Spring的后续文章 #xff0c;因此对于非安全性Spring依赖项#xff0c;这是开始… 1.概述 本文将说明如何使用Maven设置Spring Security并介绍使用Spring Security依赖项的特定用例。 最新的Spring Security版本可以在Maven Central上找到。 这是上一篇有关Maven的Spring的后续文章 因此对于非安全性Spring依赖项这是开始的地方。 2.使用Maven的Spring Security 2.1。 Spring安全核心 核心Spring Security支持即spring-security-core 包含身份验证和访问控制功能并支持独立非Web应用程序方法级安全性和JDBC propertiesorg.springframework.security.version3.1.4.RELEASE/org.springframework.security.versionorg.springframework.version3.2.4.RELEASE/org.springframework.version
/properties
dependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-core/artifactIdversion${org.springframework.security.version}/version
/dependency 请注意我们正在使用3.1.4.RELEASE版本的Spring Security – Spring和Spring Security的发布时间表不同 因此版本号之间没有11的匹配。 理解上也很重要的事实是从直觉上讲 Spring Security 3.1.x不依赖于Spring 3.1.x发行版 –这是因为Spring Security 3.1.x是在Spring 3.1之前发行的。 计划是在将来的发行版中更紧密地调整这些依赖关系–有关更多详细信息请参见JIRA。–目前这具有实际意义我们将在下一步进行探讨。 2.2。 Spring安全网 要添加对Spring Security的Web支持 需要spring-security-web依赖项 dependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-web/artifactIdversion${org.springframework.security.version}/version
/dependency 它包含筛选器和相关的Web安全基础结构可在Servlet环境中启用URL访问控制。 2.3。 Spring Security和较旧的Spring Core依赖关系问题 这个新的依赖关系也给Maven依赖关系图带来了一个问题 -如上所述Spring Security可能依赖于3.0.x Spring依赖关系-这可能导致这些较旧的依赖关系在类路径之上而不是较新的3.2.x Spring。文物。 要了解为什么会发生这种情况我们需要查看Maven如何解决冲突 –在版本冲突的情况下Maven会选择最接近树根的jar。 在我们的例子中 spring-jdbc既由spring-orm 3.2.2.RELEASE版本定义也由spring-security-web 以3.0.7.RELEASE版本定义–因此在两种情况下 spring- jdbc的定义距项目根pom的深度为1。 因此在我们自己的pom中定义spring-orm和spring-security-web的顺序实际上很重要-第一个优先级较高因此我们可以在classpath上使用这两个版本 。 要解决此问题我们将必须在自己的pom中显式定义一些Spring依赖项 而不要依赖隐式Maven依赖项解析机制-这样做会将特定依赖项置于pom的深度0如在pom中定义的那样。 pom本身因此将优先处理。 以下所有内容都属于同一类别并且都需要直接定义或者对于多模块项目都必须在父项的dependencyManagement元素中进行明确定义 dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-expression/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${org.springframework.version}/version
/dependency 2.4。 spring-security-config等 要使用丰富的Spring Security XML名称空间将需要spring-security-config依赖项 dependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-config/artifactIdversion${org.springframework.security.version}/versionscoperuntime/scope
/dependency 没有应用程序代码应针对此依赖关系进行编译因此应将其范围限定为runtime 。 最后LDAPACLCAS和OpenID支持在Spring Security中具有它们自己的依赖性 spring-security-ldap spring-security-acl spring-security-cas和spring-security-openid 。 3.使用快照和里程碑 Spring提供的自定义Maven存储库中提供了Spring Security 里程碑和快照 -有关如何配置它们的更多详细信息请参阅如何使用快照和里程碑 。 4。结论 本文讨论了将Spring Security与Maven结合使用的实际细节。 这里介绍的Maven依赖关系当然是一些主要的依赖关系还有其他一些值得一提并且还没有削减的依赖关系。 尽管如此这应该是在启用Maven的项目中使用Spring的一个很好的起点。 参考来自bakgung博客的JCG合作伙伴 Eugen Paraschiv的Maven的Spring Security 。 翻译自: https://www.javacodegeeks.com/2013/05/spring-security-with-maven.html