Rozwiązywanie problemów z wdrażaniem zasad podstawowego uwierzytelniania

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

UserNameRequired

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Username element must be present for operation operation.

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Username element must be present for Encode operation.

Przykładowy zrzut ekranu

Przyczyna

Wdrożenie serwera proxy interfejsu API nie powiedzie się, jeśli element <User> nie jest zdefiniowany w zasadzie uwierzytelniania podstawowego. Element <User> jest wymagany zarówno do kodowania, jak i dekodowania.

Diagnostyka

  1. Sprawdź wszystkie zasady uwierzytelniania podstawowego używane na serwerze proxy interfejsu API. Jeśli istnieje zasada, w której element <User> nie jest określony, to jest przyczyną błędu. Element <User> jest wymagany w zasadzie uwierzytelniania podstawowego podczas kodowania i dekodowania.

    Pokazana poniżej przykładowa zasada podstawowego uwierzytelniania jest używana do operacji kodowania, ale nie ma zdefiniowanego elementu <User>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <Password ref="BasicAuth.credentials.password"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Wdrożenie nie powiodło się z powodu tego błędu:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Rozdzielczość

Upewnij się, że element <User> jest zdefiniowany w zasadzie uwierzytelniania podstawowego na potrzeby kodowania lub dekodowania.

Aby poprawić powyższy przykład, umieść w zasadzie element <User> w podany niżej sposób:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

PasswordRequired

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Password element must be present for operation operation.

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Password element must be present for Encode operation.

Przykładowy zrzut ekranu

Przyczyna

Wdrożenie serwera proxy interfejsu API nie powiedzie się, jeśli element <Password> nie jest zdefiniowany w zasadzie uwierzytelniania podstawowego. Element <Password> jest wymagany zarówno do kodowania, jak i dekodowania.

Diagnostyka

  1. Sprawdź wszystkie zasady uwierzytelniania podstawowego używane na serwerze proxy interfejsu API. Jeśli istnieje zasada, w której element <Password> nie jest zdefiniowany, to jest przyczyną błędu. Element <Password> jest wymagany w zasadzie uwierzytelniania podstawowego na potrzeby kodowania lub dekodowania.

    Pokazana poniżej przykładowa zasada podstawowego uwierzytelniania jest używana do operacji kodowania, ale nie ma zdefiniowanego elementu <Password>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Wdrożenie nie powiodło się z powodu tego błędu:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Rozdzielczość

Upewnij się, że element <Password> jest zdefiniowany w zasadzie uwierzytelniania podstawowego na potrzeby kodowania lub dekodowania.

Aby poprawić powyższy przykład, umieść w zasadzie element <Password> w podany niżej sposób:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

AssignToRequired

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: AssignTo element must be present for operation operation.

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.

Przykładowy zrzut ekranu

Przyczyna

Wdrożenie serwera proxy interfejsu API nie powiedzie się, jeśli element <AssignTo> nie jest zdefiniowany w zasadzie uwierzytelniania podstawowego. Element <AssignTo> jest wymagany zarówno do kodowania, jak i dekodowania.

Diagnostyka

  1. Sprawdź wszystkie zasady uwierzytelniania podstawowego używane na serwerze proxy interfejsu API. Jeśli istnieje zasada, w której element <AssignTo> nie jest zdefiniowany, to jest przyczyną błędu. Element <AssignTo> musi być zdefiniowany w zasadzie uwierzytelniania podstawowego w przypadku operacji kodowania i dekodowania.

    Pokazana poniżej przykładowa zasada podstawowego uwierzytelniania jest używana do operacji kodowania, ale nie ma zdefiniowanego elementu <AssignTo>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <Password ref="BasicAuth.credentials.password"/>
    </BasicAuthentication>
    

    Wdrożenie nie powiodło się z powodu tego błędu:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Rozdzielczość

Upewnij się, że element <AssignTo> jest zdefiniowany w zasadzie uwierzytelniania podstawowego na potrzeby kodowania lub dekodowania.

Aby poprawić powyższy przykład, umieść w zasadzie element <AssignTo> w podany niżej sposób:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

SourceRequired

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Source element must be present for Decode operation.

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Source element must be present for Decode operation.

Przykładowy zrzut ekranu

Przyczyna

Wdrożenie serwera proxy interfejsu API nie powiedzie się, jeśli element <Source> nie jest zdefiniowany w zasadzie BasicAuth, która jest używana do dekodowania operacji. Element <Source> jest wymagany, jeśli w zasadzie uwierzytelniania podstawowego <Operation> jest określony jako Decode.

Diagnostyka

  1. Sprawdź wszystkie zasady uwierzytelniania podstawowego używane na serwerze proxy interfejsu API. Jeśli istnieje zasada, w której element <Source> nie jest zdefiniowany, a element <Operation> jest zdefiniowany jako Decode, to jest przyczyną błędu. Element <Source> jest wymagany, jeśli w zasadzie uwierzytelniania podstawowego <Operation> jest określony jako Decode.

    Pokazana poniżej przykładowa zasada podstawowego uwierzytelniania jest używana w operacji Decode, ale nie ma zdefiniowanego elementu <Source>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Decode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <Password ref="BasicAuth.credentials.password"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Wdrożenie nie powiodło się z powodu tego błędu:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Rozdzielczość

Upewnij się, że element <Source> jest zdefiniowany w zasadzie uwierzytelniania podstawowego, gdy jest on używany w operacji Decode.

Aby poprawić powyższy przykład, umieść w zasadzie element <Source> w podany niżej sposób:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Decode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
    <Source>request.header.Authorization</Source>
</BasicAuthentication>