You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

solr-nightly:10.1.0-SNAPSHOT启用BasicAuth后UI认证异常求助

Solr夜间版UI启用Basic Auth后直接返回401问题排查

问题背景

在Docker中以host网络模式运行apache/solr-nightly:10.1.0-SNAPSHOT,指定--host 10.10.0.5连接3个ZK节点。执行docker exec -i solr10 bin/solr auth enable -type basicAuth -credentials admin:password启用基础认证后,后端API正常要求凭证,但Web浏览器访问UI时直接返回HTTP ERROR 401 Authentication failed, Response code: 401,不弹出凭证输入框。相同配置在9.10.1版本无此问题。

可能的解决方向

1. 强制Jetty对UI路径发送认证响应头

夜间版可能调整了Jetty默认配置,导致UI静态资源请求未触发Basic Auth的WWW-Authenticate响应头。可以添加SOLR_OPTS参数强制所有路径启用认证挑战:

environment:
  - ZK_HOST=10.10.0.2:2181,10.10.0.3:2181,10.10.0.4:2181
  - SOLR_OPTS=-Dmetrics.jetty.host=0.0.0.0 -Dsolr.jetty.authentication.basic.force=true

重启容器后重试访问UI。

2. 替换--host参数为环境变量绑定

使用--host参数结合host网络模式可能导致主机头匹配异常,Solr仅处理指定IP的认证流程,浏览器请求的主机头不匹配时跳过挑战。改用SOLR_HOST环境变量绑定主机:

services:
  solr1:
    image: apache/solr-nightly:10.1.0-SNAPSHOT
    container_name: solr10
    restart: unless-stopped
    network_mode: host
    environment:
      - SOLR_HOST=10.10.0.5
      - ZK_HOST=10.10.0.2:2181,10.10.0.3:2181,10.10.0.4:2181
      - SOLR_OPTS=-Dmetrics.jetty.host=0.0.0.0
    volumes:
      - ./solr10:/var/solr

移除原command中的--host配置,重启容器测试。

3. 手动触发浏览器认证验证

如果是浏览器未收到认证响应头,可以直接在地址栏携带凭证访问:

http://admin:password@10.10.0.5:8983/solr

若UI能正常加载,说明问题出在认证响应头的发送逻辑,需要进一步检查Solr的security.json配置,确保forwardCredentials参数为true:

docker exec -i solr10 cat /var/solr/data/security.json

确认security.json中authentication部分包含"forwardCredentials": true,保证认证信息能传递到UI相关请求。

4. 检查夜间版UI认证逻辑bug

由于是快照版本,可能存在UI与Basic Auth适配的临时bug。可以尝试清理浏览器缓存后重试,或者切换到同一分支的最新夜间镜像,看是否已修复该问题。

内容的提问来源于stack exchange,提问作者miran80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 16:33:20