2017-09-14 2 views
0

Zuerst habe ich überprüft, dass die Berechtigungen zum Auschecken eines Projekts über die Webschnittstelle vorliegen. Jetzt versuche ich, dieses Auschecken mit REST-Aufrufen zu replizieren, und ich komme nicht an HTTP/1.1 403 FORBIDDEN vorbei.Auschecken eines Projekts aus Project Online mit REST-Aufrufen

CloseableHttpClient httpclient = WinHttpClients.createDefault(); 
// url = http://<site>/ProjectServer/Projects(guid'xxxx')/checkOut 
HttpPost post = new HttpPost(baseURL + URL); 
post.setHeader("Accept", "application/json;odata=verbose"); 
post.setHeader("Content-type", "application/json"); 
post.setHeader("X-RequestDigest", getDigest()); 
post.setEntity(new StringEntity("")); 
CloseableHttpResponse response = httpclient.execute(post); 
response.close(); 
httpclient.close(); 

Irgendwelche Ideen zu dem, was ich falsch mache oder in der Call-Stack fehlt?

Antwort

0

HTTP 403 bedeutet, dass der Server die Ressource erreichen und die Anfrage verarbeiten kann, aber aufgrund der Berechtigungen keine weiteren Aktionen ausführen kann. Bitte beachten Sie die folgende Erklärung.

Für zB: Wenn Support, Admin sind zwei Rollen im Projekt definiert und nur Admin hat die Erlaubnis, eine neue Ressource zu erstellen.

@RolesAllowed("Admin") 
@POST 
@Consumes("application/json") 
public Response createProject(Project p) 
{ 
    .. 
} 

Und wenn die Anforderung durch den Benutzer „Support“ wird hergestellt, die dazu dienen, kann der Benutzer „Support“ authentifizieren, sondern wird mit 403 verweigern, wenn der Benutzer nicht „Admin“ Rechte verfügt.

Versuchen Sie den Authentifizierungsheader mit dem legitimen Benutzer hinzuzufügen und sehen Sie, ob er Ihr Problem löst.

+0

Vielen Dank für die Antwort, aber wie ich oben sagte, ich "sollte" bereits die entsprechenden Berechtigungen - laut dem Admin, habe ich "Vollzugriff". Wenn Sie WinHttpClients verwenden, wird der Anforderung automatisch ein NLTMAuthentication-Header hinzugefügt. Ich habe den Administrator gebeten, die Anfrage selbst zu versuchen, aber ich habe nicht zurück gehört. –

+0

Das Problem hat sich plötzlich gelöst, ohne dass ich etwas unternommen habe. Der obige Code funktioniert wie angekündigt. –

Verwandte Themen