Interfejs API REST NetWorker kończy się niepowodzeniem z wewnętrznym błędem serwera 500
Summary: Interfejs programowania aplikacji (API) NetWorker REST jest używany do zarządzania strefą danych NetWorker skonfigurowaną z uwierzytelnianiem LDAP (Lightweight Directory Access Protocol). Polecenia interfejsu API REST nie uwierzytelniają się z wyjątkiem SocketTimeoutException i błędem HTTP serwera 500 podczas korzystania z konta LDAP. Ten objaw występuje podczas uruchamiania poleceń interfejsu API REST przy użyciu skryptu, przeglądarki lub wiersza polecenia. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
Przykładowe dane wyjściowe narzędzia wiersza poleceń 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"}
#
Polecenie /nsr/logs/restapi/restapi.log Pokazuje:
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 omittedCause
Serwer NetWorker używa zdalnego serwera uwierzytelniania do uwierzytelniania LDAP. Standardowe polecenie interfejsu API REST używa lokalnego serwera NetWorker jako serwera uwierzytelniania, więc nie jest w stanie przetworzyć uwierzytelniania LDAP.
Resolution
Serwer uwierzytelniania zdalnego należy określić w poleceniu interfejsu API REST za pomocą nagłówka X-NW-AUTHC-BASE-URL.
Przykładowe zapytanie globalne interfejsu API REST:
curl -k -v -H "Accept: application/json" --user myuser@mydomain -X GET https://NSR_NAME:9090/nwrestapi/v3/global/
Przykładowe globalne zapytanie interfejsu API REST ze zdalnym serwerem uwierzytelniania
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/
Article Properties
Article Number: 000196183
Article Type: Solution
Last Modified: 18 Nov 2025
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.