2016-04-05 26 views
1

'da izin temelli yetkilendirme ile nasıl kullanılır Karaf'ta çalışacak güvenli bir uygulama oluşturmak istiyorum. JAAS'ı hiç kullanmamış olan (sadece Shiro ile çalışmış olan) biri olarak, kafamı JAAS'ta gerçekte nasıl uygulayacağımız konusunda çok fazla sorun yaşıyorum. Google, JAAS :) ile röportaj yaptığı her seferinde Spring, JavaEE ve Struts'u desteklediği için çok fazla yardımcı olmuyor. Sanırım gerçekleri ve giriş modüllerini Karaf ile nasıl yönetebileceğimi anladım, ama bazı sorularım var Görevin geri kalan kısmı:JAAS, OSGi

  1. Uygulamam için bir oturum nasıl yapılır? Uygulamanın bir kısmı iletişim için CXF REST servislerini kullanıyor olacak, ki bu oldukça basit gibi görünüyor, ama aynı zamanda bir Wicket destekli web-frontend (pax-web üzerinden tahmin ediyorum) yapıyorum. JAAS'ın sabit oturum açmalarını önlemek için bu durumda oturumları nasıl kullanırım? Karaf'ta JAAS kullanarak izin temelli güvenlik

  2. . Shiro kullanarak, bir öznenin bir dizi rolü olduğu ve gerçekte doğruladığınız izinlere sahip olduğu izin temelli (veya eylem temelli) yetkilendirmeye alışık oldum. JAAS'ın bunu kutunun dışında desteklemediği görülüyor. Bunu uygulamak için bir yol var mı, yine Karaf'ta JAAS'ı kullanıyor. Her rolün hangi izinleri kullanacağını nerede belirleyebilirim?

  3. Bu aptalca bir soru gibi görünebilir, ancak lütfen çok kötü bir şekilde sneaker etmemeye çalışın, JAAS'ta şu an boğulduğumu hissediyorum. Kimlik doğrulama kontrollerini gerçekleştirmenin doğru yolu nedir? Ben farklı bağlamlarda kullanılan AccessController ve Subject.doAsPriviledged görüyorum ve varsa, farkın ne olduğunu tespit etmekte sorun yaşıyorum.

cevap

1

CXF JAAS Login Feature'u kullanabilirsiniz. Herhangi bir ek yapılandırmaya gerek kalmadan, JAAS arka yüzüne bir JAAS girişi yapar. Sonuç, geçerli thread üzerinde bir giriş.

konu kullanılarak alınabilir:

Subject subject = Subject.getSubject(AccessController.getContext()); 

Ardından özneden müdürler alabilirsiniz. Genellikle müdürlerin üzerinde kullanıcı ve diğerleri rolleri vardır.

Bunu kullanarak, izinleri kontrol etmek veya shiro ile entegre etmek için kendi kodunuzu yazabilirsiniz.

Aries ayrıca @RolesAllowed kullanarak rol tabanlı auth yapmanıza izin veren blueprint authz modülüne sahiptir. Arka planda JAAS konusunun rollerini kullanır.

Ayrıca küçük bir uygulama için an example da buldum.

+0

Merhaba Christian. Hızlı cevap için teşekkürler. JAAS'ı web-frontends ile nasıl kullanacağınızı biliyor musunuz. Bu, bazı kullanıcı-reaktif giriş işlevselliği yanı sıra oturum yönetimi gerektirir. Bu konuda somut bilgi bulmakta gerçekten zorlanıyorum. –

+0

Tek bir bilgi kaynağı, karaf web konsolu entegrasyonu olabilir. Ayrıca giriş için JAAS kullanır. Https://github.com/apache/karaf/blob/master/webconsole/console/src/main/java/org/apache/felix/webconsole/internal/servlet/JaasSecurityProvider.java sayfasına bakın. –

İlgili konular