Skip to content

Commit 95fa2f0

Browse files
committed
Host setup compliant for Conversations
1 parent 23216f7 commit 95fa2f0

23 files changed

+429
-66
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
3+
IFS=":"
4+
AUTH_OK=1
5+
AUTH_FAILED=0
6+
LOGFILE="/var/log/prosody/auth.log"
7+
USELOG=true
8+
9+
while read ACTION USER HOST PASS ; do
10+
11+
[ $USELOG == true ] && { echo "Date: $(date) Action: $ACTION User: $USER Host: $HOST" >> $LOGFILE; }
12+
13+
case $ACTION in
14+
"auth")
15+
if [ `/usr/bin/php /usr/local/lib/prosody/auth/db_auth.php $USER $HOST $PASS 2>/dev/null` == 1 ] ; then
16+
echo $AUTH_OK
17+
[ $USELOG == true ] && { echo "AUTH OK" >> $LOGFILE; }
18+
else
19+
echo $AUTH_FAILED
20+
[ $USELOG == true ] && { echo "AUTH FAILED" >> $LOGFILE; }
21+
fi
22+
;;
23+
"isuser")
24+
if [ `/usr/bin/php /usr/local/lib/prosody/auth/db_isuser.php $USER $HOST 2>/dev/null` == 1 ] ; then
25+
echo $AUTH_OK
26+
[ $USELOG == true ] && { echo "ISUSER OK" >> $LOGFILE; }
27+
else
28+
echo $AUTH_FAILED
29+
[ $USELOG == true ] && { echo "ISUSER FAILED" >> $LOGFILE; }
30+
fi
31+
;;
32+
*)
33+
echo $AUTH_FAILED
34+
[ $USELOG == true ] && { echo "UNKNOWN ACTION GIVEN: $ACTION" >> $LOGFILE; }
35+
;;
36+
esac
37+
38+
done
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
ini_set('display_errors', false);
3+
require_once('db_conf.inc.php');
4+
5+
try{
6+
// Connect database
7+
$db = new mysqli($db_host, $db_user, $db_pass, $db_name);
8+
result_false(mysqli_connect_errno());
9+
10+
// Get arguments
11+
$arg_email = '';
12+
$arg_password = '';
13+
14+
result_false(count($argv) != 4);
15+
$arg_email = $argv[1].'@'.$argv[2];
16+
$arg_password = $argv[3];
17+
18+
// check for existing user
19+
$dbmail = $db->real_escape_string($arg_email);
20+
$query = $db->prepare("SELECT jid, password FROM xmpp_user WHERE jid LIKE ? AND active='y' AND server_id=?");
21+
$query->bind_param('si', $arg_email, $isp_server_id);
22+
$query->execute();
23+
$query->bind_result($jid, $password);
24+
$query->fetch();
25+
$query->close();
26+
27+
result_false(is_null($jid));
28+
checkAuth($arg_password, $password);
29+
}catch(Exception $ex){
30+
echo 0;
31+
exit();
32+
}
33+
34+
function result_false($cond = true){
35+
if(!$cond) return;
36+
echo 0;
37+
exit();
38+
}
39+
function result_true(){
40+
echo 1;
41+
exit();
42+
}
43+
function checkAuth($pw_arg, $pw_db){
44+
if(crypt($pw_arg, $pw_db) == $pw_db)
45+
result_true();
46+
result_false();
47+
}
48+
?>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
$db_user = '{mysql_server_ispconfig_user}';
3+
$db_pass = '{mysql_server_ispconfig_password}';
4+
$db_name = '{mysql_server_database}';
5+
$db_host = '{mysql_server_ip}';
6+
$isp_server_id = '{server_id}';
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
ini_set('display_errors', false);
3+
require_once('db_conf.inc.php');
4+
5+
try{
6+
// Connect database
7+
$db = new mysqli($db_host, $db_user, $db_pass, $db_name);
8+
result_false(mysqli_connect_errno());
9+
10+
// Get arguments
11+
$arg_email = '';
12+
13+
result_false(count($argv) != 3);
14+
$arg_email = $argv[1].'@'.$argv[2];
15+
16+
// check for existing user
17+
$dbmail = $db->real_escape_string($arg_email);
18+
$query = $db->prepare("SELECT count(*) AS usercount FROM xmpp_user WHERE jid LIKE ? AND active='y' AND server_id=?");
19+
$query->bind_param('si', $arg_email, $isp_server_id);
20+
$query->execute();
21+
$query->bind_result($usercount);
22+
$query->fetch();
23+
$query->close();
24+
25+
result_false($usercount != 1);
26+
result_true();
27+
28+
}catch(Exception $ex){
29+
echo 0;
30+
exit();
31+
}
32+
33+
function result_false($cond = true){
34+
if(!$cond) return;
35+
echo 0;
36+
exit();
37+
}
38+
function result_true(){
39+
echo 1;
40+
exit();
41+
}
42+
43+
?>

