资源准备:
下载开源项目
新建oracle表:
-- ---------------------------- -- Table structure for OcelotGlobalConfiguration -- ---------------------------- CREATE TABLE OcelotGlobalConfiguration ( Id NUMBER(11) NOT NULL , GatewayName NVARCHAR2(200) NOT NULL , RequestIdKey NVARCHAR2(100) , BaseUrl NVARCHAR2(100) , DownstreamScheme NVARCHAR2(50) , ServiceDiscoveryProvider NVARCHAR2(300) , QoSOptions NVARCHAR2(300) , LoadBalancerOptions NVARCHAR2(300) , HttpHandlerOptions NVARCHAR2(300) , LastUpdateTime DATE , AddTime DATE NOT NULL , IsDefault NUMBER(4) NOT NULL ) ; COMMENT ON COLUMN OcelotGlobalConfiguration.Id IS '主键'; COMMENT ON COLUMN OcelotGlobalConfiguration.GatewayName IS '网关名称'; COMMENT ON COLUMN OcelotGlobalConfiguration.AddTime IS '添加时间'; COMMENT ON COLUMN OcelotGlobalConfiguration.IsDefault IS '是否默认'; -- ---------------------------- -- Records of OcelotGlobalConfiguration -- ---------------------------- INSERT INTO OcelotGlobalConfiguration VALUES ('1', '第一个网关', 'FirstGateway', '', '', '', '', '', '', TO_DATE('1900-01-01 00:00:00.000', 'SYYYY-MM-DD HH24:MI:SS'), TO_DATE('2018-10-22 18:06:22.337', 'SYYYY-MM-DD HH24:MI:SS'), '1'); COMMIT; -- ---------------------------- -- Table structure for OcelotReRoutes -- ---------------------------- CREATE TABLE OcelotReRoutes ( Id NUMBER(11) NOT NULL , OcelotGlobalConfigurationId NUMBER(11) NOT NULL , UpstreamPathTemplate NVARCHAR2(150) NOT NULL , UpstreamHttpMethod NVARCHAR2(50) NOT NULL , UpstreamHost NVARCHAR2(100) NOT NULL , DownstreamScheme NVARCHAR2(50) , DownstreamPathTemplate NVARCHAR2(200) , DownstreamHostAndPorts NVARCHAR2(500) , AuthenticationOptions NVARCHAR2(300) , RequestIdKey NVARCHAR2(100) , CacheOptions NVARCHAR2(200) , ServiceName NVARCHAR2(100) , QoSOptions NVARCHAR2(200) , LoadBalancerOptions NVARCHAR2(200) , Key NVARCHAR2(100) , DelegatingHandlers NVARCHAR2(200) , Priority NUMBER(11) , Timeout NUMBER(11) , IsStatus NUMBER(11) NOT NULL , AddTime DATE NOT NULL ) ; COMMENT ON COLUMN OcelotReRoutes.Id IS '主键'; COMMENT ON COLUMN OcelotReRoutes.OcelotGlobalConfigurationId IS '全局配置ID'; COMMENT ON COLUMN OcelotReRoutes.AddTime IS '添加时间'; -- ---------------------------- -- Records of OcelotReRoutes -- ---------------------------- INSERT INTO OcelotReRoutes VALUES ('1', '1', '/connect/token', '[ POST ]', ' ', 'http', '/connect/token', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('2', '1', '/connect/authorize', '[ POST,GET ]', ' ', 'http', '/connect/authorize', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('3', '1', '/.well-known/openid-configuration', '[ GET ]', ' ', 'http', '/.well-known/openid-configuration', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('4', '1', '/.well-known/openid-configuration/jwks', '[ POST,GET ]', ' ', 'http', '/.well-known/openid-configuration', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('5', '1', '/connect/userinfo', '[ POST,GET ]', ' ', 'http', '/connect/userinfo', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('6', '1', '/connect/endsession', '[ POST,GET ]', ' ', 'http', '/connect/endsession', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('7', '1', '/connect/checksession', '[ POST,GET ]', ' ', 'http', '/connect/checksession', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('8', '1', '/connect/revocation', '[ POST,GET ]', ' ', 'http', '/connect/revocation', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('9', '1', '/connect/introspect', '[ POST,GET ]', ' ', 'http', '/connect/introspect', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('10', '1', '/connect/authorize/callback', '[ POST,GET ]', ' ', 'http', '/connect/authorize/callback', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('11', '1', '/connect/endsession/callback', '[ POST,GET ]', ' ', 'http', '/connect/endsession/callback', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); INSERT INTO OcelotReRoutes VALUES ('12', '1', '/ss1/{everything}', '[ POST,GET ]', ' ', 'http', '/api/{everything}', ' [{Host: localhost, Port: 1001},{Host: localhost,Port: 1002}]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS')); COMMIT; -- ---------------------------- -- Primary Key structure for table OcelotGlobalConfiguration -- ---------------------------- ALTER TABLE OcelotGlobalConfiguration ADD CONSTRAINT PK_OcelotGlobalConfiguration PRIMARY KEY (Id); -- ---------------------------- -- Primary Key structure for table OcelotReRoutes -- ---------------------------- ALTER TABLE OcelotReRoutes ADD CONSTRAINT PK_OcelotReRoutes PRIMARY KEY (Id);
开始集成:
1.在网关项目中添加对Ocelot.ConfigAuthLimitCache的引用
2.在网关项目的Startup.cs 中修改ConfigureServices节点 标红部分
services.AddOcelot(Configuration).AddAuthLimitCache(opt=> { opt.DbConnectionStrings = Configuration.GetSection("Setting")["ConfigDBConnction"]; }).AddConsul();
3.在配置文件中添加数据库连接 蓝色部分
"Setting": { "Port": "5001", "ConfigDBConnction": "Data Source=192.168.xxx.xxx/orcl;User ID=xxx;Password=xxx;" },
4.在Program.cs中移除对原配置文件的依赖 注释部分
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseUrls($"http://*:{StartPort}"); //.ConfigureAppConfiguration((hostingContext, builder) => //{ // builder.AddJsonFile("configuration.json", false, true); //});
至此搭建完毕 将配置文件部分的内容移动到数据库即可。
参考链接:
更改到sqlserver