Khắc phục sự cố lỗi triển khai chính sách BasicXác thực

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

UserNameRequired

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai Proxy API được nếu phần tử <User> không được xác định trong chính sách BasicAuthentication. Phần tử <User> là phần tử bắt buộc đối với cả hoạt động Mã hoá và Giải mã.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách BasicAuthentication được dùng trong proxy API. Nếu có chính sách nào đó mà phần tử <User> không được chỉ định, thì đó là nguyên nhân gây ra lỗi. Phần tử <User> là phần tử bắt buộc trong chính sách BasicAuthentication đối với các hoạt động Mã hoá hoặc Giải mã.

    Chính sách BasicAuthentication mẫu ở bên dưới dùng để thực hiện thao tác Mã hoá, nhưng chưa xác định phần tử <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>
    

    Không triển khai được kèm theo lỗi dưới đây:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <User> được xác định trong chính sách BasicAuthentication cho thao tác Mã hoá hoặc Giải mã.

Để sửa ví dụ trên, hãy thêm phần tử <User> vào chính sách như sau:

<?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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai Proxy API được nếu phần tử <Password> không được xác định trong chính sách BasicAuthentication. Phần tử <Password> là phần tử bắt buộc đối với cả hoạt động Mã hoá và Giải mã.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách BasicAuthentication được dùng trong proxy API. Nếu có bất kỳ chính sách nào trong đó phần tử <Password> không được xác định, thì đó là nguyên nhân gây ra lỗi. Phần tử <Password> là phần tử bắt buộc trong chính sách BasicAuthentication đối với thao tác Mã hoá hoặc Giải mã.

    Chính sách BasicAuthentication mẫu ở bên dưới dùng để thực hiện thao tác Mã hoá, nhưng chưa xác định phần tử <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>
    

    Không triển khai được kèm theo lỗi dưới đây:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <Password> được xác định trong chính sách BasicAuthentication cho thao tác Mã hoá hoặc Giải mã.

Để sửa ví dụ trên, hãy thêm phần tử <Password> vào chính sách như sau:

<?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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai Proxy API được nếu phần tử <AssignTo> không được xác định trong chính sách BasicAuthentication. Phần tử <AssignTo> là phần tử bắt buộc đối với cả hoạt động Mã hoá và Giải mã.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách BasicAuthentication được dùng trong proxy API. Nếu có chính sách nào trong đó phần tử <AssignTo> không được xác định, thì đó là nguyên nhân gây ra lỗi. Bạn bắt buộc phải xác định phần tử <AssignTo> trong chính sách BasicAuthentication cho cả hoạt động Mã hoá và Giải mã.

    Chính sách BasicAuthentication mẫu ở bên dưới dùng để thực hiện thao tác Mã hoá, nhưng chưa xác định phần tử <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>
    

    Không triển khai được kèm theo lỗi dưới đây:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <AssignTo> được xác định trong chính sách BasicAuthentication cho thao tác Mã hoá hoặc Giải mã.

Để sửa ví dụ trên, hãy thêm phần tử <AssignTo> vào chính sách như sau:

<?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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai Proxy API được nếu không xác định được phần tử <Source> trong chính sách BasicAuthentication dùng để giải mã. Phần tử <Source> là bắt buộc nếu <Operation> được chỉ định là Decode trong chính sách BasicAuthentication.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách BasicAuthentication được dùng trong proxy API. Nếu có bất kỳ chính sách nào trong đó phần tử <Source> không được xác định và phần tử <Operation> được định nghĩa là Decode, thì đó là nguyên nhân gây ra lỗi. Phần tử <Source> là bắt buộc nếu <Operation> được chỉ định là Decode trong chính sách BasicAuthentication.

    Chính sách BasicAuthentication mẫu hiển thị bên dưới được dùng cho thao tác Decode, nhưng chưa xác định phần tử <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>
    

    Không triển khai được kèm theo lỗi dưới đây:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Độ phân giải

Đảm bảo phần tử <Source> được xác định trong chính sách BasicAuthentication khi dùng phần tử này cho thao tác Decode.

Để sửa ví dụ trên, hãy thêm phần tử <Source> vào chính sách như sau:

<?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>