<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>api接口ACL控制 :: NJET文档</title>
    <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/index.html</link>
    <description></description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Thu, 14 Aug 2025 14:14:17 +0800</lastBuildDate>
    <atom:link href="https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Acl_file</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/acl_file/index.html</link>
      <pubDate>Thu, 14 Aug 2025 14:14:06 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/acl_file/index.html</guid>
      <description>1.功能描述 ACL是Access Control List（访问控制列表）的缩写，它是一种用于访问控制的技术.控制面的每个模块提供了可选的配置指令limit_except,通过limit_except 指令，针对http 方法，进行鉴权.&#xA;2.依赖模块 无依赖模块&#xA;3.配置样例 njet_ctrl.conf&#xA;server { listen 8081; location /api { dyn_module_api; limit_except GET{ auth_basic &#34;OpenNJet API&#34;; auth_basic_user_file /root/bug/njet1.0/htpasswd; } } } 生成用户名，密码：&#xA;安装：yum install httpd-tools -y 生成密码：htpasswd -c -d /home/njet/api_acl/htpasswd test(用户名) 4.调用样例 njet_ctrl.conf 配置文件中配置了acl 后，访问kv 模块时需要用如下命令（需要添加用户名和密码）：&#xA;curl --user 用户名:密码 -X &#39;POST&#39; &#39;http://192.168.40.158:8081/api/v1/kv&#39; -H &#39;accept: */*&#39; -H &#39;Content-Type: application/json&#39; -d &#39;{ &#34;key&#34;: &#34;test_key&#34;, &#34;value&#34;: &#34;test msg&#34; }&#39; 获取键值对 curl -X &#39;GET&#39; &#39;http://192.168.40.158:8081/api/v1/kv?key=test_key&#39;</description>
    </item>
    <item>
      <title>auth_basic_kv 权限校验</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/acl_kv/index.html</link>
      <pubDate>Thu, 14 Aug 2025 14:14:10 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/acl_kv/index.html</guid>
      <description>1.功能描述 auth_basic_kv,利用kv存储用户名/密码：提供HTTP接口，实现动态增加条目，或修改密码，也支持删除&#xA;2.依赖模块 njet_ctrl.conf:&#xA;load_module modules/njt_http_auth_api_module.so; #auth kv 模块加载 3.指令说明 Syntax: auth_basic_kv {prefix}; Default: — Context: main, server, location, limit_conf 该指令可配置在main, server, location, limit_conf 块中&#xA;prefix支持变量，以便使用server_name等，方便配置。&#xA;njet_ctrl.conf:&#xA;... load_module modules/njt_http_range_api_module.so; #以range api 设置权限验证普通字符串前缀为例测试 load_module modules/njt_http_ssl_api_module.so; #以range api 设置权限验证变量前缀为例测试 load_module modules/njt_http_auth_api_module.so; #auth kv 模块加载 ... http { server { listen 8081; server_name www.test.com; #下面使用$server_name变量测试 location /api { dyn_module_api; api_limit_except /v1/range PUT { auth_basic &#34;OpenNJet range API&#34;; auth_basic_kv test_kv; #range 使用固定前缀字符串测试 } api_limit_except /v1/ssl PUT { auth_basic &#34;OpenNJet ssl API&#34;; auth_basic_kv $server_name; #ssl 使用变量前缀测试 } } location /doc { doc_api; } } } 4.API 4.1 API说明 设置接口：</description>
    </item>
    <item>
      <title>auth kv动态化</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/acl_dyn_kv/index.html</link>
      <pubDate>Thu, 14 Aug 2025 14:14:17 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/http/acl/acl_dyn_kv/index.html</guid>
      <description>1.功能描述 该模块有三个指令：&#xA;auth_basic: 是否auth认证开关，取值 [string|off], 默认值off。 取值可以为字符串（也可以为变量） 非off， 则为开启auth&#xA;auth_basic_user_file： 后面跟一个文件路径，使用密码文件进行auth认证&#xA;auth_basic_kv： 后面跟一个固定字符串前缀或者变量前缀，密码保存在kv数据库，可以通过 http api接口动态修改密码.&#xA;2.依赖模块 njet.conf:&#xA;load_module modules/njt_http_dyn_auth_module.so; 3.配置样例 njet.conf 配置如下：&#xA;... load_module modules/njt_http_dyn_auth_module.so; #加载动态auth模块 ... server { listen 443 ssl; server_name www.test.com; proxy_cache_valid any 1d; expires 1d; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5; ssl_certificate /etc/vsftpd/.sslkey/vsftpd.pem; ssl_certificate_key /etc/vsftpd/.sslkey/vsftpd.pem; set $passwd_file /root/bug/njet1.0/htpasswd; #后面测试使用变量 location / { auth_basic &#34;test auth no var&#34;; auth_basic_user_file /root/bug/njet1.0/htpasswd; root html; index index.html; } location /test1 { alias /root/bug/njet1.0/html; index index.html; auth_basic off; auth_basic_kv test_prefix; } location /test_off { alias /root/bug/njet1.0/html; index index.html; auth_basic &#34;test aaaa&#34;; } #配置为off, 但是auth_basic_user_file指令也配置了 location /test_off_config_file { alias /root/bug/njet1.0/html; index index.html; auth_basic off; auth_basic_user_file /root/bug/njet1.0/htpasswd; } #配置为off, 但是auth_basic_kv指令也配置了 location /test_off_config_kv { alias /root/bug/njet1.0/html; index index.html; auth_basic off; auth_basic_kv test_auth_prefix; } #配置为使用密码文件方式（原生自带功能） location /test_file_on { alias /root/bug/njet1.0/html; index index.html; auth_basic &#34;auth use file&#34;; auth_basic_user_file /root/bug/njet1.0/htpasswd; } #配置为使用kv 内存数据库固定字符串配置 location /test_kv_str_on { alias /root/bug/njet1.0/html; index index.html; auth_basic &#34;auth use kv&#34;; auth_basic_kv test_auth_prefix; #固定字符串 } #配置为使用kv 内存数据库变量配置 location /test_kv_var_on { alias /root/bug/njet1.0/html; index index.html; auth_basic &#34;auth use kv&#34;; auth_basic_kv $server_name; #变量 } } 4.API 4.1 api 列表 查询接口</description>
    </item>
  </channel>
</rss>