2012-02-08 19 views
6

Geri kalan istemciyi kullanarak bir REST hizmetine (HP ALM 11 REST API uygulaması) bir istek göndermeye çalışıyorum ve Yetkilendirilmemiş yanıtı almaya devam ediyorum. Belgeleri doğru takip etmiyor olabilirim, ancak üstbilgileri düzgün yaptığımı da bilmiyorum. Şimdilik RestClient için googling sonuçsuz kaldı. Herhangi bir yardım mutluluk duyacağız:Rails Temel Yetkilendirmesini RestClient ile nasıl yaparım?

Kodu:

@alm_url  = "http://alm_url/qcbin/" 
@user_name  = "username" 
@user_password = "password" 

authentication_url = @alm_url + "rest/is-authenticate" 
resource = RestClient::Resource.new authentication_url, {:user => @user_name, :password => @user_password} 
response = resource.get 


#response = RestClient.get authentication_url, :authorization => @username, @user_password 
Rails.logger.debug response.inspect 

Belgeleme:

Müşteri geçerli gönderir bu SO question dayanarak

@alm_url  = "http://alm_url/qcbin/" 
@user_name  = "username" 
@user_password = "password" 

authentication_url = @alm_url + "rest/is-authenticate" 
resource = RestClient::Resource.new authentication_url 
resource.head :Authorization => Base64.encode64(@user_name) + ":" + Base64.encode64(@user_password) 
response = resource.get 


#response = RestClient.get authentication_url, :authorization => @username, @user_password 
Rails.logger.debug response.inspect 

Ben de başarılı olamadı aşağıdaki çalıştı Kimlik Doğrulaması için Temel Kimlik Doğrulaması başlığı .

GET/qcbin/doğrulama noktalı/kimlik doğrulaması Yetkilendirme: ABCDE123

Sunucu Temel, Temel kimlik doğrulama başlıkları doğrular belirteç yeni LW-SSO oluşturur ve LWSSO_COOKIE_KEY olarak döndürür.

authentication_url = @alm_url + "rest/is-authenticate" 

okumalısınız:

authentication_url = @alm_url + "authentication-point/authenticate" 

İkincisi ben için dokümanlar okursanız o yardımcı olur, doğru URL'ye giderseniz

cevap

7

Tamam ... bu yüzden ilk o yardımcı olur RestClient, readme'ye bakmak yerine. Instance Method Details altındaki örnek çok yardımcı oldu.

Kodum şimdi benziyor:

@alm_url  = "http://alm_url/qcbin/" 
@user_name  = "username" 
@user_password = "password" 

authentication_url = @alm_url + "authentication-point/authenticate" 
resource = RestClient::Resource.new(authentication_url, @user_name, @user_password) 
response = resource.get 

Rails.logger.debug response.inspect 

DÜZENLEME:

Vay Gerçekten bu aşırı düşündük. Ben:

response = RestClient.get "http://#{@user_name}:#{@user_password}@alm_url/qcbin/authentication-point/authenticate" 
İlgili konular