Hi Guillaume,
My previous e-mail gathers two topic:
1/ thanks for the reminder about <jaas:config/> blueprint file. We
should definitely document that.
2/ You have understood the need. For the end users, the current JAAS
configuration is a little bit hidden. In the
etc/org.apache.karaf.jaas.cfg file, he can only tune the encryption etc,
but not really tune the login module in use. My purpose is to provide a
clean overview to the users about the current JAAS configuration and be
able to tune the login modules, add new one, delete existing, etc.
Thanks
Regards
JB
On 01/31/2011 01:45 PM, Guillaume Nodet wrote:
The way I thought about the JAAS thing is that users would use a
different blueprint file dropped in the deploy folder.
For exmaple if you deploy:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<jaas:config name="karaf" rank="1">
<...>
</jaas:config>
</blueprint>
It will override the default settings, so there's no need to create a
full bundle for that.
I'm not completely sure to understand what you mean with the
properties file. I agree we could externalize the whole configuration
in a properties file similar to log4j for example:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<jaas:config factory-pid="org.apache.karaf.jaas.config" />
</blueprint>
This would create JAAS configurations based on ConfigAdmin factory
configurations. Each configuration could contain:
jaas.name = [config name]
jaas.rank = [config rank]
jaas.modules = [list of modules]
jaas.module.[module] = [module class name]
jaas.module.[module].flags = [module flags]
jaas.module.[module].options.[key] = [value]
So that the default one could be:
jaas.name = karaf
jaas.rank = 0
jaas.modules = mymodule
jaas.module.mymodule =
org.apache.karaf.jaas.modules.properties.PropertiesLoginModule
jaas.module.mymodule.flags = required
jaas.module.mymodule.options.users = ${karaf.base}/etc/users.properties
jaas.module.mymodule.options.encryption.name = ${encryption.name}
jaas.module.mymodule.options.encryption.prefix = ${encryption.prefix}
jaas.module.mymodule.options.encryption.suffix = ${encryption.suffix}
jaas.module.mymodule.options.encryption.algorithm = ${encryption.algorithm}
jaas.module.mymodule.options.encryption.encoding = ${encryption.encoding}
That way, users could easily change the default config or create new
ones by creating a etc/org.apache.karaf.jaas.config-myconfig.cfg
file.
On Sun, Jan 30, 2011 at 10:27, Jean-Baptiste Onofré<[email protected]> wrote:
Hi all,
I have some questions about the current scm repo:
- @David: I saw that you created an assemblies module. We still have the
assembly module defined and used in the<modules/> main POM. I guess it's a
temporary situation and, after some more tests, the assemblies module will
replace the assembly module ? What about profiles implementation and
brainstorm ?
- @Achim: I saw that you added a src/main/configfiles directory (containing
a jetty.xml) in the assembly module. Why not used the
src/main/filtered-resources directory (and eventually create a new directory
in this one) or define a new sub-module ? I don't wanna split the resources
in a lot of directories. WDYT ?
Now regarding the JAAS configuration. Correct me if I'm wrong, but up to
now, the JAAS configuration is defined in the blueprint
(OSGI-INF/blueprint/karaf-jaas-module.xml) descriptor of the jaas/modules
module:
<jaas:config name="karaf">
<jaas:module
className="org.apache.karaf.jaas.modules.properties.PropertiesLoginModule"
flags="required">
users = $[karaf.base]/etc/users.properties
encryption.name = ${encryption.name}
encryption.enabled = ${encryption.enabled}
encryption.prefix = ${encryption.prefix}
encryption.suffix = ${encryption.suffix}
encryption.algorithm = ${encryption.algorithm}
encryption.encoding = ${encryption.encoding}
</jaas:module>
</jaas:config>
So by default, we "force" the usage of the PropertiesLoginModule.
It could be helpful for the end users to have access to a
etc/login.properties file to be able to define the login modules to use with
the policy associated (required, sufficient, optional).
For instance, we can add a property in the etc/org.apache.karaf.jaas.cfg
file to define the location of this login.properties file
(etc/login.properties by default) and reference the PropertiesLoginModule by
default. It could be more clear for the users.
WDYT ?
Thank
Regards
JB