2016-03-22 16 views
0

HttpService kullanarak bir OSGi paketinde bir Servlet kaydediyorum. Güvenliği ele alan kendi HttpContext sınıfımı oluşturdum - BasicAuthentication ve ActiveDirectory karşı denetleyin. Şimdiye kadar çok iyi. Şimdi oturum açmış kullanılanlar için rolleri ayarlamak istiyorum, böylece @RolesAllowed ek açıklamasını kullanabilirim. Roller Active Directory gruplarına bağlı olacaktır.Bir OSGi Servlet'te güvenlikle çalışırken kullanıcı rolleri nasıl ayarlanır

Rolleri nasıl belirlerim? Rolleri

'u kullanarak ayarlamayı denedim ancak request.isUserInRole her zaman false değerini döndürür.

Güncelleme

ben request.isUserInRole içine adım attığınızda Sonunda bu koda olsun:

if (_authentication instanceof Authentication.Deferred) 
    setAuthentication(((Authentication.Deferred)_authentication).authenticate(this)); 

if (_authentication instanceof Authentication.User) 
    return ((Authentication.User)_authentication).isUserInRole(_scope,role); 
return false; 

_authentication değeri null. Bu ne zaman/nerede ayarlanmalıdır?

cevap

0

Yalnızca yeni bir Konu örneği oluşturdunuz. Bu, oturumdaki otomatik olarak güncellenmez. Bununla birlikte, jaas'taki problem, her zaman, rol prensipleri için standart olmadığından dolayıdır. Rolü PlainRolePrincipal olarak kodlamayı seçtiniz. Bu isteğin kontrol edildiğinden emin değilim. Bir müdürün rol yöneticisi olup olmadığını nasıl belirlediğini görmek için bu koda bakmanız gerekecektir.

Tipik bir durum, belirli bir sınıfı veya arabirim adını denetlemesidir ancak sizin durumunuzda hangisinin olduğundan emin değilim.

+0

Teşekkürler. İyi yakalama. Maalesef kodumu tamamen kopyalamamıştım. Sorun hala devam ediyor. – paul

İlgili konular