lua-resty-openidc: поток ввода прерван: ошибка времени выполнения: попытка вызвать поле «start» (нулевое значение)

Окружающая среда
  • lua-resty-openidc: v1.7.5
  • Поставщик OpenID Connect: Keycloak
Это то, что я делаю

Для информации, я использую его на нашем ingress-nginx-controller, при этом весь контент скопирован с /usr/local/openresty/lualib/restyк /etc/nginx/lua/. Когда вызывается конечная точка пользовательского интерфейса (например , https://ingress.myproject.local/myui), предполагается, что она перенаправляет соединение с Keycloak. мне позвонил клиент myuiпод основным царством в Keycloak.

Это мой текущий код
      location ~* "^/myui(/|$)(.*)" {
  .....
  .....
  access_by_lua_block {
      local opts = {
          redirect_uri = "/redirect_uri",
          accept_none_alg = true,
          discovery = "http://keycloak.myproject.local:8080/auth/realms/master/.well-known/openid-configuration",
          client_id = "myui",
          client_secret = "ABCDEFgHIJKLMnOPQRSTuVWXYZ",
          redirect_uri_scheme = "https",
          logout_path = "/logout",
          redirect_after_logout_uri = "http://keycloak.myproject.local:8080/auth/realms/master/protocol/openid-connect/logout?redirect_uri=https://ingress.myproject.local/myui/",
          redirect_after_logout_with_id_token_hint = false,
          session_contents = {id_token=true}
      }
      -- call introspect for OAuth 2.0 Bearer Access Token validation
      local res, err = require("resty.openidc").authenticate(opts)
           if err then
             ngx.status = 403
             ngx.say(err)
             ngx.exit(ngx.HTTP_FORBIDDEN)
           end
      }
     
      expires       0;
      add_header    Cache-Control private;
  }
}
Это то, что я получаю

После запуска я получаю 500 Internal Server Errorв браузере с ошибкой msg:

      [error] 549#549: *123249 lua entry thread aborted:  run time error: /etc/nginx/lua/resty/openidc.lua:1459: attempt to call field 'start' (a nil value)
stack traceback:
coroutin 0:
     /etc/nginx/lua/resty/openidc.lua: in function 'authenticate' 
     access_by_lua(nginx.conf:1075): 16: in main chunk, client xx.xx.xx.xx , server:  ingress.myproject.local, request: "GET /myui HTTP/2.0", host: "ingress.myproject.local"

Я не вижу ничего существенного в журнале, связанном с этим. Любая идея, почему я получаю это или что я делаю неправильно?

0 ответов

Другие вопросы по тегам