Custom database integration path

Howdy,

Although I have read the guide http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/db-integra tion-guide.html and tried to go over it with one of the daily builds the other week (which failed), I’‘ve tried it again with beta2 and frankly I’'m still having issues.

  1. Wildfire, clean install, no conf. An existing db with use data exists.

  2. Start fire, go into setup mode, select the a db, connection string, username and pass.

  3. Profile selection - Only Default option is selectable… (why?)

  4. my db gets populated with wildfire tables that I don’'t want in my db???

Is this the recommended integration path? I thought I’‘d only use my db just to read the user data nothing else, this seems invasive and doesn’'t feel like a good integration procedure.

I’‘d just like to be able to unzip wildfire, have an option in the setup profile selection to enter the jdbc auth provider settings and that’'s it.

If the server indeed needs more tables I’‘d feel more comfortable with that data outside my production database so I believe a hybrid aproach would be better where the wildfire server has it’'s own database for its own internal stuff and then allow the group/user providers to hook up to another existing db.

Is it just me that thinks the approach taken is brittle? Why should a production db have extra tables if jabber is secondary to the application’‘s real task? Wouldn’‘t the app’‘s be better off if they’'d be loosley coupled with wildfire?

Hi Schrepfler,

The integration this guide describes is intended for environments where a user/groups data source already exists and it assumes that you will also have a separate database for Wildfire. If I understand your email correctly, you are telling Wildfire to use your user database as its main database which is not what we intend with this integration.

We recommend to first setup your Wildfire database and to go through the configuration wizard. Once this is done, go ahead and modify your wildfire.xml file following the instructions on the guide and point to your existing user/group database.

Hope this helps.

Jorge

Hi, thanks for making the integration path clearer to me, I do however find something strange. I’'ve inserted in the admin section a user that I know exists in the db:

and indeed I can login as a admin as someuser. Also in the Users/Groups tab I find listed the admin and someuser users. Then comes the catch. I insert a user using my other system and when I look at the Users/Groups tab I don’‘t see the user. The new user is in the database but wildfire doesn’‘t lists it, yet it sees the someuser user. Isn’'t this strange? No errors in the log files.

Hi Srgjan,

Wildfire uses a database cache. I’'m not sure how it behaves if you are using an external database for the users but maybe also there the cache is active and new users will not be listed immediately.

Maybe you can confirm this by adding a new user to the ext. database and then wait four hours and check whether Wildfire knows then about this user. If you log in using the new username Wildfire should immediately find it.

It will be easy to query the database for new users every time you open the admin console / users page if this is just a caching issue.

LG

Hmm, things don’‘t work that great. First I’‘ve added the user “lnkadmin” as an admin and I’‘ve successfully logged in into the admin console, so wildfire reads the user’‘s password fine. The user then appears in the users list. Second I’‘ve logged using gaim as “lnkadmin” and that worked too, I also tried a bogus username and that failed as I disabled user registration or anonymous users. Next thing I’‘ve tried to log in as the user “amadeusadmin” using gaim and I got successfull but when I go to the users listings I still don’‘t see it there and if I go to the sessions listing the user is listed with name and resource field 6e36c67e??? Also one more discrepancy, if the lnkadmin user is cached why when I look at it’‘s profile I’‘m getting nothing under name or email? Also, I’‘ve opened the Cache Summary and deleted the user and user groups cache but that didn’‘t change the situation. A cherry on the top, wildfire also doesn’‘t sees any groups. I’‘m pasting my config here, and if you need my db schema I’‘ll post it too and I’'m using postgresql 8.1, thanks if you can resolve all these misteries.

PS. On second login the fields changed to 2b597ca@scipionsii/2b597ca ,looks like java instance id, any idea?

Message was edited by: schrepfler

Hi,

with 3.1.0_beta I can’'t reproduce “resource field 6e36c67e???” issue.

New users are not listed in the user-summary.jsp page.

Email and name field are empty.

For me the user-summary.jsp does also list the users which are in the normal database, so it seems like I have now two databases with users or a hybrid configuration. I can login with user “admin” using the password of the remote database but if I look at the profile I see the one of the Wildfire database.

So let me check this again with 3.1.0_beta_2 or probably better a nightly build.

Which Wildfire version are you using?

LG

Hi,

it seems that JDBCUserProvider is indeed no longer used correctly by Wildfire, so I’'m happy to have the kind duty to increase Gatos “Welcome to Todoland” list with JM-847, JM-848 and JM-849.

LG

Thanks for confirming the issue

Do you think a patch will be done before 3.1?

I expect that this will either work in 3.1.0 or one changes the documentation and removes user and group providers.

LG

So… I’'ll be keeping my fingers crossed then.

Hi,

JM-848 was changed to “Cannot Reproduce” as this was a documentation / DTD issue. Wildfire fails to parse multiple sections, so one must change the content of wildfire.xml to

<provider>
    <auth>
      <className>org.jivesoftware.wildfire.auth.JDBCAuthProvider</className>
    </auth>
    <user>
      <className>org.jivesoftware.wildfire.user.JDBCUserProvider</className>
    </user>
    <group>
      <className>org.jivesoftware.wildfire.group.JDBCGroupProvider</className>
    </group>
  </provider>

Wildfire 3.1.1 will contain an updated documentation.

LG