فهرست منبع

[SOGo] Read plist_ldap for dual auth via ldap, unsupported

andryyy 6 سال پیش
والد
کامیت
9acd9c719d
2فایلهای تغییر یافته به همراه38 افزوده شده و 34 حذف شده
  1. 31 30
      data/Dockerfiles/sogo/Dockerfile
  2. 7 4
      data/Dockerfiles/sogo/bootstrap-sogo.sh

+ 31 - 30
data/Dockerfiles/sogo/Dockerfile

@@ -7,38 +7,39 @@ ENV GOSU_VERSION 1.9
 
 
 # Prerequisites
 # Prerequisites
 RUN apt-get update && apt-get install -y --no-install-recommends \
 RUN apt-get update && apt-get install -y --no-install-recommends \
-		apt-transport-https \
-		ca-certificates \
-		cron \
-		gnupg \
-		mysql-client \
-		supervisor \
-		syslog-ng \
-		syslog-ng-core \
-		syslog-ng-mod-redis \
-		dirmngr \
-		netcat \
-		psmisc \
-		wget \
-    patch \
-	&& rm -rf /var/lib/apt/lists/* \
-	&& dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
-	&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
-	&& chmod +x /usr/local/bin/gosu \
-	&& gosu nobody true
+  apt-transport-https \
+  ca-certificates \
+  cron \
+  gettext \
+  gnupg \
+  mysql-client \
+  supervisor \
+  syslog-ng \
+  syslog-ng-core \
+  syslog-ng-mod-redis \
+  dirmngr \
+  netcat \
+  psmisc \
+  wget \
+  patch \
+  && rm -rf /var/lib/apt/lists/* \
+  && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
+  && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
+  && chmod +x /usr/local/bin/gosu \
+  && gosu nobody true
 
 
 RUN mkdir /usr/share/doc/sogo \
 RUN mkdir /usr/share/doc/sogo \
-	&& touch /usr/share/doc/sogo/empty.sh \
-	&& apt-key adv --keyserver keyserver.ubuntu.com --recv-key 0x810273C4 \
-	&& echo "deb http://packages.inverse.ca/SOGo/nightly/4/debian/ stretch stretch" > /etc/apt/sources.list.d/sogo.list \
-	&& apt-get update && apt-get install -y --force-yes \
-		sogo \
-		sogo-activesync \
-	&& rm -rf /var/lib/apt/lists/* \
-	&& echo '* * * * *   sogo   /usr/sbin/sogo-ealarms-notify 2>/dev/null' > /etc/cron.d/sogo \
-	&& echo '* * * * *   sogo   /usr/sbin/sogo-tool expire-sessions 60' >> /etc/cron.d/sogo \
-	&& echo '0 0 * * *   sogo   /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds' >> /etc/cron.d/sogo \
-	&& touch /etc/default/locale
+  && touch /usr/share/doc/sogo/empty.sh \
+  && apt-key adv --keyserver keyserver.ubuntu.com --recv-key 0x810273C4 \
+  && echo "deb http://packages.inverse.ca/SOGo/nightly/4/debian/ stretch stretch" > /etc/apt/sources.list.d/sogo.list \
+  && apt-get update && apt-get install -y --force-yes \
+    sogo \
+    sogo-activesync \
+  && rm -rf /var/lib/apt/lists/* \
+  && echo '* * * * *   sogo   /usr/sbin/sogo-ealarms-notify 2>/dev/null' > /etc/cron.d/sogo \
+  && echo '* * * * *   sogo   /usr/sbin/sogo-tool expire-sessions 60' >> /etc/cron.d/sogo \
+  && echo '0 0 * * *   sogo   /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds' >> /etc/cron.d/sogo \
+  && touch /etc/default/locale
 
 
 COPY ./bootstrap-sogo.sh /bootstrap-sogo.sh
 COPY ./bootstrap-sogo.sh /bootstrap-sogo.sh
 COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf
 COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf

+ 7 - 4
data/Dockerfiles/sogo/bootstrap-sogo.sh

@@ -113,8 +113,8 @@ EOF
 
 
 # Generate multi-domain setup
 # Generate multi-domain setup
 while read line
 while read line
-        do
-        echo "        <key>${line}</key>
+  do
+  echo "        <key>${line}</key>
         <dict>
         <dict>
             <key>SOGoMailDomain</key>
             <key>SOGoMailDomain</key>
             <string>${line}</string>
             <string>${line}</string>
@@ -150,8 +150,11 @@ while read line
                     <string>YES</string>
                     <string>YES</string>
                     <key>viewURL</key>
                     <key>viewURL</key>
                     <string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/_sogo_static_view</string>
                     <string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/_sogo_static_view</string>
-                </dict>
-            </array>
+                </dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
+  # Generate alternative LDAP authentication dict, when SQL authentication fails
+  # This will nevertheless read attributes from LDAP
+  line=${line} envsubst < /etc/sogo/plist_ldap >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
+  echo "            </array>
         </dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
         </dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
 done < <(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain;" -B -N)
 done < <(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain;" -B -N)