.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
token from internal id server.png
注意Body的数据类型要选择 form-data
,并且 client_secret
要填写代码中配置的secret,当前教程为secret。
2、配置管理
使用Postman请求http://localhost:5000/administration/configuration如下所示,获取配置
get configuration.png
使用上次获取的token。
以http://localhost:5000/GetUserInfo?name=Jonathan为例请求数据如下
GetUserInfo.png
可以成功请求并且获取数据。
然后修改配置如下
change configuration.png
注意此次请求为Post请求,并且不要忘记添加认证头token,此次请求的body参数为之前获取的配置并且修改了/GetUserInfo链接为/GetUserInfochanged。
再次使用Postman请求http://localhost:5000/GetUserInfo?name=Jonathan如下
GetUserInfo 404.png
得到了404,修改链接为http://localhost:5000/GetUserInfochanged?name=Jonathan再次请求如下
GetUserInfochanged.png
此次配置修改成功,打开到路径/OcelotTutorial/OcelotGetway/bin/Debug/netcoreapp2.0下有一个 configuration.Development.json
文件打开查看如下
configuration.Development.json.png
配置文件也已经修改。
可能在开发时会遇到修改完配置之后,下次调试时配置又回到了原来,是因为 configuration.json
选择成了总是复制,所以每次开始调试的时候都会替换 configuration.development.json
中的内容。
如果Ocelot Api网关程序没有读写文件的权限也会遇到修改配置失败的情况。
原文地址:https://www.jianshu.com/p/9e2fa5783211
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
.Netcore 2.0 Ocelot Api网关教程(6)- 配置管理相关推荐
- .Netcore 2.0 Ocelot Api网关教程(8)- 缓存
Ocelot中使用 CacheManager 来支持缓存,官方文档中强烈建议使用该包作为缓存工具. 以下介绍通过使用CacheManager来实现Ocelot缓存. 1.通过Nuget添加 Ocelo ...
- .Netcore 2.0 Ocelot Api网关教程(7)- 限流
本文介绍Ocelot中的限流,限流允许Api网关控制一段时间内特定api的总访问次数. 限流的使用非常简单,只需要添加配置即可. 1.添加限流 修改 configuration.json 配置文件,对 ...
- .Netcore 2.0 Ocelot Api网关教程(番外篇)- Ocelot v13.x升级
由于Ocelot系列博客好久没更新(差不多有10个月的时间了),在此先说声抱歉,Ocelot系列会继续更新下去. 在写上一篇配置管理的时候发现官方文档已经和以前的不一样,而Ocelot也从5.0版本更 ...
- Ocelot Api网关教程(9)- QoS
本文介绍Ocelot中的QoS(Quality of Service),其使用了Polly对超时等请求下游失败等情况进行熔断. 1.添加Nuget包 添加 Ocelot.Provider.Polly ...
- Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权
在上一讲中,我们已经完成了一个完整的案例,在这个案例中,我们可以通过Angular单页面应用(SPA)进行登录,然后通过后端的Ocelot API网关整合IdentityServer4完成身份认证.在 ...
- ASP.NET Core on K8s学习之旅(13)Ocelot API网关接入
[云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第232篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,考虑到很多团队都在使用Ocelot作为 ...
- Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(三)
在前面两篇文章中,我介绍了基于IdentityServer4的一个Identity Service的实现,并且实现了一个Weather API和基于Ocelot的API网关,然后实现了通过Ocelot ...
- Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(一)
好吧,这个题目我也想了很久,不知道如何用最简单的几个字来概括这篇文章,原本打算取名<Angular单页面应用基于Ocelot API网关与IdentityServer4+ASP.NET Iden ...
- .Net Core微服务入门——Ocelot API网关接入(二)
Net Core微服务入门--Ocelot API网关接入(二) 我们先接入Consul,实现服务发现 服务发现 1.引入 Ocelot.Provider.Consul 包 2.修改ocelot.js ...
最新文章
- java htmlparser 使用教程_Java解析HTML之HTMLParser使用与详解
- Spring MVC 概述
- 【Solidity】3.类型 - 深入理解Solidity
- cam350怎么看顶层_厉害的人是怎么分析问题的?(实操干货)
- 楷体任务用Ant来构建你的项目
- hive 日期函数_数据分析面试必备——SQL窗口函数你会了吗?
- Webpack笔记(三)——一款破产版脚手架的开发
- yarn临时目录 没有jar包_Yarn(Haoop组件之一)介绍
- 三次hermite插值多项式例题_数值分析实验六(分段三次Hermite插值)
- Vue创建项目的详细步骤
- manacher魔板
- 川的第一份博客——内容定义
- matlab 两个视频同时播放视频,视频画面合并教程:两个或多个视频合并在同一屏幕上同时播放...
- 汇编——从一道题目浅谈分支结构
- Canvas实现放大镜效果
- 王道学习笔记,计算机网络
- 18春计算机基础在线作业,东大18春《计算机基础》在线作业二.doc
- 两种电子配线架的原理比较
- 关于学术期刊,你应该知道这些
- 不知道照片上怎么文字翻译成英文?来看看这篇文章
热门文章
- 网页背景平铺_在大约十秒钟内为网页创建无缝平铺背景
- linux guard什么进程,使用linux系统性能监控工具KSysguard监控远端主机介绍
- python实现异步的几种方式_终于搞明白了,异步Python比同步Python究竟快在哪里?...
- 缩点(有向图的强连通分量)学习笔记
- Oracle数据库IP访问限制(IP白名单黑名单)
- 抽象工厂模式(Absraact Factory)介绍与实现
- 指针变量的定义与引用
- MFC多语言实现方法
- 用PHP实现POP3邮件的收取(一)
- 典型用户信息管理系统