[packages/apache-mod_auth_mellon] new, version 0.7.0

glen glen at pld-linux.org
Tue Apr 29 17:57:05 CEST 2014


commit e0ae282c60679c72e6c2f9eddba869fd546c9179
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Tue Apr 29 18:56:23 2014 +0300

    new, version 0.7.0
    
    based on fedora package
    5f23c37313733e6fa2245d2017ae23de0e3c8d2a

 apache-mod_auth_mellon.spec | 62 ++++++++++++++++++++++++++++++
 auth_mellon.conf            |  6 +++
 mellon_create_metadata.sh   | 92 +++++++++++++++++++++++++++++++++++++++++++++
 mod_auth_mellon.tmpfiles    |  2 +
 4 files changed, 162 insertions(+)
---
diff --git a/apache-mod_auth_mellon.spec b/apache-mod_auth_mellon.spec
new file mode 100644
index 0000000..430ebd4
--- /dev/null
+++ b/apache-mod_auth_mellon.spec
@@ -0,0 +1,62 @@
+%define		mod_name	auth_mellon
+%define 	apxs		%{_sbindir}/apxs
+Summary:	A SAML 2.0 authentication module for the Apache Httpd Server
+Name:		apache-mod_%{mod_name}
+Version:	0.7.0
+Release:	1
+License:	GPL v2+
+Group:		Networking/Daemons/HTTP
+Source0:	https://modmellon.googlecode.com/files/mod_auth_mellon-%{version}.tar.gz
+# Source0-md5:	b1d58363c6feb00a39402b347bc2e17b
+Source1:	auth_mellon.conf
+Source3:	mod_auth_mellon.tmpfiles
+Source4:	mellon_create_metadata.sh
+URL:		https://code.google.com/p/modmellon/
+BuildRequires:	%{apxs}
+BuildRequires:	apache-devel >= 2.2
+BuildRequires:	curl-devel
+BuildRequires:	glib2-devel
+BuildRequires:	lasso-devel
+BuildRequires:	openssl-devel
+BuildRequires:	rpmbuild(macros) >= 1.268
+BuildRequires:	xmlsec1-devel
+Requires:	apache(modules-api) = %apache_modules_api
+Requires:	lasso >= 2.3.6
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define		_pkglibdir	%(%{apxs} -q LIBEXECDIR 2>/dev/null)
+%define		_sysconfdir	%(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
+
+%description
+The mod_auth_mellon module is an authentication service that
+implements the SAML 2.0 federation protocol. It grants access based on
+the attributes received in assertions generated by a IdP server.
+
+%prep
+%setup -q -n mod_%{mod_name}-%{version}
+
+%build
+%configure \
+	APXS=%{apxs}
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{systemdtmpfilesdir},%{_libdir}/%{name},/var/run/mod_%{mod_name}}
+
+install -p .libs/mod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc README COPYING
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
+%attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
+%attr(755,root,root) %{_libdir}/mellon_create_metadata.sh
+%dir %attr(755,http,http) /var/run/mod_%{mod_name}
+%{systemdtmpfilesdir}/%{name}.conf
diff --git a/auth_mellon.conf b/auth_mellon.conf
new file mode 100644
index 0000000..4b75e5e
--- /dev/null
+++ b/auth_mellon.conf
@@ -0,0 +1,6 @@
+LoadModule auth_mellon_module modules/mod_auth_mellon.so
+
+<IfModule mod_auth_mellon.c>
+	MellonCacheSize 100
+	MellonLockFile "/var/run/mod_auth_mellon/lock"
+</IfModule>
diff --git a/mellon_create_metadata.sh b/mellon_create_metadata.sh
new file mode 100644
index 0000000..4eb0baf
--- /dev/null
+++ b/mellon_create_metadata.sh
@@ -0,0 +1,92 @@
+#!/usr/bin/env bash
+set -e
+
+PROG="$(basename "$0")"
+
+printUsage() {
+    echo "Usage: $PROG ENTITY-ID ENDPOINT-URL"
+    echo ""
+    echo "Example:"
+    echo "  $PROG urn:someservice https://sp.example.org/mellon"
+    echo ""
+}
+
+if [ "$#" -lt 2 ]; then
+    printUsage
+    exit 1
+fi
+
+ENTITYID="$1"
+if [ -z "$ENTITYID" ]; then
+    echo "$PROG: An entity ID is required." >&2
+    exit 1
+fi
+
+BASEURL="$2"
+if [ -z "$BASEURL" ]; then
+    echo "$PROG: The URL to the MellonEndpointPath is required." >&2
+    exit 1
+fi
+
+if ! echo "$BASEURL" | grep -q '^https\?://'; then
+    echo "$PROG: The URL must start with \"http://\" or \"https://\"." >&2
+    exit 1
+fi
+
+HOST="$(echo "$BASEURL" | sed 's#^[a-z]*://\([^/]*\).*#\1#')"
+BASEURL="$(echo "$BASEURL" | sed 's#/$##')"
+
+OUTFILE="$(echo "$ENTITYID" | sed 's/[^A-Za-z.]/_/g' | sed 's/__*/_/g')"
+echo "Output files:"
+echo "Private key:               $OUTFILE.key"
+echo "Certificate:               $OUTFILE.cert"
+echo "Metadata:                  $OUTFILE.xml"
+echo "Host:                      $HOST"
+echo
+echo "Endpoints:"
+echo "SingleLogoutService:       $BASEURL/logout"
+echo "AssertionConsumerService:  $BASEURL/postResponse"
+echo
+
+# No files should not be readable by the rest of the world.
+umask 0077
+
+TEMPLATEFILE="$(mktemp -t mellon_create_sp.XXXXXXXXXX)"
+
+cat >"$TEMPLATEFILE" <<EOF
+RANDFILE           = /dev/urandom
+[req]
+default_bits       = 2048
+default_keyfile    = privkey.pem
+distinguished_name = req_distinguished_name
+prompt             = no
+policy             = policy_anything
+[req_distinguished_name]
+commonName         = $HOST
+EOF
+
+openssl req -utf8 -batch -config "$TEMPLATEFILE" -new -x509 -days 3652 -nodes -out "$OUTFILE.cert" -keyout "$OUTFILE.key" 2>/dev/null
+
+rm -f "$TEMPLATEFILE"
+
+CERT="$(grep -v '^-----' "$OUTFILE.cert")"
+
+cat >"$OUTFILE.xml" <<EOF
+<EntityDescriptor entityID="$ENTITYID" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+  <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+    <KeyDescriptor use="signing">
+      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+        <ds:X509Data>
+          <ds:X509Certificate>$CERT</ds:X509Certificate>
+        </ds:X509Data>
+      </ds:KeyInfo>
+    </KeyDescriptor>
+    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="$BASEURL/logout"/>
+    <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="$BASEURL/postResponse" index="0"/>
+  </SPSSODescriptor>
+</EntityDescriptor>
+EOF
+
+umask 0777
+chmod go+r "$OUTFILE.xml"
+chmod go+r "$OUTFILE.cert"
diff --git a/mod_auth_mellon.tmpfiles b/mod_auth_mellon.tmpfiles
new file mode 100644
index 0000000..e68dd80
--- /dev/null
+++ b/mod_auth_mellon.tmpfiles
@@ -0,0 +1,2 @@
+# mod_auth_mellon lock file is created in this directory
+d /var/run/mod_auth_mellon 755 http http
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/apache-mod_auth_mellon.git/commitdiff/e0ae282c60679c72e6c2f9eddba869fd546c9179



More information about the pld-cvs-commit mailing list