源码

AspNetCore3.1_Secutiry源码解析_8_Authorization_授权框架

浪尽此生 提交于 2020-03-29 03:22:30
目录 AspNetCore3.1_Secutiry源码解析_1_目录 AspNetCore3.1_Secutiry源码解析_2_Authentication_核心流程 AspNetCore3.1_Secutiry源码解析_3_Authentication_Cookies AspNetCore3.1_Secutiry源码解析_4_Authentication_JwtBear AspNetCore3.1_Secutiry源码解析_5_Authentication_OAuth AspNetCore3.1_Secutiry源码解析_6_Authentication_OpenIdConnect AspNetCore3.1_Secutiry源码解析_7_Authentication_其他 AspNetCore3.1_Secutiry源码解析_8_Authorization_授权框架 简介 开篇提到过,认证主要解决的是who are you,授权解决的是 are you allowed的问题。各种认证架构可以帮我们知道用户身份(claims),oauth等架构的scope字段能够控制api服务级别的访问权限,但是更加细化和多变的功能授权不是它们的处理范围。 微软的Authorization项目提供了基于策略的灵活的授权框架。 推荐看下面博客了解,我主要学习和梳理源码。 https://www

IdentityServer4源码解析_1_项目结构

自闭症网瘾萝莉.ら 提交于 2020-03-29 02:31:54
目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4源码解析_4_令牌发放接口 identityserver4源码解析_5_查询用户信息接口 identityserver4源码解析_6_结束会话接口 identityserver4源码解析_7_查询令牌信息接口 identityserver4源码解析_8_撤销令牌接口 简介 Security源码解析系列介绍了微软提供的各种认证架构,其中OAuth2.0,OpenIdConnect属于远程认证架构,所谓远程认证,是指token的颁发是由其他站点完成的。 IdentityServer4是基于OpenIdConnect协议的认证中心框架,可以帮助我们快速搭建微服务认证中心。 初学者可能看到生涩的概念比较头疼,可以将OAuth, OpenIdConnect协议简单理解成需求文档,idsv4基于需求提供了一系列的api实现。 对于idsv还不太了解的可以看下面的资料,本系列主要学习梳理idsv4的源码,结合协议加深理解。 晓晨姐姐系列文章 https://www.cnblogs.com/stulzq/p/8119928.html 官方文档 https://identityserver4

identityserver4源码解析_2_元数据接口

独自空忆成欢 提交于 2020-03-29 02:31:39
目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4源码解析_4_令牌发放接口 identityserver4源码解析_5_查询用户信息接口 identityserver4源码解析_6_结束会话接口 identityserver4源码解析_7_查询令牌信息接口 identityserver4源码解析_8_撤销令牌接口 协议 这一系列我们都采用这样的方式,先大概看下协议,也就是需求描述,然后看idsv4怎么实现的,这样可以加深理解。 元数据接口的协议地址如下: https://openid.net/specs/openid-connect-discovery-1_0.html 摘要 该协议定义了一套标准,用户能够获取到oidc服务的基本信息,包括OAuth2.0相关接口地址。 Webfinger - 网络指纹 先了解一下Webfinger这个概念。 WebFinger可以翻译成网络指纹,它定义了一套标准,描述如何通过标准的HTTP方法去获取网络实体的资料信息。WebFinger使用JSON来描述实体信息。 https://tools.ietf.org/html/rfc7033 查询oidc服务元数据 - OpenID Provider

IdentityServer4源码解析_4_令牌发放接口

回眸只為那壹抹淺笑 提交于 2020-03-29 02:30:20
目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4源码解析_4_令牌发放接口 identityserver4源码解析_5_查询用户信息接口 identityserver4源码解析_6_结束会话接口 identityserver4源码解析_7_查询令牌信息接口 identityserver4源码解析_8_撤销令牌接口 协议 Token接口 oidc服务需要提供token接口,提供AccessToken,IdToken,以及RefreshToken(可选)。在授权码模式下,token接口必须使用https。 请求 必须使用POST方法,使用x-www-form-urlencoded序列化参数,clientId:clientSecret使用Basic加密放在Authorization头中 POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW grant_type=authorization_code&code

Mybatis 源码解析

喜欢而已 提交于 2020-03-28 12:43:13
一、搭建Spring中使用Mybatis环境 工程结构如下图所示 1、引入依赖 <properties> <spring.version>4.1.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency>

直播源码的开发方式有哪两种?

