.Netcore 2.0 Ocelot Api网关教程(6)- 配置管理

本文介绍Ocelot中的配置管理,配置管理允许在Api网关运行时动态通过Http Api查看/修改当前配置。由于该功能权限很高,所以需要授权才能进行相关操作。有两种方式来认证,外部Identity Server或内部Identity Server。

1、外部Identity Server

修改 Startup 中的 ConfigureServices 方法如下:

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();

void options(IdentityServerAuthenticationOptions o)
{
o.Authority = "http://localhost:6000";
o.RequireHttpsMetadata = false;
o.ApiName = "api1";
}

services
.AddOcelot(new ConfigurationBuilder()
.AddJsonFile("configuration.json")
.Build())
.AddAdministration("/administration", options);

services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication("TestKey", options);
}

其中复用了Identity Server的配置。

2、内部Identity Server

修改 Startup 中的 ConfigureServices 方法如下:

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();

services.AddOcelot(new ConfigurationBuilder()
.AddJsonFile("configuration.json")
.Build())
.AddAdministration("/administration", "secret");

services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication("TestKey", options =>
{
options.Authority = "http://localhost:6000";
options.RequireHttpsMetadata = false;
options.ApiName = "api1";
});
}

其中为secret值为"secret",后边会用得到。

其上为添加配置管理的两种方式,本例中以内部Identity Server为例。

Administration一共提供了3组Api

  • Token获取

  • 配置管理

  • 缓存管理
    其中Token获取Api只在使用内部Identity Server时有效。由于缓存的教程还没更新,所以缓存管理的Api在后边的文章介绍。

1、Token获取

使用Postman请求http://localhost:5000/administration/connect/token如下所示,可以获得一个token

640?wx_fmt=other

token from internal id server.png


注意Body的数据类型要选择 form-data,并且 client_secret 要填写代码中配置的secret,当前教程为secret。


2、配置管理

使用Postman请求http://localhost:5000/administration/configuration如下所示,获取配置

640?wx_fmt=other

get configuration.png


使用上次获取的token。


以http://localhost:5000/GetUserInfo?name=Jonathan为例请求数据如下

640?wx_fmt=other

GetUserInfo.png


可以成功请求并且获取数据。


然后修改配置如下

640?wx_fmt=other

change configuration.png


注意此次请求为Post请求,并且不要忘记添加认证头token,此次请求的body参数为之前获取的配置并且修改了/GetUserInfo链接为/GetUserInfochanged。
再次使用Postman请求http://localhost:5000/GetUserInfo?name=Jonathan如下

640?wx_fmt=other

GetUserInfo 404.png


得到了404,修改链接为http://localhost:5000/GetUserInfochanged?name=Jonathan再次请求如下

640?wx_fmt=other

GetUserInfochanged.png


此次配置修改成功,打开到路径/OcelotTutorial/OcelotGetway/bin/Debug/netcoreapp2.0下有一个 configuration.Development.json 文件打开查看如下

640?wx_fmt=other

configuration.Development.json.png


配置文件也已经修改。
可能在开发时会遇到修改完配置之后,下次调试时配置又回到了原来,是因为 configuration.json 选择成了总是复制,所以每次开始调试的时候都会替换 configuration.development.json 中的内容。
如果Ocelot Api网关程序没有读写文件的权限也会遇到修改配置失败的情况。

 

原文地址:https://www.jianshu.com/p/9e2fa5783211

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg

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

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

相关文章

CF 1529B. Sifid and Strange Subsequences

CF 1529B. Sifid and Strange Subsequences 题意: 给你n个数,让你从这n个数中找m个数,保证这m个数中任意两个数的差的绝对值大于等于这m个数中最大值。求一个最大的m。 题解: 这个m个数中最多只能有一个正数。因为任意两个正数…

最短路径(虚树+期望)

problem 给定一棵 nnn 个结点的无根树,每条边的边权均为 111 。 树上标记有 mmm 个互不相同的关键点,小 A 会在这 mmm 个点中等概率随机地选择 kkk 个不同的点放上小饼干。 你想知道,经过有小饼干的 kkk 个点的最短路径长度的期望是多少。…

AT2000 [AGC002F] Leftmost Ball(dp、组合数学)

解析 如果之前有些卡住的题可以说是奇淫技巧的话,这道题的思路只能说太经典了。 感觉其实也就是紫的难度吧,没做出来有些可惜。 还是有写畏黑情绪,见到黑题本能的感觉做不出来。 首先是一个比较自然的题意转化:有 k-1 个 1-n 的…

CF 1529E. Trees of Tranquillity

CF 1529E. Trees of Tranquillity 文章目录题意:题解:代码:线段树代码:利用set实现题意: 有A1,A2两棵树,根是1,编号都是1~n,先制作图A3,如果两个点的x和y同时…

【学习笔记】最大权闭合子图和最大密度子图(最小割的模型应用)

