2016-03-01 11 views
7

Mam składnik o właściwościach w następujący sposób.Dlaczego procy: Węzeł OsgiConfig nie działa w folderze/etc/w AEM?

@Component(immediate = true, metatype = true, label = "Conf Details") 
@Service(value = { LocationConfigurationUtil.class }) 
@Properties({ 
     @Property(label = "location blueprint", name = "locationPath", value = "", description = "..."), 
     @Property(label = "location page template", name = "locationTemplate", value = "", description = "..."), 
     @Property(label = "basepath live copies", name = "liveCopyRoot", value = "/content/WebRoot", description = "...") }) 
public class LocationConfigurationUtil { 
@Activate 
    protected void activate(Map<String, Object> mapCreated) { 
      // some code 
    } 
} 

Aby nadać mu właściwości edytowalne w węźle jcr, skorzystałem z niestandardowej metody. Stworzyłem sling:OsgiConfig w ścieżce /apps/system/config posiadającej właściwości zadeklarowane w kodzie java, co działa poprawnie.

screen shot

Ale jeśli tylko mają taką samą sling:OsgiConfig wewnątrz /etc/myapp/myconfig, to nie działa.

Odpowiedz

9

Przy ustawieniach domyślnych dostawca instalacji JCR nie szuka pakietów i węzłów do zainstalowania (sling:OsgiConfig) w folderach innych niż /libs i /apps. więc żadna konfiguracja w /etc nie zostanie załadowana.

Jeśli chcesz zmienić to zachowanie, wprowadź pozycję ścieżki wyszukiwania w konfiguracji "Instalator Sling JCR Installer" w konsoli konfiguracyjnej osgi. Ale pamiętaj, że nie jest to zalecane, w pierwszej kolejności nie powinieneś umieszczać żadnego węzła sling:osgiconfig w /etc.

+0

Zaczęło działać w '/ etc/system/config /', po dodaniu '/ etc: 300'. Ale wewnątrz folderu '/ etc/myapp/myconfig' nadal nie działa. – Dileepa

+1

Zmień nazwę folderu myconfig na config. – awd

+0

Pracował. Dzięki. :) – Dileepa

5

Należy pamiętać, że umieszczanie węzłów konfiguracyjnych pod /etc jest naprawdę złym pomysłem.

Z punktu widzenia bezpieczeństwa, /libs i /apps są zablokowane, ale z /etc/ otwierasz się do co najmniej dwóch największych luk w zabezpieczeniach:

  • konfiguracje OSGi mogą być odczytywane przez anonimowych użytkowników
  • Kod może zostać wdrożony przez nieupoważnionych użytkowników.

Należy ponownie rozważyć dodanie ścieżki /etc do wpisów w ścieżce wyszukiwania Instalatorów JCR, a zamiast tego wdrożyć konfigurację jony do /apps.