开发者学堂课程【Spring Security知识精讲与实战演示(四):案例父工程创建】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/733/detail/13080
案例父工程创建
通过实战案例看oauth2.0如何使用?通过下图可以看出,
这里必须是一个分布式的项目,因为要将认证服务与资源服务分开,即需要让oauth2.0的服务端来管理认证,需要资源端来管理访问资源,所以spring会认为oauth2.0一般情况下就必须用在分布式项目中,所以说oauth2.0与springcloud是无缝整合的。一般情况下oauth2.0必须要给springcloud做整合,所以选择采用springcloud的一个工程。
首先创建一个父工程,新建一个model,下一步,写上com.ipheima,写上springboot_security_oauth,有Oauth,那springcloud就不写,直接加入springcloud的相关资源就行,点击next
这是一个父工程,所以src可以删掉。需要导入相对应的架包的一些限定,比如springboot的包,如下代码
<
fparent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactid>
<version>2.1.3.RELEASE</version>
<relativePath/>
</parent>
这样就确定了springboot的版本,知道Springboot如果要用springcloud,那springcloud的前提条件必须要用Springboot,否则Springcloud不能使用,那直接选择对应的一个版本,
T<properties>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
版本一定要对应上,否则是不能用的,这是一个map结构,是k后边是value,那现在并没有导入springoauth2.0cloud的相关的一些约束,可以先把架包给锁定,以便后面使用锁定架包的标签,
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupid>
<artifactId>spring-cloud-dependencies</artifactid>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这里k值一定来自于上面。就是一个k值,这是一个value值,这里边是使用maven表达式,跟spring没有关系,因为这里是maven的配置文件,也有表达式去解析k值得到这里边的value。要用springoauth2.0cloud,仓库代码如下
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Springoauth2.0Snapshots</name>
<url>https://repo.spring.io/snapshot</url><snapshots>
<enabled>true</enabled></snapshots></repository><repository>
<id>spring-milestones</id>
<name>Springoauth2.0Milestones</name>
<url>https://repo.spring.io/milestone</url><snapshots>
<enabled>false</enabled></snapshots></repository>-</repositories>
直接导入,要把标签都贴完,父工程就完成,接下来去完成模块,模块分为资源模块和认证服务,演示出效果即可,真正的资源服务有很多,每一个资源服务都应该有自己的 vid。