最大权闭合子图和最大密度子图最大权闭合子图contentexercise最大密度子图contentexerciseUpd:最大权闭合子图易懂证明最大权闭合子图 content 先作出以下声明: c(u,v):c(u,v):c(u,v): 边 (u,v)(u,v)(u,v) 的容量。 f(u,v):f(u,v):f(u,v): 边 (u,v)(u,…

Docker最全教程之使用Docker搭建Java开发环境(十八)

前言Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿。本篇仅作探索…

AT2705 [AGC019F] Yes or No(组合数学)

解析 Atcoder的题超小的码量总让人做不出来的时候感到很不甘心… 但这题确实挺难的,主要还是魔术一样的奇淫技巧。 大力推式子那个阴间方法我直接选择弃疗。 一个很显然的结论是:肯定回答当前剩的比较多的选项。 pia一张洛谷的图: &#…

Coding Contest HDU - 5988

Coding Contest HDU - 5988 题意: 有n个点,m个边,每个点有人数和食物数,每个人都要吃一份食物,如果该点的食物不够,他们就要去其他点,每个边最多只能走c次,每次有人走一条路&#…

ASP.NET Core 项目简单实现身份验证及鉴权

环境VS 2017ASP.NET Core 2.2目标以相对简单优雅的方式实现用户身份验证和鉴权,解决以下两个问题:无状态的身份验证服务,使用请求头附加访问令牌,几乎适用于手机、网页、桌面应用等所有客户端基于功能点的权限访问控制&#xff0c…

AT4352 [ARC101C] Ribbons on Tree

解析 其实想到了断边按连通块容斥的做法。 但不知道为啥觉得没前途弃了… 悲。 考虑容斥,设 f[x][i] 表示 x 子树内与 x 所连的联通块有 i 个节点的方案数,第三维朴素是记录连通块个数,但其实只需要记一个 0/1 表示奇偶性即可。 然后题解奥…

【无码专区7】括号序列(思维)

因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dls的实现不太一样。 std可能…

2016ICPC青岛

2016ICPC青岛 题号题目难度知识点ARelic Discovery签到贪心BPocket Cube快铜大模拟CPocky签到数论,推公式DLucky CoinsEFibonacciFLambda CalculusGCoding Contest银牌题网络流HPatternITravel BrochureJCliquesKFinding HotelsLTower AttackMGenerator and Monito…

ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能

微软发布了其最新版本的机器学习框架:ML.NET 0.11带来了新功能和突破性变化。新版本的机器学习开源框架为TensorFlow和ONNX添加了新功能,但也包括一些重大变化, 这也是发布RC版本之前的最后一个预览版,这个月底将发布0.12版本,也就…

CF1267G Game Relics(期望、背包)

解析 有些遗憾的一个题。 几乎已经做出来了,但最后把买的代价看成平均数确实没有想到。 还有那个背包我觉得直接做会炸精度,就开始各种玩泥巴。 悲。 比较显然的结论是最优解必然是先抽抽抽然后再买买买。 剩 i 个宝物的时候抽出一个新宝物的期望代价比…

铺地毯(矩形的交+前后缀矩形交)

铺地毯problemsolutioncodeproblem 给定矩阵的长宽 P,QP,QP,Q,矩阵从下往上从左往后编号增加,(0,0)∼(P,Q)(0,0)\sim (P,Q)(0,0)∼(P,Q)。 给定 nnn 张长宽平行于坐标轴的矩形地毯,左下角和右上角的坐标。 求被至少 n−1n-1n−1 张地毯覆盖…

AT2366 [AGC012F] Prefix Median(dp)

解析 确实精妙的一道题。 卡在最后一步dp转化上了,这个转化也确实是本题的难点。 当一个计数难以下手的时候,先想想如何判合法? 不难想到一个较为显然的贪心:假如和上一个一样,就填一个当前的最大值和最小值&#xf…

2020CCPC长春

2020CCPC长春 题号题目难度知识点AKrypton签到01背包BThe Tortoise and the HareCQuantum GeometryDMeaningless Sequence签到推公式EDefense of Valor LeagueFStrange Memory树上启发式合并GMonkey’s KeyboardHCombination LockIKawaii CourierJAbstract PaintingKRagdollLC…

如何使用AWS和Azure的配置存储服务保存读取配置

原文:Want to yank configuration values from your .NET Core apps? 作者:pauljwheeler译文:https://www.cnblogs.com/lwqlun/p/10508748.html译者:Lamond Lu示例源代码:https://github.com/lamondlu/LoadConfigurat…

基站建设(三元环计数+根号分治 / bitset)

基站建设problemsolutioncodeproblem 给定 nnn 个地点,以及每个地点的可靠度 RiR_iRi​。 有 mmm 条光纤架,每一条连接两个不同的地点,且是双向的。 测试基站由 444 个信号塔,有 222 个主信号塔和 222 个副信号塔。 要求主信号…

CF1060F Shrinking Tree(期望、树形dp)

解析 神题。 把每个节点提到根 rt 单独考虑。 设 dpi,jdp_{i,j}dpi,j​ 表示当 rt 进入 i 时子树内还有 j 条边未合并的方案的期望之和,gi,jg_{i,j}gi,j​ 表示当 rt 进入 i 的父亲时 i 的子树内(包括连向父亲的边)还有 j 条边未合并的方案…