Azure / Azure/azure-libraries-for-java

WebApp update failing with password validation when using existing AppServiceCertificateOrder

Ouverte
#182 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
App Services Bug customer-reported Investigate
Langage dominant
Java
Étoiles
97
Forks
102
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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]

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par le flux WebApp update().defineSslBinding() et suivez AppServiceCertificateImpl jusqu’à CertificatesInner.createOrUpdateAsync, où la trace de la pile signale la validation d’un mot de passe null. Reproduisez le scénario AppServiceCertificateOrder existant et examinez le chemin de requête généré. Le travail est terminé lorsqu’un ordre de certificat existant peut être attaché sans échec de validation de mot de passe inutile.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
azure, java
Domaine
cloud
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.