Details
Description
The documentation at:
http://karaf.apache.org/manual/latest/developers-guide/security-framework.html
contains an example of using blueprint to configure a JAAS realm and uses the $[karaf.base] property to specify the path to the properties file defining users and roles. To ensure consistent paths across platforms a PropertiesConverter is used however the example itself is broken because it violates the XML XSD for http://www.osgi.org/xmlns/blueprint/v1.0.0.
The example XML will not deploy complaining of an XML schema violation because of the order of elements.
The XML contains:
<ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/>
<type-converters>
<bean class="org.apache.karaf.jaas.modules.properties.PropertiesConverter"/>
</type-converters>
But the type-converters element (per the XSD) must follow the optional description element and precede any others within the root blueprint element. Re-ordering the XML like:
<type-converters>
<bean class="org.apache.karaf.jaas.modules.properties.PropertiesConverter"/>
</type-converters>
<ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/>
to properly place the ext:property-placeholder element AFTER the type-converters element resolves the problem and allows it to deploy properly.
See the nabble thread on the topic:
http://karaf.922171.n3.nabble.com/Jaas-realm-problem-td4031391i20.html#a4033003