install/dist/conf/debian60.conf.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@
237237
$conf['prosody']['storage_database'] = 'prosody';
238238
$conf['prosody']['storage_user'] = 'prosody';
239239
$conf['prosody']['storage_password'] = md5(uniqid(rand()));
240-
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, vcard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, webpresence';
240+
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, compression, vard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, websocket, webpresence, smacks, csi_battery_saver, pep_vcard_avatar, omemo_all_access';
241241

242242

243243
?>

install/dist/conf/debian90.conf.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,6 @@
237237
$conf['prosody']['storage_database'] = 'prosody';
238238
$conf['prosody']['storage_user'] = 'prosody';
239239
$conf['prosody']['storage_password'] = md5(uniqid(rand()));
240-
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, vcard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, webpresence';
240+
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, compression, vcard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, websocket, webpresence, smacks, csi_battery_saver, pep_vcard_avatar, omemo_all_access';
241241

242242
?>

install/dist/conf/debiantesting.conf.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@
237237
$conf['prosody']['storage_database'] = 'prosody';
238238
$conf['prosody']['storage_user'] = 'prosody';
239239
$conf['prosody']['storage_password'] = md5(uniqid(rand()));
240-
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, vcard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, webpresence';
240+
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, compression, vard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, websocket, webpresence, smacks, csi_battery_saver, pep_vcard_avatar, omemo_all_access';
241241

242242

243243
?>

install/dist/conf/ubuntu1604.conf.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@
237237
$conf['prosody']['storage_database'] = 'prosody';
238238
$conf['prosody']['storage_user'] = 'prosody';
239239
$conf['prosody']['storage_password'] = md5(uniqid(rand()));
240-
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, vcard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, webpresence';
240+
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, compression, vard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, websocket, webpresence, smacks, csi_battery_saver, pep_vcard_avatar, omemo_all_access';
241241

242242

243243
?>

install/dist/conf/ubuntu1710.conf.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233
$conf['prosody']['storage_database'] = 'prosody';
234234
$conf['prosody']['storage_user'] = 'prosody';
235235
$conf['prosody']['storage_password'] = md5(uniqid(rand()));
236-
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, vcard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, webpresence';
236+
$conf['prosody']['initial_modules'] = 'roster, saslauth, tls, dialback, disco, carbons, pep, private, blocklist, compression, vard, version, uptime, time, ping, admin_adhoc, mam, bosh, websocket, http_files, announce, proxy65, offline, posix, websocket, webpresence, smacks, csi_battery_saver, pep_vcard_avatar, omemo_all_access';
237237

238238

239239
?>

install/lib/installer_base.lib.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1862,9 +1862,8 @@ public function configure_prosody($options = '') {
18621862

18631863
// Copy isp libs
18641864
if(!@is_dir('/usr/local/lib/prosody/auth')) mkdir('/usr/local/lib/prosody/auth', 0755, true);
1865-
caselog('cp -rf apps/xmpp_libs/mod_auth_external/db_* /usr/local/lib/prosody/auth/', __FILE__, __LINE__);
1866-
caselog('cp -rf apps/xmpp_libs/mod_auth_external/authenticate_isp.sh /usr/local/lib/prosody/auth/', __FILE__, __LINE__);
1867-
caselog('chmod 755 /usr/local/lib/prosody/auth/authenticate_isp.sh', __FILE__, __LINE__);
1865+
caselog('cp -rf apps/xmpp_libs/auth_prosody/* /usr/local/lib/prosody/auth/', __FILE__, __LINE__);
1866+
caselog('chmod 755 /usr/local/lib/prosody/auth/authenticate_isp.sh', __FILE__, __LINE__);
18681867

18691868
// Process db config
18701869
$full_file_name = '/usr/local/lib/prosody/auth/db_conf.inc.php';

0 commit comments

Comments
 (0)