江枫思渺然 提交于 2020-03-28 11:30:37
直播已经成为了一种行业,吸引力各路创业者,特别是一对一直播的出现,一对一直播源码也可以选择原生开发和混合开发,两种开发方式都能达到开发一对一直播的目的,这时候就会有人问:这两种开发方式有什么区别?开发一对一直播时应该选择哪种方式开发? 接下来小编就给大家汇总一下一对一直播源码原生开发和混合开发的区别,以及优缺点进行对比。 什么是原生开发? 原生应用开发是指在Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发。我们常用的微软Word就是原生开发的应用程序,原生开发的一对一直播源码是特别为某种操作系统开发的,比如iOS、Android、黑莓等等,它们在各自的移动设备上运行,在应用性能上和交互体验上应该是最好的,但是对于一对一直播APP源码开发者来说,由于原生应用的可移植性比较差,Android和IOS要分别开发,同样的逻辑、界面要写两套,所以对开发团队来说,原生开发的方式并不友好,但对于用户来说,在某系统上使用原生开发的一对一直播APP,使用感是非常棒的。 在一对一直播源码的原生开发中,开发者通常在android系统采用java进行开发,而IOS会利用Objective-C 和Xcode进行开发。 什么是混合开发? 在谈及混合开发前我们要提到WEB开发(或HTML5应用开发),HTML5应用开发,是利用Web技术进行的App开发,通常是HTML5

直播源码的开发方式有哪两种?

五迷三道 提交于 2020-03-28 10:46:54
直播已经成为了一种行业,吸引力各路创业者,特别是一对一直播的出现,一对一直播源码也可以选择原生开发和混合开发,两种开发方式都能达到开发一对一直播的目的,这时候就会有人问:这两种开发方式有什么区别?开发一对一直播时应该选择哪种方式开发? 接下来小编就给大家汇总一下一对一直播源码原生开发和混合开发的区别,以及优缺点进行对比。 什么是原生开发? 原生应用开发是指在 Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发。我们常用的微软Word就是原生开发的应用程序,原生开发的一对一直播源码是特别为某种操作系统开发的,比如iOS、Android、黑莓等等,它们在各自的移动设备上运行,在应用性能上和交互体验上应该是最好的,但是对于一对一直播APP源码开发者来说,由于原生应用的可移植性比较差,Android和IOS要分别开发,同样的逻辑、界面要写两套,所以对开发团队来说,原生开发的方式并不友好,但对于用户来说,在某系统上使用原生开发的一对一直播APP,使用感是非常棒的。 在一对一直播源码的原生开发中,开发者通常在 android系统采用java进行开发,而IOS会利用Objective-C 和Xcode进行开发。 什么是混合开发? 在谈及混合开发前我们要提到 WEB开发(或HTML5应用开发),HTML5应用开发,是利用Web技术进行的App开发

直播源码开发搭建环境及服务器部署重点

家住魔仙堡 提交于 2020-03-28 10:02:05
直播系统开发依旧具有广阔的市场前景,同时作为直播系统开发基石的直播源码也将会愈发受欢迎!针对于直播系统开发搭建我们需要知道哪些常见的问题呢? 1、直播系统平台搭建环境 直播平台开发搭建的环境通常是采用Lnmp或Lamp环境,即: LNMP指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包,可以在VPS、独立主机上轻松的安装LNMP生产环境。 LAMP则是指Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 2、直播APP源码用到的开发语言 关于直播系统开发用到的程序框架及开发语音,可以归结为以下内容: 1)程序框架方面主要是thinkPHP框架,接口部分可通过π框架来实现 2)手机端有Android和iOS之分,所以用到的开发环境及程序语言是不同的。Android端主要采用Java语言,iOS端则通常采用iOS原生语言OC,至于服务端的开发语言的选择较为灵活,可以采用了PHP或Java进行开发。 3、直播系统搭建服务器部署重点 直播系统在搭建时会用到多个业务服务器,共同完成直播系统的业务逻辑流程

Volley源码分析(1)----Volley 队列

笑着哭i 提交于 2020-03-28 05:14:19
Android网络框架很多,但是基于Google自己的volley,无疑是优秀的一款。 网络框架,无外乎解决一下几个问题,队列,缓存,图片异步加载,统一的网络请求和处理等。 一.Volley 队列 启动 Volley的队列,首先我们看队列的启动:com.android.volley.toolbox.Volley.java /** * Creates a default instance of the worker pool and calls {@link RequestQueue#start()} on it. * * @param context A {@link Context} to use for creating the cache dir. * @param stack An {@link HttpStack} to use for the network, or null for default. * @return A started {@link RequestQueue} instance. */ public static RequestQueue newRequestQueue(Context context, HttpStack stack) { File cacheDir = new File(context.getCacheDir(),

Volley源码分析

痞子三分冷 提交于 2020-03-28 05:13:10
取消请求的源码分析: public void cancelAll(RequestFilter filter) { synchronized (mCurrentRequests) { for (Request<?> request : mCurrentRequests) { if (filter.apply(request)) { request.cancel(); } } } } /** * Cancels all requests in this queue with the given tag. Tag must be non-null * and equality is by identity. */ public void cancelAll(final Object tag) { if (tag == null) { throw new IllegalArgumentException("Cannot cancelAll with a null tag"); } cancelAll(new RequestFilter() { @Override public boolean apply(Request<?> request) { return request.getTag() == tag; } }); } 使用Volley的第一步,首先要调用 Volley