La API REST de NetWorker falla con el error interno del servidor 500

요약: La interfaz de programación de aplicaciones (API) REST de NetWorker se utiliza para administrar la zona de datos de NetWorker configurada con autenticación de protocolo ligero de acceso a directorios (LDAP). Los comandos de la API REST no pueden autenticarse con una excepción SocketTimeoutException y el error 500 de HTTP del servidor cuando se utiliza una cuenta LDAP. El síntoma se detecta cuando se ejecutan los comandos de la API REST mediante un script, un navegador o una línea de comandos. ...

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

증상

Un ejemplo de salida para la utilidad de línea de comandos 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"}
#


La variable /nsr/logs/restapi/restapi.log Muestra:

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 utiliza un servidor de autenticación remoto para la autenticación LDAP. El comando estándar de la API REST utiliza NetWorker Server local para el servidor de autenticación, por lo que no puede procesar la autenticación LDAP.

해결

El servidor de autenticación remoto se debe especificar en el comando de la API REST con el encabezado X-NW-AUTHC-BASE-URL.

Ejemplo de consulta global de API REST:

curl -k -v -H "Accept: application/json" --user myuser@mydomain -X GET https://NSR_NAME:9090/nwrestapi/v3/global/

Ejemplo de consulta global de API REST con un servidor de autenticación remoto

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 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.