1#!/usr/bin/perl 2# Copyright (c) 2010-2011 Sampo Kellomaki (sampo@iki.fi), All Rights Reserved. 3# This is confidential unpublished proprietary source code of the author. 4# NO WARRANTY, not even implied warranties. Contains trade secrets. 5# Distribution prohibited unless authorized in writing. 6# Licensed under Apache License 2.0, see file COPYING. 7# $Id$ 8# 9# 9.2.2011, adapted from zximport-htpasswd.pl --Sampo 10# 11# Commandline for importing .htpasswd file to /var/zxid/idpuid 12 13$usage = <<USAGE; 14Commandline for importing LDIF file to /var/zxid/idpuid 15Usage: ./zximport-ldif.pl <foo.ldif 16USAGE 17 ; 18die $USAGE if $ARGV[0] =~ /^-[Hh?]/; 19 20#$dir = '/tmp/idpuid'; 21$dir = '/var/zxid/idpuid'; 22 23$uidn = 1; 24 25use Data::Dumper; 26 27sub writeall { 28 my ($f,$d) = @_; 29 open F, ">$f" or die "Cant write($f): $!"; 30 binmode F; 31 flock F, 2; # Exclusive 32 print F $d; 33 flock F, 8; 34 close F; 35} 36 37sub mkuser { 38 my ($uid, $pw, $at) = @_; 39 chomp $crypt; 40 mkdir "$dir/$uid" or die "Cant mkdir $dir/$uid: $!"; 41 mkdir "$dir/$uid/.bs" or die "Cant mkdir $dir/$uid/.bs: $!"; 42 mkdir "$dir/$uid/.ykspent" or die "Cant mkdir $dir/$uid/.ykspent: $!"; 43 writeall("$dir/$uid/.pw", $pw); 44 writeall("$dir/$uid/.bs/.at", $at); 45} 46 47 48undef $/; 49$x = <STDIN>; 50@recs = split /\r?\n\r?\n/, $x; 51for $rec (@recs) { 52 next if $rec =~ /^\s*$/; 53 warn "REC1($rec)"; 54 $idpnid = $uid = $pw = ''; 55 $rec =~ s/^dn: .*?\r?\n//m; 56 ($idpnid) = $rec =~ /^idpnid: (.*?)$/m; 57 $rec =~ s/^idpnid: .*?\r?\n//m; 58 ($uid) = $rec =~ /^uid: (.*?)$/m; 59 $rec =~ s/^uid: .*?\r?\n//m; 60 ($pw) = $rec =~ /^password: (.*?)$/m; 61 $rec =~ s/^password: .*?\r?\n//m; 62 ($cn) = $rec =~ /^cn: (.*?)$/m; 63 $rec =~ s/^cn: .*?\r?\n//m; 64 $rec =~ s/^urn:oasis:names:tc:xacml:1.0:subject:subject-id: .*?\r?\n//m; 65 warn "REC2($rec) idpnid($idpnid) uid($uid) pw($pw) cn($cn)"; 66 #$uid ||= "user".$uidn++; 67 $uid ||= "testUserReview2011-".$uidn++; 68 $pw ||= "tas123"; 69 $cn ||= "Mr. $uid"; 70 warn "REC3($rec) idpnid($idpnid) uid($uid) pw($pw) cn($cn)"; 71 mkuser($uid, $pw, "cn: $cn\n$rec\n"); 72 # if ($idpnid) *** too complicated as this depends on SP as well 73} 74 75__END__ 76 77https://portal.tas3.eu/trac/ticket/495 78 79RequestNOTScenario_1.ldif 80RequestNOTScenario_2.ldif 81RequestNOTScenario_3.ldif 82RequestNOTScenario_4.ldif 83RequestNOTScenario_5.ldif 84RequestNOTScenario_6.ldif 85RequestNOTScenario_7.ldif 86RequestNOTScenario_8.ldif 87RequestNOTScenario_9.ldif 88RequestNOTScenario_10.ldif 89RequestNOTScenario_11.ldif 90RequestNOTScenario_12.ldif 91RequestNOTScenario_13.ldif 92RequestNOTScenario_14.ldif 93RequestNOTScenario_15.ldif 94RequestNOTScenario_16.ldif 95RequestNOTScenario_17.ldif 96RequestNOTScenario_18.ldif 97RequestNOTScenario_19.ldif 98RequestNOTScenario_20.ldif 99RequestNOTScenario_21.ldif 100RequestNOTScenario_22.ldif 101RequestNOTScenario_23.ldif 102RequestNOTScenario_24.ldif 103RequestNOTScenario_25.ldif 104RequestNOTScenario_26.ldif 105RequestNOTScenario_27.ldif 106RequestNOTScenario_28.ldif 107RequestNOTScenario_29.ldif 108RequestNOTScenario_30.ldif 109RequestNOTScenario_31.ldif 110RequestNOTScenario_32.ldif 111RequestNOTScenario_33.ldif 112RequestNOTScenario_34.ldif 113RequestNOTScenario_35.ldif 114RequestNOTScenario_36.ldif 115RequestNOTScenario_37.ldif 116RequestNOTScenario_38.ldif 117RequestNOTScenario_39.ldif 118RequestNOTScenario_40.ldif 119RequestNOTScenario_41.ldif 120RequestNOTScenario_42.ldif 121RequestNOTScenario_43.ldif 122RequestNOTScenario_44.ldif 123RequestNOTScenario_45.ldif 124RequestNOTScenario_46.ldif 125RequestNOTScenario_47.ldif 126RequestNOTScenario_48.ldif 127RequestNOTScenario_49.ldif 128RequestNOTScenario_50.ldif 129