Azure / Azure/azure-libraries-for-java
WebApp update failing with password validation when using existing AppServiceCertificateOrder
- 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