Azure / Azure/azure-libraries-for-java
WebApp update failing with password validation when using existing AppServiceCertificateOrder
- Lenguaje dominante
- Java
- Estrellas
- 97
- Forks
- 102
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
We have the following code that tries to update an existing WebApp with an existing AppServiceCertificateOrder.
```
AppServiceCertificateOrder certificateOrder = azure.appServices().certificateOrders().getById(OUR_APPSERVICECERT_ID);
webApp.update().defineSslBinding()
.forHostname(OUR_HOSTNAME)
.withExistingAppServiceCertificateOrder(certificateOrder)
.withSniBasedSsl()
.attach()
.apply();
```
The certificateOrder that is retrieved seems correct when debugging, so our ID is not the problem. However, when the update is applied, the API fails with the following error (the request is never sent, if I debugged correctly). I don't see where or why I would need to provide a password to use an existing AppServiceCertificate, though, so this appears to be a bug or I am using the API incorrectly.
> java.lang.IllegalArgumentException: password is required and cannot be null.
at com.microsoft.rest.Validator.validate(Validator.java:85) ~[client-runtime-1.3.0.jar:?]
at com.microsoft.azure.management.appservice.implementation.CertificatesInner.createOrUpdateWithServiceResponseAsync(CertificatesInner.java:491) ~[azure-mgmt-appservice-1.6.0.jar:1.6.0]
at com.microsoft.azure.management.appservice.implementation.CertificatesInner.createOrUpdateAsync(CertificatesInner.java:460) ~[azure-mgmt-appservice-1.6.0.jar:1.6.0]
at com.microsoft.azure.management.appservice.implementation.AppServiceCertificateImpl$3.call(AppServiceCertificateImpl.java:157) ~[azure-mgmt-appservice-1.6.0.jar:1.6.0]
at com.microsoft.azure.management.appservice.implementation.AppServiceCertificateImpl$3.call(AppServiceCertificateImpl.java:154) ~[azure-mgmt-appservice-1.6.0.jar:1.6.0]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.producers.SingleProducer.request(SingleProducer.java:65) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Subscriber.setProducer(Subscriber.java:211) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted(OperatorSingle.java:110) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.DeferredScalarSubscriber.complete(DeferredScalarSubscriber.java:102) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeTakeLastOne$TakeLastOneSubscriber.onCompleted(OnSubscribeTakeLastOne.java:57) ~[rxjava-1.2.4.jar:1.2.4]
at rx.observers.SerializedObserver.onCompleted(SerializedObserver.java:176) ~[rxjava-1.2.4.jar:1.2.4]
at rx.observers.SerializedSubscriber.onCompleted(SerializedSubscriber.java:64) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain(OnSubscribeConcatMap.java:246) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onCompleted(OnSubscribeConcatMap.java:169) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.slowPath(OnSubscribeFromArray.java:106) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.request(OnSubscribeFromArray.java:63) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Subscriber.setProducer(Subscriber.java:211) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeFromArray.call(OnSubscribeFromArray.java:32) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeFromArray.call(OnSubscribeFromArray.java:24) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10142) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:94) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:42) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10142) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.DeferredScalarSubscriber.subscribeTo(DeferredScalarSubscriber.java:153) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeTakeLastOne.call(OnSubscribeTakeLastOne.java:32) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeTakeLastOne.call(OnSubscribeTakeLastOne.java:22) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10142) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10142) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) ~[rxjava-1.2.4.jar:1.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10142) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:230) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) ~[rxjava-1.2.4.jar:1.2.4]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_51]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_51]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_51]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_51]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
Guía de contribución
Línea de trabajo
Comienza en el flujo de WebApp update().defineSslBinding() y sigue AppServiceCertificateImpl hasta CertificatesInner.createOrUpdateAsync, donde el stack trace informa de la validación de una contraseña nula. Reproduce el escenario existente de AppServiceCertificateOrder e inspecciona la ruta de solicitud generada. Se considera terminado cuando se puede adjuntar un pedido de certificado existente sin un fallo innecesario de validación de contraseña.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- azure, java
- Área
- cloud
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100