2013-10-24 22 views
8

Próbuję pobrać informacje o jednej kompilacji zadań od reszty APi dostarczonej przez Jenkinsa z Angularjs.Uzyskiwanie interfejsu API Jenkin z AngularJS

jsonp jest faktycznie wyłączone Jenkins:

Jenkins Security Advisory 2013-02-16

więc ten kawałek kodu nie mogą pracować:

var url = 'http://jenkins-server:8080/job/job-name/api/json?jsonp=callback'; 
$http.jsonp(url).success(function (data) { 
    console.log(data); 
}); 

rzut:

Uncaught SyntaxError: Unexpected token : 

Cors nie jest włączona domyślnie ... szczerze mówiąc nie mogę znaleźć sposobu na zainstalowanie tej wtyczki:

i ten kod nie może pracować również

var url = 'http://jenkins-server:8080/job/job-name/api/json' 
$http({url: url, method: 'GET'}).success(function(data){console.log(data)}) 

Każdy pomysł?

+0

Które przeglądarki Państwo za pomocą? CORS nie jest obsługiwany poniżej IE10. – GrantByrne

+0

@GrantByrne ma częściowe wsparcie w IE8 i IE9 przez XDomainRequest –

+1

Używam chrome. IE jest do bani ;-) – Mauro

Odpowiedz

0

@Mauro, począwszy od Jenkinsa 1.537 można zaimplementować "jenkins.security.SecureRequester" i zezwolić na działanie żądania json.

Po prostu trzeba zaimplementować metodę permit(StaplerRequest req, Object bean) i mają tam swoje walidacji i po prostu wrócić prawdziwe (w oparciu o wyniku walidacji) w celu umożliwienia żądania.

Po wykonaniu tej czynności można po prostu użyć pierwszego przeciętego kodu, o którym wspomniałeś w swoim pytaniu.

Przykład SecureRequester Wykonanie: -

import hudson.Extension; 
import jenkins.security.SecureRequester; 
import org.kohsuke.stapler.StaplerRequest; 

@Extension 
public class AllowRequest implements SecureRequester { 

    public boolean permit(StaplerRequest req, Object bean) { 

     // A method to validate the request and return the appropriate result 
     return YOUR_VALIDATION_METHOD(req,bean); 
    } 

    private boolean YOUR_VALIDATION_METHOD(StaplerRequest req, Object bean) { 
     // validation goes here 
    } 

} 

Trzeba budować to jako wtyczki i zainstalować go w sobie konfigurację Jenkins do pracy.

2

Wygląda na to, że teraz istnieje wtyczka dla białych list JSON ... Wystarczy przejść do wtyczek i wyszukać JSON.

Wtyczka Secure Access.