2017-10-19 10 views
1

Je suis en train de tester les politiques XACML définies dans WSO2 est par API WSO2 Gestionnaire, comme expliqué dans le lien suivantWSO2APIM message médiation - appel API bloqué

https://docs.wso2.com/display/AM210/Enabling+Role-Based+Access+Control+Using+XACML

La politique se validée et je peux consultez la décision "Autoriser" dans les journaux, mais le gestionnaire d'API ne renvoie aucune réponse et l'appel est bloqué et la demande expire après un certain temps.

DEBUG - EntitlementMediator Entitlement Decision is : Permit 
    DEBUG - EntitlementMediator User is authorized to perform the action 
    DEBUG - EntitlementMediator OnAccept sequence is not defined. 
    INFO - SourceHandler Writer null when calling informWriterError 
    WARN - SourceHandler Connection time out after request is read: http-incoming-19 Socket Timeout : 60000 Remote Address : /0:0:0:0:0:0:0:1:63398 
    WARN - TimeoutHandler Expiring message ID : urn:uuid:045f7259-cc8b-46a7-b9a2-832429163531; dropping message after GLOBAL_TIMEOUT of : 120 seconds for Endpoint 

coller le fichier de stratégie de médiation des messages

  <sequence xmlns="http://ws.apache.org/ns/synapse" name="EM">  <entitlementService xmlns="http://ws.apache.org/ns/synapse" remoteServiceUrl="https://localhost:9443/services" remoteServiceUserName="admin" remoteServicePassword="admin" callbackClass="org.wso2.sample.handlers.entitlement.APIEntitlementCallbackHandler"> 
              <onReject> 
                  <makefault version="soap12"> 
                      <code xmlns:soap12Env="http://www.w3.org/2003/05/soap-envelope" 
                          value="soap12Env:Receiver"/> 
                      <reason value="UNAUTHORIZED"/> 
                      <node/> 
                      <role/> 
                      <detail>XACML Authorization Failed</detail> 
                  </makefault> 
                  <respond/> 
              </onReject> 
              <onAccept> 
              <log level="trace" xmlns="http://ws.apache.org/ns/synapse"/> 
                  <send> 
                      <endpoint> 
                          <address uri="http://localhost:8080"/> 
                      </endpoint> 
                  </send> 
              </onAccept> 
              <obligations/> 
              <advice/> 
          </entitlementService> 
      </sequence> 

Si je viens d'utiliser répondre OnAccept, au lieu d'envoyer, l'appel retourne immédiatement, mais mon dos API final ne soit pas appelé.

Ai-je oublié quelque chose ici?

Merci, Albie Morken

+0

Pouvez-vous partager votre fichier synaptique pour cette API? –

+0

Mise à jour le fichier de stratégie de médiation de message –

+0

a décidé de contourner WSO2 API Manager, car il n'a pas fonctionné comme prévu –

Répondre

0

Il ressemble à ce

  1. est pas un problème avec XACML mais plutôt avec le gestionnaire de l'API
  2. vous n'avez pas défini un chemin heureux lorsque le PDP répond permis . Vous pouvez voir que de DEBUG - EntitlementMediator OnAccept sequence is not defined.

Essayez de définir ce chemin

+0

Cela n'a pas fonctionné! J'ai ajouté la séquence OnAccept, toujours l'appel se bloque! \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t Je reçois juste erreur de délai d'attente me Expirant identifiant ssage: urn: uuid: 448797c5-1c5e-41cf-aa59-1b8d31ee1067; abandon du message après GLOBAL_TIMEOUT de: 120 secondes pour AnonymousEndpoint, URI Vous ne savez pas ce qui se passe –