深入挖掘oauth2分析二

如果基础概念掌握了,接着上一章继续往前讲

打开一个第一步先看pom.xml(非maven管理可以先看配置文件)

找下依赖,发现

1.

2,

这2个标签比较陌生(第一个是引进的),第二个(标签库)用法如下:

引入标签库<%@ taglib prefix='security' uri='http://www.springframework.org/security/tags' %>,然后使用其中的标签

具体细分用法https://blog.csdn.net/wncnke/article/details/54407762,可以参考(springboot项目不需要),通过给大家写文档,自己也能学习到新的知识

第二步

查看项目基本结构,这里因为sparklr即使认证服务又是资源服务,所以第一步先大致看看项目,结构没啥不同(需要tomcat做应用 服务器的war项目)

既然项目有前端,就尝试启动项目(tomcat启动项目)

一个简单的登陆功能

   /login查找也发现主要在SecurityConfiguration类中,又回到了前面jwt里面的3个重要的类,WebSecurityConfigurerAdapter(属于Security对web的拦截适配器),发现没有什么区别(这里不懂可以看以前的jwt验证那几篇文章),接着找OAuth2ServerConfig类,发现关于oauth2的2大基础注解

@EnableResourceServer表示支持资源服务
@EnableAuthorizationServer表示支持认证服务

这2个下面只基于样例项目做基础讲解,先讲认证服务,后资源服务,后面实战就具体讲

认证服务(AuthorizationServerConfigurerAdapter,运用的是java23种模式之一的适配器模式)

参数详解:

1.TokenStore(是一个oauth2的token接口,提供各种token实现的子类),源码如下

2.UserApprovalHandler(用于确定给定客户端身份验证请求是否为当前用户批准)

这个一般情况下用不到,其实就是当前用户对资源是否授权的确认

3.tonrRedirectUri(重定向URl地址)

clients配置如下

实例采用的是内存模式下,几个不同客户端(通过客户端ID区别)支持的几种不同的认证方式,这里讲下认证授权需要的几大参数


ClientId(客户端ID主键,,不可少),resourceIds(资源端ID),grantType(认证模式),authorities(客户端权限(与用户权限不同,单单指客户端包含的权限,后面实战种会详细讲到)),scopes(授权范围),ValiditySeconds(过期时限),redirextUris(跳转地址),secret(密码)

资源服务:

没多余的内容,主要是http的拦截写法

在看看剩下的,一个mvc处理器(基础用不到),一个是MethodSecurityConfig(对所有方法认证异常的处理),可以看下处理方式,实际用不上

test包下面也提供了不同的测试方法(随便找了个测试下抛了个异常),算了,还是自己动手测试

样例代码接口适应的mvc模式有问题,无法读取到请求的from表单的属性,不过不重要,我们自己知道如何实现的就好了

猜你喜欢

转载自blog.csdn.net/qq_40650378/article/details/85163065