Grzegorz Gwoźdź [http://community.jboss.org/people/gwozdziu] created the 
discussion

"Data source configuration during runtime"

To view the discussion, visit: http://community.jboss.org/message/571285#571285

--------------------------------------------------------------
Hi everyone. I need to implement a solution that would enable me to change data 
source configuration during runtime. There is a system A that admins have 
access to and whre they put configuration for stuff, including db 
configuration. You can think of it as "Configuration Central".

Component in another system - lets call it B - periodically reads that 
configuration. When configuration in A changes, system B detects that change 
and updets itself. I need to implement a solution that would enable me to 
change datasource configuration on the fly to use new configuration from system 
A without a need to restart the jboss.

*Conenction URL change*

I am able to change the connection url infollowing way...
1. DataSource has few underlying components (MBeans). One of them is 
ManagedConnectionFactory. 
2. I do a JNDI lookup on this one, then cast it to 
org.jboss.resource.connectionmanager.RARDeploymentMBean to have access to 
properties
3. I use RARDeploymentMBean#setManagedConnectionFactoryAttribute(arg0, arg1, 
arg2) to set the url
Looks good so far.

*Credentials switch*

Then I need to update the the credentials - username and password. There is a 
component named org.jboss.security.auth.login.DynamicLoginConfig with a 
parameter AuthConfig that points to a file that stores various policies 
conatining username and password. Here is an abstract from this file:
  <application-policy name="MyName_LoginDomain">
    <authentication>
      <login-module 
code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
    <module-option name="username">username</module-option>
    <module-option name="password">password</module-option>
    <module-option 
name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MyName_DS</module-option>
      </login-module>
    </authentication>
  </application-policy>

I also found that each datasource has a ConnectionManager attribute, and this 
connection manager could also be found using JNDI lookup. It has an attribute 
called SecurityDomainJndiName with value of MyName_LoginDomain. Using this one 
I could switch between predefined LoginDomain as I like to call them. Those are 
in fact instances of org.jboss.security.plugins.SecurityDomainContext.

*Problem*
Admins switch data base to which in system A  to which system B should connect. 
I change te url, then I switch to correct SecurityDomainContext and that is 
fine. However when database username or password changes I have no idea what to 
do other than updating the file pointed by DynamicLoginConfig.AuthConfig and 
restarting jboss after it. Is there any way to change username and password 
associated with given SecurityDomainContext during runtime?

Sorry for such a large post, but I wanted to describe the whole problem to be 
clear. If you need any addtional information so that we could think it out 
together just let me know. Thanks a lot for any help!
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/571285#571285]

Start a new discussion in Datasource Configuration at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2077]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to