bmbper opened a new issue, #11835:
URL: https://github.com/apache/apisix/issues/11835

   ### Description
   
   1.  config file:  config.yaml
   
   ```yaml
   deployment:
     role: traditional
     role_traditional:
       config_provider: etcd
     admin:
       admin_key:
         - name: admin
           key: edd1c9f034335f136f87ad84b625c8f1  # using fixed API token has 
security risk, please update it when you deploy to production environment
           role: admin
   apisix:
     extra_lua_path: /usr/local/apisix/custom/?.lua
     log_level: debug
   plugins:
     - demo
   ```
   2. plugin file  `/usr/local/apisix/custom/apisix/plugins/demo.lua`
   ```lua
   --
   -- Licensed to the Apache Software Foundation (ASF) under one or more
   -- contributor license agreements.  See the NOTICE file distributed with
   -- this work for additional information regarding copyright ownership.
   -- The ASF licenses this file to You under the Apache License, Version 2.0
   -- (the "License"); you may not use this file except in compliance with
   -- the License.  You may obtain a copy of the License at
   --
   --     http://www.apache.org/licenses/LICENSE-2.0
   --
   -- Unless required by applicable law or agreed to in writing, software
   -- distributed under the License is distributed on an "AS IS" BASIS,
   -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   -- See the License for the specific language governing permissions and
   -- limitations under the License.
   --
   local core     = require("apisix.core")
   local consumer_mod = require("apisix.consumer")
   local plugin_name = "demo"
   
   
   local schema = {
       type = "object",
       properties = {
           header = {
               type = "string",
               default = "apikey",
           },
           query = {
               type = "string",
               default = "apikey",
           },
           hide_credentials = {
               type = "boolean",
               default = false,
           }
       },
   }
   
   local consumer_schema = {
       type = "object",
       properties = {
           key = { type = "string" },
       },
       encrypt_fields = {"key"},
       required = {"key"},
   }
   
   
   local _M = {
       version = 0.1,
       priority = 2500,
       type = 'auth',
       name = plugin_name,
       schema = schema,
       consumer_schema = consumer_schema,
   }
   
   
   function _M.check_schema(conf, schema_type)
       if schema_type == core.schema.TYPE_CONSUMER then
           return core.schema.check(consumer_schema, conf)
       else
           return core.schema.check(schema, conf)
       end
   end
   
   
   function _M.rewrite(conf, ctx)
       local from_header = true
       local key = core.request.header(ctx, conf.header)
   
       if not key then
           local uri_args = core.request.get_uri_args(ctx) or {}
           key = uri_args[conf.query]
           from_header = false
       end
   
       if not key then
           return 401, {message = "Missing API key found in request"}
       end
   
       local consumer_conf = consumer_mod.plugin(plugin_name)
       if not consumer_conf then
           return 401, {message = "Missing related consumer"}
       end
   
       local consumers = consumer_mod.consumers_kv(plugin_name, consumer_conf, 
"key")
       local consumer = consumers[key]
       if not consumer then
           return 401, {message = "Invalid API key in request"}
       end
       core.log.info("consumer: ", core.json.delay_encode(consumer))
   
       if conf.hide_credentials then
           if from_header then
               core.request.set_header(ctx, conf.header, nil)
           else
               local args = core.request.get_uri_args(ctx)
               args[conf.query] = nil
               core.request.set_uri_args(ctx, args)
           end
       end
   
       consumer_mod.attach_consumer(ctx, consumer, consumer_conf)
       core.log.info("hit key-auth rewrite")
   end
   
   
   return _M
   
   
   ```
   
   3. when i run `apisix start`, i got an error in error.log
   ```log
   2024/12/16 17:05:52 [error] 152181#152181: *22207 [lua] plugin.lua:138: 
load_plugin(): failed to load plugin [demo] err: module 'apisix.plugins.demo' 
not found:
        no field package.preload['apisix.plugins.demo']
        no file '/usr/local/apisix/custom/\apisix/plugins/demo.lua'
        no file '/usr/local/apisix//deps/share/lua/5.1/apisix/plugins/demo.lua'
        no file 
'/usr/local/apisix//deps/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file '/usr/local/apisix/apisix/plugins/demo.lua'
        no file '/usr/local/apisix/apisix/plugins/demo/init.lua'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo.ljbc'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo/init.ljbc'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo.ljbc'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo/init.ljbc'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo.lua'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo/init.lua'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo.lua'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo/init.lua'
        no file './apisix/plugins/demo.lua'
        no file 
'/usr/local/openresty/luajit/share/luajit-2.1/apisix/plugins/demo.lua'
        no file '/usr/local/share/lua/5.1/apisix/plugins/demo.lua'
        no file '/usr/local/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file 
'/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/demo.lua'
        no file 
'/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file '/usr/local/apisix/apisix/plugins/demo.lua'
        no file './apisix/plugins/demo.lua'
        no file 
'/usr/local/openresty/luajit/share/luajit-2.1/apisix/plugins/demo.lua'
        no file '/usr/local/share/lua/5.1/apisix/plugins/demo.lua'
        no file '/usr/local/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file 
'/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/demo.lua'
        no file 
'/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo.ljbc'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo/init.ljbc'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo.ljbc'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo/init.ljbc'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo.lua'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo/init.lua'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo.lua'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo/init.lua'
        no file './apisix/plugins/demo.lua'
        no file 
'/usr/local/openresty/luajit/share/luajit-2.1/apisix/plugins/demo.lua'
        no file '/usr/local/share/lua/5.1/apisix/plugins/demo.lua'
        no file '/usr/local/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file 
'/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/demo.lua'
        no file 
'/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/demo/init.lua'
        no file '/usr/local/apisix//deps/lib64/lua/5.1/apisix/plugins/demo.so'
        no file '/usr/local/apisix//deps/lib/lua/5.1/apisix/plugins/demo.so'
        no file '/usr/local/openresty/site/lualib/apisix/plugins/demo.so'
        no file '/usr/local/openresty/lualib/apisix/plugins/demo.so'
        no file './apisix/plugins/demo.so'
        no file '/usr/local/lib/lua/5.1/apisix/plugins/demo.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix/plugins/demo.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
        no file './apisix/plugins/demo.so'
        no file '/usr/local/lib/lua/5.1/apisix/plugins/demo.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix/plugins/demo.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
        no file '/usr/local/apisix//deps/lib64/lua/5.1/apisix.so'
        no file '/usr/local/apisix//deps/lib/lua/5.1/apisix.so'
        no file '/usr/local/openresty/site/lualib/apisix.so'
        no file '/usr/local/openresty/lualib/apisix.so'
        no file './apisix.so'
        no file '/usr/local/lib/lua/5.1/apisix.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
        no file './apisix.so'
        no file '/usr/local/lib/lua/5.1/apisix.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix
   ```
   
   
   
   ### Environment
   
   - APISIX version (run `apisix version`): 3.9.1
   - Operating system (run `uname -a`): Linux worker4 3.10.0-1160.el7.x86_64 #1 
SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
   
   - OpenResty / Nginx version (run `openresty -V` or `nginx -V`): nginx 
version: openresty/1.25.3.1
   
   - etcd version, if relevant (run `curl 
http://127.0.0.1:9090/v1/server_info`): 3.5.17
   - APISIX Dashboard version, if relevant: not use 
   - Plugin runner version, for issues related to plugin runners: 
   - LuaRocks version, for installation issues (run `luarocks --version`): not 
found
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to