Maven的Spring Security

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:

<properties><org.springframework.security.version>3.1.4.RELEASE</org.springframework.security.version><org.springframework.version>3.2.4.RELEASE</org.springframework.version>
</properties>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${org.springframework.security.version}</version>
</dependency>

请注意,我们正在使用3.1.4.RELEASE版本的Spring Security – Spring和Spring Security的发布时间表不同 ,因此版本号之间没有1:1的匹配。

理解上也很重要的事实是,从直觉上讲, 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依赖项:

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${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-orm3.2.2.RELEASE版本)定义,也由spring-security-web (以3.0.7.RELEASE版本)定义–因此,在两种情况下, spring- jdbc的定义距项目根pom的深度为1。 因此,在我们自己的pom中定义spring-ormspring-security-web的顺序实际上很重要-第一个优先级较高,因此我们可以在classpath上使用这两个版本

要解决此问题,我们将必须在自己的pom中显式定义一些Spring依赖项 ,而不要依赖隐式Maven依赖项解析机制-这样做会将特定依赖项置于pom的深度0(如在pom中定义的那样)。 pom本身),因此将优先处理。 以下所有内容都属于同一类别,并且都需要直接定义,或者对于多模块项目,都必须在父项的dependencyManagement元素中进行明确定义:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>${org.springframework.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${org.springframework.version}</version>
</dependency>

2.4。 spring-security-config

要使用丰富的Spring Security XML名称空间,将需要spring-security-config依赖项:

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${org.springframework.security.version}</version><scope>runtime</scope>
</dependency>

没有应用程序代码应针对此依赖关系进行编译,因此应将其范围限定为runtime

最后,LDAP,ACL,CAS和OpenID支持在Spring Security中具有它们自己的依赖性: spring-security-ldapspring-security-aclspring-security-casspring-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(转)Babel-现在开始使用 ES6

在 2 月 20 号 ECMAScript 第六版就正式推出了&#xff0c;这门语言一直保持稳定快速的发展而且新功能也在慢慢被现在主流的 JavaScript 引擎所接受。不过要想在浏览器端或者 Node 端直接运行 ES6 代码还得等上一些日子。幸好 TC39 (负责研究开发 EMCAScript 规格的组织) 做了大…

微信公众平台——被动回复用户消息

微信公众平台——被动回复用户消息 开发模式下的回复信息基础接口&#xff0c;可用来向用户回复文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息。 1、回复文本消息 function ReplyText(Msg: TMessage; MsgText: String): RawByteString; varX: I…

Java EE CDI bean范围

Java EE平台的上下文和依赖注入&#xff08;CDI&#xff09;是一项功能&#xff0c;可帮助将Java EE平台的Web层和事务层绑定在一起。 CDI是一组服务&#xff0c;可以一起使用&#xff0c;使开发人员可以轻松地在Web应用程序中使用企业bean和JavaServer Faces技术。 在CDI中&a…

利用shell脚本进行代码备份和数据库备份

1、实际并不是进行代码备份&#xff0c;而是对上传的附件备份&#xff0c; 毕竟代码在我这边主要是通过svn管控的&#xff0c;不需要进行备份了&#xff0c;但是为了偷懒&#xff0c;还是将整个文件夹直接打包了。 name"your code file name" #你代码文件夹的名称# t…

php强类型 vscode,VSCode + WSL 2 + Ruby环境搭建图文详解

vscode配置ruby开发环境vscode近年来发展迅速&#xff0c;几乎在3年之间就抢占了原来vim、sublime text的很多份额&#xff0c;犹记得在2015-2016年的时候&#xff0c;ruby推荐的开发环境基本上都是vim和sublime text&#xff0c;然而&#xff0c;随着vscode的发展&#xff0c;…

关于网页导航栏制作的几种方法与常见问题解决(新人向)

无序列表是html页面排版经常用到的非常实用的标签&#xff0c;但是新手在使用无序列表时&#xff0c;经常会在横向排版上出现问题&#xff0c;笔者在这里提供了笔者在使用无序列表制作网页导航栏时的几种方法与常见问题的解决问题。&#xff08;以css内部样式为例&#xff09; …

JPA – Querydsl投影

在我的上一篇文章中&#xff1a; JPA –基本投影 –我已经提到了构建JPA投影的两种基本可能性。 这篇文章为您带来了更多示例&#xff0c;这次基于Querydsl框架。 注意&#xff0c;这里我指的是Querydsl版本3.1.1。 重塑构造函数表达式 看下面的代码&#xff1a; ... import …

3n+1问题中的几个小的注意点

3038 3n1问题 时间限制: 1 s空间限制: 32000 KB题目等级 : 白银 Silver题解题目描述 Description3n1问题是一个简单有趣而又没有解决的数学问题。这个问题是由L. Collatz在1937年提出的。克拉兹问题&#xff08;Collatz problem&#xff09;也被叫做hailstone问题、3n1问题、Ha…

Mysql函数访问oracle,Oracle与MySql函数

Oracle:1. 截取字符串中字符前的字符串(不包括字符)select Substr(P.SCHEDULE_CODE, 1, Instr(P.SCHEDULE_CODE, (, 1)-1) from M_SUB_TASK_SCHEDULE_LOG P;2. 截取字符串中字符前的字符串(包括字符)select Substr(P.SCHEDULE_CODE, 1, Instr(P.SCHEDULE_CODE, (ret, 1)) fr…

html 语义化标签拾遗

1、del和ins标签 兼容性&#xff1a;浏览器全部支持 del&#xff1a;定义文档中已被删除的文本。 ins&#xff1a;定义已经被插入文档中的文本。 <!DOCTYPE html><html lang"zh"><head><meta charset"UTF-8" /><title>ht…

Spring MVC表单教程

本教程将展示如何在Spring MVC中处理表单提交。 我们将定义一个控制器来处理页面加载和表单提交。 您可以在GitHub上获取代码。 先决条件&#xff1a; 您应该有一个运行中的Spring MVC应用程序。 如果尚未设置正常的Spring MVC应用程序&#xff0c;请按照本教程进行操作 。 对…

一个跳转提示页面---JS

//一个跳转提示页面 <script type"text/javascript"> var s5; function go(){ document.getElementById("chan").innerHTMLs; ss-1; if (s0){ window.location.href"http://www.imooc.com/"; …

理解Flexbox弹性盒子

http://www.w3cplus.com/css3/understanding-flexbox-everything-you-need-to-know.html参考文档 1&#xff1a;要开始使用Flexbox&#xff0c;必须先让父元素变成一个Flex容器。 你可以在父元素中显式的设置 display:flex或者 display:inline-flex。就这么的简单&#xff0c…

php安装dat,PHP Parsing a .dat file

问题I have a .dat file that is essentially ; delimited file and Im trying to convert it to a tab delimited .txt. The problem that I am not sure about is that each row of the new file will be a combination of 3 of the original files rows, each original row …

[转]Bing Maps Tile System 学习

原文链接&#xff1a;Bing Maps Tile System 学习 转载于:https://www.cnblogs.com/rainbow70626/p/8992322.html

Spring休眠3

1.概述 本文将重点介绍通过Spring设置Hibernate 3 –我们将研究如何同时使用XML和Java配置通过Hibernate 3和MySQL设置Spring 3。 2. Hibernate 3的Java Spring配置 使用Spring和Java配置来设置Hibernate 3很简单&#xff1a; import java.util.Properties; import javax.sql…

我们十组的cantool装置的使用

十组的cantool装置的使用 下图是连接好的示意图&#xff0c;灯亮。 如果在串口关闭的时候输入C&#xff0c;cantool装置就会报错&#xff0c;因为串口是关闭的。正如需求文档里写的&#xff0c;当串口关闭&#xff0c;输入C要有返回\BEL的,关闭串口的前提是串口打开。 正确发送…

php查询功能突然没有用,php – 为什么搜索查询没有在PHRETS中显示任何结果?

我正在使用这个PHP脚本从一个简单的搜索查询获得结果here我已经下载了属性here的元数据excel文件$rets_login_url "http://sef.rets.interealty.com/Login.asmx/Login";$rets_username "xxxxxxxx";$rets_password "xxxxxxxx";$rets_user_agen…

es6入门

现在我们来学习一下es6,它现在是一门比较火的语言但是并不是所有的浏览器都兼容E6说的全部特性&#xff0c; 但是我们依旧应该学习一下ES6的语法。 因为兼容性我们得学习一下Babel,它是一个广泛使用的ES6转换器&#xff0c;可以将ES6代码转化为ES5代码&#xff0c;从而在现有环…

2018-05-05(在小程序中使用图标)

项目中常常需要使用到字体图标&#xff0c;微信小程序中使用字体图标与在平常的web前端中类似但是又有区别。下面以使用阿里图标为例子讲解如何在微信小程序中使用字体图标。 第一步&#xff1a;下载需要的字体图标 进入阿里图标官网http://iconfont.cn/搜索自己想要的图标&…