NetWorker REST API 失败并显示内部服务器错误 500
摘要: NetWorker REST 应用程序编程接口 (API) 用于管理配置了轻量级目录访问协议 (LDAP) 身份验证的 NetWorker 数据区。 使用 LDAP 帐户时,REST API 命令无法使用 SocketTimeoutException 和服务器 HTTP 错误 500 进行身份验证。 使用脚本、浏览器或命令行运行 REST API 命令时,会遇到此症状。 ...
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
curl 命令行实用程序的输出示例:
# curl -k -v -H "Authorization: Basic YmFhc2hjOkUzdHZvdUVrV3ZpQdN6" -H "Accept: application/json" -X GET https://MY_NSR_SERVER:9090/nwrestapi/v3/global/
* About to connect() to MY_NSR_SERVER port 9090 (#0)
* Trying XXX.XXX.XXX.XXX...
* Connected to MY_NSR_SERVER (XXX.XXX.XXX.XXX) port 9090 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=MY_NSR_SERVER.MY_DOMAIN,OU=NetWorker,O=DELL,L=Round Rock,ST=TX,C=US
* start date: Sep 14 HH:MM:SS YYYY GMT
* expire date: Sep 08 HH:MM:SS YYYY GMT
* common name: MY_NSR_SERVER.MY_DOMAIN
* issuer: CN=MY_NSR_SERVER.MY_DOMAIN,OU=NetWorker,O=DELL,L=Round Rock,ST=TX,C=US
> GET /nwrestapi/v3/global/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: MY_NSR_SERVER:9090
> Authorization: Basic YmFhc2hjOkUzdHZvdUVrV3ZpQdN6
> Accept: application/json
>
< HTTP/1.1 500
< Content-Security-Policy: frame-ancestors 'none';script-src' 'self';object-src 'self'
< Strict-Transport-Security: max-age=31622400; includeSubDomains
< X-XSS-Protection: 1; mode=block
< Date: Tue, 04 Jan 2022 23:42:12 GMT
< Cache-Control: no-cache,no-store,must-revalidate
< Pragma: no-cache
< Expires: 0
< Content-Type: application/json
< Transfer-Encoding: chunked
< Connection: close
< Server: NSR SERVICES for Authentication
<
* Closing connection 0
{"message":"java.net.SocketTimeoutException: SocketTimeoutException invoking https://localhost:9090/auth-server/api/v1/sec/authenticate [localhost]: Read timed out","status":{"code":500,"codeClass":"Server Error","reasonPhrase":"Internal Server Error"},"timestamp":"2022-01-04T18:42:12-05:00","userAgentRequest":{"headers":[{"name":"Accept","value":"application/json"},{"name":"Accept-Language"},{"name":"Content-Type"}],"method":"GET","url":https://MY_NSR_SERVER:9090/nwrestapi/v3/global/ [MY_NSR_SERVER]},"version":"19.4.0.5.Build.222"}
#
而 /nsr/logs/restapi/restapi.log 显示:
YYYY-MM-DD HH:MM:SS WARN [https-jsse-nio-9090-exec-11134] o.a.c.p.PhaseInterceptorChain - Interceptor for {https://localhost:9090/auth-server/api/v1/sec/authenticate}WebClient has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not receive Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:65) ~[cxf-core-3.3.7.jar:3.3.7]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.3.7.jar:3.3.7]
at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:704) [cxf-rt-rs-client-3.3.7.jar:3.3.7]
...
... 64 common frames omitted
YYYY-MM-DD HH:MM:SS ERROR [https-jsse-nio-9090-exec-11134] c.e.n.w.WebApiExceptionMapper - Status 'Internal Server Error', msg: java.net.SocketTimeoutException: SocketTimeoutException invoking https://localhost:9090/auth-server/api/v1/sec/authenticate: Read timed out
javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: SocketTimeoutException invoking https://localhost:9090/auth-server/api/v1/sec/authenticate: Read timed out
at org.apache.cxf.jaxrs.client.AbstractClient.checkClientException(AbstractClient.java:632) ~[cxf-rt-rs-client-3.3.7.jar:3.3.7]
...
... 64 common frames omitted原因
NetWorker 服务器使用远程身份认证服务器进行 LDAP 身份认证。标准 REST API 命令使用本地 NetWorker 服务器作为身份验证服务器,因此它无法处理 LDAP 身份验证。
解决方案
必须在 REST API 命令中使用 X-NW-AUTHC-BASE-URL 标头指定远程身份验证服务器。
REST API 全局查询示例:
curl -k -v -H "Accept: application/json" --user myuser@mydomain -X GET https://NSR_NAME:9090/nwrestapi/v3/global/
使用远程身份验证服务器的 REST API 全局查询示例
curl -k -v -H "X-NW-AUTHC-BASE-URL:MY_AUTH_NAME.MY_DOMAIN:9090" -H "Accept: application/json" --user myuser@mydomain -X GET https://NSR_NAME:9090/nwrestapi/v3/global/
文章属性
文章编号: 000196183
文章类型: Solution
上次修改时间: 18 11月 2025
版本: 3
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。