Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

IPBoard i OpenFire (IM)


Rekomendowane odpowiedzi

Witajcie,

 

Chcąc "rozszerzyć" moje community o nowe funkcje zainstalowałem na dedyku OpenFire http://www.igniterealtime.org/projects/openfire/index.jsp

OpenFire jest to serwer instant messagging który może posługiwać się zewnętrzną bazą danych w celu autentykacji użytkownika (read-only).

 

Konfiguracja odbywa się w ten sposób:

<jive>
  ...
  <provider>
    <auth>
      <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
    </auth>
    <user>
      <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
    </user>
  </provider>
  <jdbcAuthProvider>
     <passwordSQL>SELECT password FROM user_account WHERE username=?</passwordSQL>
     <passwordType>plain</passwordType>
  </jdbcAuthProvider>
  <jdbcUserProvider>
     <loadUserSQL>SELECT name,email FROM myUser WHERE username=?</loadUserSQL>
     <userCountSQL>SELECT COUNT(*) FROM myUser</userCountSQL>
     <allUsersSQL>SELECT username FROM myUser</allUsersSQL>
     <searchSQL>SELECT username FROM myUser WHERE</searchSQL>
     <usernameField>username</usernameField>
     <nameField>name</nameField>
     <emailField>email</emailField>
  </jdbcUserProvider>
   ...
 </jive>

Oczywiście jest to tylko przykład a mój problem polega na ułożeniu w odpowiedni sposób zapytań do bazy IPB 3.4.6

 

1. hasło: SELECT password FROM user_account WHERE username=?
2. typ hasła (pewnie będzie md5)

3. user: SELECT name,email FROM myUser WHERE username=?
4. user count: SELECT COUNT(*) FROM myUser
5. wyszukiwanie usera: SELECT username FROM myUser
6. wyszukiwanie: SELECT username FROM myUser WHERE

 

Poczytałem trochę http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/db-integration-guide.html ale jak wiadomo IPB nie trzyma hasel w plain text tylko:

 

 

IP.Board stores members' passwords as a salted hash. Both the hash and the salt are stored in the database in the members table as members_pass_hash and members_pass_salt, respectively.

The hash is the md5 sum of the md5 sum of the salt concatenated to the md5 sum of the plaintext password. Expressed in PHP code, this is as follows:

 

$hash = md5( md5( $salt ) . md5( $password ) );

 

Where:

  • $hash is the value stored in the database column members_pass_hash.
  • $salt is the value stored in the database column members_pass_salt.
  • $password is the plaintext password.

 

Gdyby to był plain text to pewnie byłoby to proste:

<passwordSQL>SELECT members_pass_hash FROM members WHERE members_l_username=?</passwordSQL>

ale nie wiem jak złożyć takie zapytanie biorąc pod uwagę sposób w jaki przechowuje hasła IPB.

 

Doradzicie jak napisać te zapytania ?

Odnośnik do komentarza
Udostępnij na innych stronach

Pytasz "w złym miejscu" - próbujesz zintegrować OpenFire z już gotową bazą, która w specyficzny sposób trzyma skróty/hasze haseł - to OpenFire musi obsłużyć odpowiednią funcję, aby z hasła, które dostanie od klienta XMPP zrobić ten magiczny, potrójny md5. Z samej, czystej bazy IP.Boarda nie dostaniesz 'czystego' hasła - ani w md5 ani w sha1 ani w plain-texcie ;)

 

Tak na szybko przeglądając nie widzę tam w konfiguracji jakiejś takiej możliwości, ale zawsze możesz poprawić źródła ;-)

 

http://community.igniterealtime.org/message/221182#221182

http://community.igniterealtime.org/thread/35365

http://community.igniterealtime.org/message/228281#228281

Edytowane przez JamLasica
  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.