diff --git a/ejabberd/files/ejabberd-httpd.conf b/ejabberd/files/ejabberd-httpd.conf
new file mode 100644
index 0000000..e238eff
--- /dev/null
+++ b/ejabberd/files/ejabberd-httpd.conf
@@ -0,0 +1,3 @@
+
+ AllowOverride All
+
diff --git a/ejabberd/files/htaccess b/ejabberd/files/htaccess
new file mode 100644
index 0000000..5239a6c
--- /dev/null
+++ b/ejabberd/files/htaccess
@@ -0,0 +1,4 @@
+
+ RewriteEngine On
+ RewriteRule ^(.*)$ http://localhost:5280/$1 [P]
+
diff --git a/ejabberd/manifests/init.pp b/ejabberd/manifests/init.pp
index d86f1df..2064b31 100644
--- a/ejabberd/manifests/init.pp
+++ b/ejabberd/manifests/init.pp
@@ -44,4 +44,36 @@ class ejabberd {
notify => Service["ejabberd"],
}
+ if $ejabberd_webhosts {
+ file { "/var/www/jabber":
+ ensure => directory,
+ mode => 0755,
+ owner => "root",
+ group => "root",
+ }
+
+ file { "/var/www/jabber/.htaccess":
+ ensure => present,
+ mode => 0644,
+ owner => "root",
+ group => "root",
+ source => "puppet:///modules/ejabberd/htaccess",
+ require => File["/var/www/jabber"],
+ }
+
+ apache::configfile { "ejabberd.conf":
+ http => false,
+ source => "puppet:///modules/ejabberd/ejabberd-httpd.conf",
+ }
+
+ define configwebhost() {
+ file { "/srv/www/https/${name}/jabber":
+ ensure => link,
+ target => "/var/www/jabber",
+ require => File["/srv/www/https/${name}"],
+ }
+ }
+
+ configwebhost { $ejabberd_webhosts: }
+ }
}
diff --git a/ejabberd/templates/ejabberd.cfg.erb b/ejabberd/templates/ejabberd.cfg.erb
index 38eef24..816c5d4 100644
--- a/ejabberd/templates/ejabberd.cfg.erb
+++ b/ejabberd/templates/ejabberd.cfg.erb
@@ -249,7 +249,7 @@ override_acls.
%% If you want to use a different method,
%% comment this line and enable the correct ones.
%%
-<% if ejabberd_extauth -%>
+<% if has_variable?("ejabberd_extauth") -%>
{auth_method, external}.
{extauth_program, "<%= ejabberd_extauth %>"}.
<% else -%>