NetWorker REST API не працює через внутрішню помилку сервера 500

요약: Інтерфейс програмування застосунків NetWorker REST (API) використовується для керування зоною даних NetWorker, налаштованою за аутентифікацією Lightweight Directory Access Protocol (LDAP). Команди REST API не автентифікуються за допомогою SocketTimeoutException та помилки HTTP сервера 500 при використанні облікового запису LDAP. Цей симптом виникає при виконанні команд 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"}
#


The /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 Server використовує віддалений сервер автентифікації для 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
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.