2727 $block -> set_value(" main_config" , $main_config );
2828
2929 my $http_config = $block -> http_config // <<_EOC_ ;
30- lua_package_path '$pwd /deps/share/lua/5.1/?.lua;$pwd /lua/?.lua;$pwd /t/lib/ ?.lua;;';
30+ lua_package_path '$pwd /deps/share/lua/5.1/?.lua;$pwd /lua/?.lua;$pwd /t/?.lua;;';
3131 lua_package_cpath '$pwd /?.so;;';
3232
3333 lua_shared_dict saml_sessions 10m;
@@ -41,24 +41,11 @@ _EOC_
4141 if err then
4242 assert(nil, err)
4343 end
44- local sp_private_key = "-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCzo92AOThlqsF\\nfxqIyA9gHrj3493UxTlhWo15OJnNL1ARNdKL4JFH6nY9sMntkLtaMdY6BYDI2lHC\\nv6a1xQSxavkS4kepTFMotj7wmfLXWEY3mFbbITbGUmTQ0yQoJ4Lrii/nQ6Esv20z\\nV/mSTJzHLTdcH/lIuksZXKLPnEzue3zqGopvk4ZduvwyRzU0FzPoSYlCLqAEJcx6\\nbkulQcZcqSER/0bke/m9eCDt91evDJM1yOHzYuiDZH8trhFwzE+9ms/I/8Svt+tQ\\nkAB5EAzfI26VpUWB3oq4eJsoEPEC4UJBsKaZh4a1GA+wbm8ql8EgUr0EsgFZH1Hg\\nGg2m97nLAgMBAAECggEBAJXT0sjadS7/97c5g8nxvMmbt32ItyOfMLusrqSuILSM\\nEBO8hpvoczSRorFd2GCr8Ty0meR0ORHBwCJ9zpV821gtQzX/7UfLmSX1zUC11u1D\\nSnYV56+PwxYTZtCpo+RyRyIrXR6MiFjnPfDAWAXqgKY8I5jqSotiJMJz2hC9UPoV\\ni56tHYXGCjtUAJrvG8FZM46TNL67nQ3ASWb5IH4cOqkgkKAJ/rZLrrMoL/HYpePr\\nn2MxlvT+TgdXebxo3rngu3pLRmLsfyV9eCLoOiP/oNAxTEA35EQQlnVfZOIEit8L\\nuvBYJYfYuXlxb96nQnOLqO/PrydwpXK9h1NtDvq3K2ECgYEA/i5ebOejoXORkFGx\\nDyYwkTczkh7QE328LSUVIiVGh4K1zFeYtj4mYYTeQMbzhlLAf9tGAZyZmvN52/ja\\niFLnI5lObNBooIfAYe3RAzUHGYraY7R1XutdOMjlP9tqjQ55y/xij/tu9qHT4fEz\\naQQPJ8D5sFbB5NgjxC8rlQ/WiLECgYEAxDNss4aMNhvL2+RTda72RMt99BS8PWEZ\\n/sdzzvu2zIJYFjBlCZ3Yd3vLhA/0MQXogMIcJofu4u2edZQVFSw4aHfnHFQCr45B\\n1QdDhZ8zoludEevgnLdSBzNakEJ63C8AQSkjIck4IaEmW+8G7fswpWGuVDBuHQZm\\nPBBcgz84CTsCgYBi8VvSWs0IYPtNyW757azEKk/J1nK605v3mtLCKu5se4YXGBYb\\nAtBf75+waYGMTRQf8RQsNnBYr+REq3ctz8+nvNqZYvsHWjCaLj/JVs//slxWqX1y\\nyH3OR+1tURUF+ZeRvxoC4CYOnWnkLscLXwgjOmw3p13snfI2QQJfEP460QKBgCzD\\nLsGmqMaPgOsiJIhs6nK3mnzdXjUCulOOXbWTaBkwg7hMQkD3ajOYYs42dZfZqTn3\\nD0UbLj1HySc6KbUy6YusD2Y/JH25DvvzNEyADd+01xkHn68hg+1wofDXugASGRTE\\ntec3aT8C7SV8WzBgZrDUoFlE01p740dA1Fp9SeORAoGBAIEa6LBIXuxb13xdOPDQ\\nFLaOQvmDCZeEwy2RAIOhG/1KGv+HYoCv0mMb4UXE1d65TOOE9QZLGUXksFfPc/ya\\nOP1vdjF/HN3DznxQ421GdPDYVIfp7edxZstNtGMYcR/SBwoIcvwaA5c2woMHbeju\\n+rbxDQL4gIT1lqn71w/8uoIJ\\n-----END PRIVATE KEY-----"
45- local sp_cert = "-----BEGIN CERTIFICATE-----\\nMIIDgjCCAmqgAwIBAgIUOnf+MXKVU2zfIVaPz5dl0NTwPM4wDQYJKoZIhvcNAQEN\\nBQAwUTELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMRcwFQYDVQQKDA5sdWEt\\ncmVzdHktc2FtbDEZMBcGA1UEAwwQc2VydmljZS1wcm92aWRlcjAgFw0xOTA1MDgw\\nMTIyMDZaGA8yMTE4MDQxNDAxMjIwNlowUTELMAkGA1UEBhMCVVMxDjAMBgNVBAgM\\nBVRleGFzMRcwFQYDVQQKDA5sdWEtcmVzdHktc2FtbDEZMBcGA1UEAwwQc2Vydmlj\\nZS1wcm92aWRlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLOj3YA\\n5OGWqwV/GojID2AeuPfj3dTFOWFajXk4mc0vUBE10ovgkUfqdj2wye2Qu1ox1joF\\ngMjaUcK/prXFBLFq+RLiR6lMUyi2PvCZ8tdYRjeYVtshNsZSZNDTJCgnguuKL+dD\\noSy/bTNX+ZJMnMctN1wf+Ui6Sxlcos+cTO57fOoaim+Thl26/DJHNTQXM+hJiUIu\\noAQlzHpuS6VBxlypIRH/RuR7+b14IO33V68MkzXI4fNi6INkfy2uEXDMT72az8j/\\nxK+361CQAHkQDN8jbpWlRYHeirh4mygQ8QLhQkGwppmHhrUYD7BubyqXwSBSvQSy\\nAVkfUeAaDab3ucsCAwEAAaNQME4wHQYDVR0OBBYEFPbRiK9OxGCZeNUViinNQ4P5\\nZOf0MB8GA1UdIwQYMBaAFPbRiK9OxGCZeNUViinNQ4P5ZOf0MAwGA1UdEwQFMAMB\\nAf8wDQYJKoZIhvcNAQENBQADggEBAD0MvA3mk+u3CBDFwPtT9tI8HPSaYXS0HZ3E\\nVXe4WcU3PYFpZzK0x6qr+a7mB3tbpHYXl49V7uxcIOD2aHLvKonKRRslyTiw4UvL\\nOhSSByrArUGleI0wyr1BXAJArippiIhqrTDybvPpFC45x45/KtrckeM92NOlttlQ\\nyd2yW0qSd9gAnqkDu2kvjLlGh9ZYnT+yHPjUuWcxDL66P3za6gc+GhVOtsOemdYN\\nAErhuxiGVNHrtq2dfSedqcxtCpavMYzyGhqzxr9Lt43fpQeXeS/7JVFoC2y9buyO\\nz9HIbQ6/02HIoenDoP3xfqvAY1emixgbV4iwm3SWzG8pSTxvwuM=\\n-----END CERTIFICATE-----"
46- local idp_uri = "http://127.0.0.1:8080/realms/test/protocol/saml"
47- default_opts = {
48- idp_uri = idp_uri,
49- login_callback_uri = "/acs",
50- logout_uri = "/logout",
51- logout_callback_uri = "/sls",
52- logout_redirect_uri = "/logout_ok",
53- sp_cert = sp_cert,
54- sp_private_key = sp_private_key,
55- }
5644 samls = {}
5745 }
5846
5947 server {
60- listen 127.0.0.1:8088;
61- listen 127.0.0.2:8099;
48+ listen 1984;
6249
6350 location / {
6451 access_by_lua_block {
@@ -67,31 +54,20 @@ _EOC_
6754 if host == "127.0.0.2" then
6855 sp_issuer = "sp2"
6956 end
57+
7058 if samls[sp_issuer] == nil then
71- if idp_cert == nil then
72- local http = require "resty.http"
73- local httpc = http.new()
74- local uri = "http://127.0.0.1:8080/realms/test/protocol/saml/descriptor"
75- local res, err = httpc:request_uri(uri, { method = "GET" })
76- if err then
77- ngx.log(ngx.ERR, err)
78- ngx.exit(500)
79- end
80-
81- local read_cert = require "read_cert"
82- local cert = res.body:match("<ds:X509Certificate>(.-)</ds:X509Certificate>")
83- idp_cert = read_cert.read_cert(cert)
84- end
85-
86- local opts = setmetatable({sp_issuer = sp_issuer, idp_cert = idp_cert}, {__index = default_opts})
59+ local kc = require("lib.keycloak")
60+ local opts = setmetatable({sp_issuer = sp_issuer}, {__index = kc.get_default_opts()})
8761 ngx.log(ngx.INFO, "create sp_issuer=", sp_issuer)
8862 local saml = require("resty.saml").new(opts)
8963 samls[sp_issuer] = saml
9064 end
65+
9166 local saml = samls[sp_issuer]
9267 local data = saml:authenticate()
9368 ngx.ctx.data = data
9469 }
70+
9571 content_by_lua_block {
9672 local data = ngx.ctx.data
9773 if data and data.name_id then
@@ -124,9 +100,9 @@ __DATA__
124100 content_by_lua_block {
125101 local http = require "resty.http"
126102 local httpc = http.new()
127- local kc = require "keycloak"
103+ local kc = require "lib. keycloak"
128104
129- local uri = "http://127.0.0.1:8088"
105+ local uri = "http://127.0.0.1:" .. ngx.var.server_port
130106 local username = "test"
131107 local password = "test"
132108
@@ -166,10 +142,10 @@ __DATA__
166142 content_by_lua_block {
167143 local http = require "resty.http"
168144 local httpc = http.new()
169- local kc = require "keycloak"
145+ local kc = require "lib. keycloak"
170146
171147 -- login to sp1
172- local uri = "http://127.0.0.1:8088"
148+ local uri = "http://127.0.0.1:" .. ngx.var.server_port
173149 local username = "test"
174150 local password = "test"
175151
@@ -188,7 +164,7 @@ __DATA__
188164 assert(res.body == username)
189165
190166 -- login to sp2
191- local uri2 = "http://127.0.0.2:8099"
167+ local uri2 = "http://127.0.0.2:" .. ngx.var.server_port
192168
193169 local res, err, saml_cookie2 = kc.login_keycloak_for_second_sp(uri2, keycloak_cookie)
194170 if err or res.headers['Location'] ~= "/" then
0 commit comments