Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
UnresolvedVariable
Kod błędu
steps.basicauthentication.UnresolvedVariable
Treść odpowiedzi o błędzie
{
"fault": {
"faultstring": "Unresolved variable : [variable_name]",
"detail": {
"errorcode": "steps.basicauthentication.UnresolvedVariable"
}
}
}
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Unresolved variable : request.header.Authorization",
"detail": {
"errorcode": "steps.basicauthentication.UnresolvedVariable"
}
}
}
Przyczyna
Ten błąd występuje, jeśli zmienna zawierająca ciąg zakodowany w standardzie Base64 określony w elemencie <Source>
zasady uwierzytelniania podstawowego ma jedną z tych wartości:
- Poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada)
- Nie można rozwiązać (nie określono)
Ten błąd występuje na przykład wtedy, gdy zasada podstawowego uwierzytelniania zawiera zmienną określoną jako request.header.Authorization
w elemencie <Source>
, ale nagłówek autoryzacji nie jest przekazywany w żądaniu do interfejsu API.
Diagnostyka
Zidentyfikuj zmienną używaną dla elementu
<Source>
w zasadzie uwierzytelniania podstawowego. Te informacje znajdziesz w elemenciefaultstring
odpowiedzi o błędzie. Na przykład w elemenciefaultstring,
zmienna używana dla elementu<Source>
torequest.header.Authorization
:"faultstring": "Unresolved variable : request.header.Authorization"
Sprawdź wszystkie zasady uwierzytelniania podstawowego na konkretnym serwerze proxy interfejsu API, gdzie wystąpił błąd. Może istnieć co najmniej jedna zasada uwierzytelniania podstawowego. Wskaż konkretne zasady uwierzytelniania podstawowego, w których zmienna określona w elemencie
<Source>
odpowiada nazwie zmiennej określonej w ciągu błędu (krok 1 powyżej).Na przykład ta zasada ustawia w elemencie
<Source>
zmienną o nazwierequest.header.Authorization
, która odpowiada zawartości plikufaultstring
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <BasicAuthentication name="DecodeBaseAuthHeaders"> <DisplayName>Decode Basic Authentication Header</DisplayName> <Operation>Decode</Operation> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <User ref="request.header.username"/> <Password ref="request.header.password"/> <Source>request.header.Authorization</Source> </BasicAuthentication>
Określ, czy zmienna jest zdefiniowana i dostępna w procesie, w którym jest wykonywana zasada uwierzytelniania podstawowego.
Jeśli zmienna to:
- Poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada)
- Nie można rozwiązać (nie określono)
To jest przyczyna błędu.
W przedstawionej powyżej przykładowej zasadzie podstawowego uwierzytelniania zmienna
request.header.Authorization
nie została przekazana w żądaniu. Oznacza to, że żądanie do interfejsu API zostało wysłane bez nagłówka Authorization, jak pokazano poniżej:curl -v "http://org-env.apigee.net/basicauth"
Ponieważ zmienna używana w zasadzie uwierzytelniania podstawowego jest niedostępna, pojawia się kod błędu:
steps.basicauthentication.UnresolvedVariable
Rozdzielczość
Upewnij się, że zmienna używana w zasadzie podstawowego uwierzytelniania jest zdefiniowana lub przekazana jako dane wejściowe i jest dostępna w procesie, w którym jest wykonywana.
Aby rozwiązać problem z przykładową zasadą podstawowego uwierzytelniania omówioną powyżej, wyślij żądanie do interfejsu API w sposób pokazany poniżej:
curl -v "http://org-env.apigee.net/basicauth" -H "Authorization: Basic YWthc2g6MTIz"
InvalidBasicAuthenticationSource
Kod błędu
steps.basicauthentication.InvalidBasicAuthenticationSource
Treść odpowiedzi o błędzie
{
"fault": {
"faultstring": "Source variable : [variable_name] for basic authentication decode policy is not valid",
"detail": {
"errorcode": "steps.basicauthentication.InvalidBasicAuthenticationSource"
}
}
}
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Source variable : request.header.Authorization for basic authentication decode policy is not valid",
"detail": {
"errorcode": "steps.basicauthentication.InvalidBasicAuthenticationSource"
}
}
}
Możliwe przyczyny
Możliwe przyczyny tego błędu:
Przyczyna | Opis |
---|---|
Nieprawidłowa zmienna źródłowa | Wejściowa zmienna źródła uwierzytelniania zasady podstawowego uwierzytelniania nie jest prawidłowym ciągiem zakodowanym w standardzie Base64. |
Nieprawidłowy format nagłówka | Nagłówek zawierający ciąg zakodowany w standardzie Base64 przekazany do zasady uwierzytelniania podstawowego ma nieprawidłowy format. |
Przyczyna: nieprawidłowa zmienna źródłowa
Ten błąd występuje, jeśli zmienna zawierająca ciąg zakodowany w standardzie Base64 określony w elemencie <Source>
zasady uwierzytelniania podstawowego nie zawiera prawidłowej wartości.
Ten błąd występuje na przykład wtedy, gdy zmienna określona w elemencie <Source>
zasad uwierzytelniania podstawowego nie zawiera prawidłowego ciągu zakodowanego w standardzie Base64.
Diagnostyka
Zidentyfikuj zmienną używaną dla elementu
<Source>
w zasadzie uwierzytelniania podstawowego. Te informacje znajdziesz w elemenciefaultstring
odpowiedzi o błędzie. Na przykład w elemenciefaultstring,
zmienna używana dla elementu<Source>
torequest.header.Authorization
:"faultstring": "Source variable : request.header.Authorization for basic authentication decode policy is not valid"
Sprawdź wszystkie zasady uwierzytelniania podstawowego na konkretnym serwerze proxy interfejsu API, gdzie wystąpił błąd. Może istnieć co najmniej jedna zasada uwierzytelniania podstawowego. Wskaż konkretne zasady uwierzytelniania podstawowego, w których zmienna określona w elemencie
<Source>
odpowiada nazwie zmiennej określonej w ciągu błędu (krok 1 powyżej).Na przykład ta zasada ustawia w elemencie
<Source>
zmienną o nazwierequest.header.Authorization
, która odpowiada zawartości plikufaultstring
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <BasicAuthentication name="DecodeBaseAuthHeaders"> <DisplayName>Decode Basic Authentication Header</DisplayName> <Operation>Decode</Operation> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <User ref="request.header.username"/> <Password ref="request.header.password"/> <Source>request.header.Authorization</Source> </BasicAuthentication>
Jeśli wartość przechowywana w zmiennej określonej w elemencie
<Source>
nie jest prawidłowym ciągiem zakodowanym w standardzie Base64,to jest przyczyną błędu.
W przykładowej zasadzie uwierzytelniania podstawowego opisanego powyżej zmienna
request.header.Authorization
wysłana przez klienta jako nagłówek była nieprawidłowa, jak pokazano poniżej:curl -v "http://org-env.apigee.net/basicauth" -H "Authorization: Basic 23435"
Zmienna
request.header.Authorization
zawiera nieprawidłowy ciąg znaków zakodowany w standardzie Base64, więc pojawia się kod błędu:23435"
steps.basicauthentication.InvalidBasicAuthenticationSource
Rozdzielczość
Sprawdź, czy zmienna określona dla elementu <Source>
w zasadzie uwierzytelniania podstawowego zawiera prawidłowy ciąg zakodowany w standardzie Base64.
Aby rozwiązać problem z przykładową zasadą podstawowego uwierzytelniania omówioną powyżej, wyślij żądanie do interfejsu API, przekazując w nagłówku Authorization prawidłowy ciąg zakodowany w standardzie Base64, jak pokazano poniżej:
curl -v "http://org-env.apigee.net/basicauth" -H "Authorization: Basic YWthc2g6MTIz"
Przyczyna: nagłówek jest nieprawidłowy lub nieprawidłowy
Ten błąd występuje, jeśli nagłówek przekazywany do zasad uwierzytelniania podstawowego jest uszkodzony lub nieprawidłowy.
Ten błąd występuje na przykład wtedy, gdy zasada BasicAuth zawiera zmienną określoną jako request.header.Authorization
w elemencie <Source>
, a nagłówek przekazany w ramach żądania do interfejsu API ma nieprawidłowy format lub jest nieprawidłowy.
Diagnostyka
Zidentyfikuj zmienną używaną dla elementu
<Source>
w zasadzie uwierzytelniania podstawowego. Te informacje znajdziesz w elemenciefaultstring
odpowiedzi o błędzie. Na przykład w poniższym błędzie zmienna używana dla elementu<Source>
torequest.header.Authorization
:"faultstring": "Source variable : request.header.Authorization for basic authentication decode policy is not valid"
Sprawdź wszystkie zasady uwierzytelniania podstawowego na konkretnym serwerze proxy interfejsu API, gdzie wystąpił błąd. Może istnieć co najmniej jedna zasada uwierzytelniania podstawowego. Wskaż konkretne zasady uwierzytelniania podstawowego, w których zmienna określona w elemencie
<Source>
odpowiada nazwie zmiennej określonej w ciągu błędu (krok 1 powyżej).Na przykład ta zasada ustawia w elemencie
<Source>
zmienną o nazwierequest.header.Authorization
, która odpowiada zawartości plikufaultstring
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <BasicAuthentication name="DecodeBaseAuthHeaders"> <DisplayName>Decode Basic Authentication Header</DisplayName> <Operation>Decode</Operation> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <User ref="request.header.username"/> <Password ref="request.header.password"/> <Source>request.header.Authorization</Source> </BasicAuthentication>
Jeśli zmienna jest nagłówkiem, a jej format jest nieprawidłowy lub ma nieprawidłowy format, czyli nie ma typu uwierzytelniania lub typ uwierzytelniania jest inny niż „Podstawowe”, to jest przyczyną błędu.
Nagłówek Authorization ma następujący format:
Authorization: <Authentication type> <credentials>
Nieprawidłowy nagłówek może zostać przekazany do zasady uwierzytelniania podstawowego na 2 sposoby:
Przykład 1. Brak typu uwierzytelniania w nagłówku
curl -v "http://org-env.apigee.net/basicauth" -H "Authorization: YWthc2g6MTIz"
W powyższym przykładzie nagłówek Autoryzacja nie ma wartości Typ uwierzytelniania. Jeśli ten nagłówek zostanie przekazany do zasady uwierzytelniania podstawowego widocznej powyżej, zostanie wyświetlony kod błędu:
steps.basicauthentication.InvalidBasicAuthenticationSource
Przykład 2. Typ uwierzytelniania nie jest typu „Podstawowe”:
curl -v "http://org-env.apigee.net/basicauth" -H "Authorization: OAuth YWthc2g6MTIz"
W powyższym przykładzie nagłówek Autoryzacja nie ma typu uwierzytelniania „Podstawowe”. Jeśli zostanie przekazane do zasady uwierzytelniania podstawowego widocznej powyżej, otrzymasz kod błędu:
steps.basicauthentication.InvalidBasicAuthenticationSource
Ten błąd może również wystąpić, jeśli w nagłówku Authorization (Autoryzacja) typ uwierzytelniania, taki jak okaziciel, Autoryzacja Digest Auth itp.
Rozdzielczość
Upewnij się, że nagłówek, w którym przekazywane są dane wejściowe zasady uwierzytelniania podstawowego, ma typ uwierzytelniania i ma typ „Podstawowe”.
Aby rozwiązać problem z przykładową zasadą uwierzytelniania podstawowego omówioną powyżej, wyślij żądanie do interfejsu API, przekazując w nagłówku Authorization prawidłowy ciąg zakodowany w standardzie Base64 z typem uwierzytelniania „podstawowego”, jak pokazano poniżej:
curl -v "http://org-env.apigee.net/basicauth" -H "Authorization: Basic YWthc2g6MTIz"