On Oct 21, 2008, at 12:31 PM, Juergen Weber wrote:
David, thanks so far, "Locating your application specific
configuration files" is a step in the right direction. This helps in
organizing property files, which is better than directly loading them
from the file system.
I also was looking for a way to enhance the @Resource injection
system.
Now it would be great if one could use a SystemPropertiesGBean to
inject @Resource into an EJB...
This is a less direct solution to your immediate problem but you might
want to look into gbean bindings into jndi. I think this is the
geronimo equivalent of what the sun article was suggesting. To get
even closer we could write a gbean that bound an object factory into
jndi. The reason the sun idea won't work "as is" in geronimo is that
we have no persistent jndi: everything is bound as the server starts
and various components start and bind stuff. So the equivalent of
using the sun admin console to set up a persistent binding would be to
have a gbean in some plugin that, on starting, would bind whatever is
necessary.
The gbean binding stuff is in geronimo-naming GBeanBinding class.
thanks
david jencks
thanks,
Juergen
On Tue, Oct 21, 2008 at 7:42 PM, David Jencks
<[EMAIL PROTECTED]> wrote:
On Oct 21, 2008, at 9:38 AM, Juergen Weber wrote:
The canonical way to have properties for EJBs is IMHO to use <env-
entry>
in
ejb-jar.xml and have them injected via @Resource.
ejb-jar.xml are like source and in source control and are put in the
ejb.jar
by ant.
Obviously this is not a good idea for passwords.
Is there a way to save properties via the Geronimo Console (or
deployer)
and
have them injected via @Resource?
I guess properties in .properties in a .jar cannot be injected,
can they?
Could this be done via javax.naming.spi.ObjectFactory as suggested
in the
comment here:
http://www.jroller.com/agoncal/entry/configure_your_ejb_3_with#comments
I'm sure that wouldn't work in geronimo naming (e.g. in a web app in
geronimo, which only uses geronimo naming stuff) and doubt openejb
has a way
to make it work (IIRC openejb does some of its own jndi setup). I
also
don't see how this would conceal the secrets. Wouldn't they now
be in the
source code of the ObjectFactory class?
I can think of a couple approaches that you might find suitable.
One is
having an application specific data file as explained here:
http://cwiki.apache.org/GMOxDOC21/locating-your-application-specific-configuration-files.html
.
This also hints at the other, using a system property to store the
secret,
set up with a SystemPropertiesGBean in the geronimo plan for your
app. In
this case however I would advise:
- use maven :-)
- deploy your app as a geronimo plugin using the car-maven-plugin
- include a config.xml snippet in the geronimo-plugin.xml
(generated from
the car-maven-plugin configuration)
- set up the property value as a config-substitutions.properties
variable.
Now you can either set the secret directly in
var/config/config-substitutions.properties or on the command line,
e.g. with
gshell
geronimo/start-server -G mySecret=foo
hope this helps
david jencks
Thanks,
Juergen
--
View this message in context:
http://www.nabble.com/Where-to-store-secret-EJB-properties--tp20094408s134p20094408.html
Sent from the Apache Geronimo - Users mailing list archive at
Nabble.com.