Azure / Azure/azure-libraries-for-java

WebApp update failing with password validation when using existing AppServiceCertificateOrder

Offen
#182 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
App Services Bug customer-reported Investigate
Vorherrschende Sprache
Java
Sterne
97
Forks
102
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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]

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne beim WebApp update().defineSslBinding()-Ablauf und verfolge AppServiceCertificateImpl bis zu CertificatesInner.createOrUpdateAsync, wo der Stacktrace die Validierung eines Null-Passworts meldet. Reproduziere das bestehende AppServiceCertificateOrder-Szenario und untersuche den generierten Request-Pfad. Fertig ist die Änderung, wenn ein bestehender Zertifikatsauftrag ohne einen unnötigen Passwort-Validierungsfehler angehängt werden kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, java
Bereich
cloud
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.