Likes Likes:  0
Resultaten 1 tot 6 van de 6
Geen
  1. #1
    Maarten te Paske
    Re: Apache config voor 1 of enkele files
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Apache config voor 1 of enkele files

    On 28 Sep 2010 20:08:14 GMT, Rob <nomail@example.com> wrote:

    > Ik vraag me af of het ook mogelijk is om in een Apache configuratie
    > (de .conf files of .htaccess files) een enkele file te specificeren
    > waar acties aan moeten hangen (authenticatie in dit geval).
    >
    > Ik heb de <Directory> <Location> en <Files> directives uitgebreid
    > bestudeerd maar alles wijst er op dat je altijd praat over een
    > directory EN ALLE SUBDIRECTORIES als je iets instelt.
    >
    > Bijv als ik <Files "index.pl"> neerzet in een .htaccess file in een
    > bepaalde directory, dan werkt dit niet alleen voor de index.pl in
    > die directory maar ook voor alle eventuele index.pl files in
    > subdirectories daarvan.
    >
    > Is er werkelijk geen enkele mogelijkheid om dit tegen te gaan?
    >
    > Ik zie nergens een mogelijkheid om een volledige pathname of URL
    > op te geven en dan alleen op die file te werken en verder nergens
    > op.


    Werkt dit niet gewoon:

    <Location "/index.pl">
    [...]
    </Location>

    Of als het om een subdirectory van de docroot gaat:

    <Location "/subdirectory/index.pl">
    [...]
    </Location>

    ?

    Maarten

  2. #2
    Rob
    Re: Apache config voor 1 of enkele files
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Apache config voor 1 of enkele files

    Maarten te Paske <maarten@tepaske.net.invalid> wrote:
    > On 28 Sep 2010 20:08:14 GMT, Rob <nomail@example.com> wrote:
    >
    >> Ik vraag me af of het ook mogelijk is om in een Apache configuratie
    >> (de .conf files of .htaccess files) een enkele file te specificeren
    >> waar acties aan moeten hangen (authenticatie in dit geval).
    >>
    >> Ik heb de <Directory> <Location> en <Files> directives uitgebreid
    >> bestudeerd maar alles wijst er op dat je altijd praat over een
    >> directory EN ALLE SUBDIRECTORIES als je iets instelt.
    >>
    >> Bijv als ik <Files "index.pl"> neerzet in een .htaccess file in een
    >> bepaalde directory, dan werkt dit niet alleen voor de index.pl in
    >> die directory maar ook voor alle eventuele index.pl files in
    >> subdirectories daarvan.
    >>
    >> Is er werkelijk geen enkele mogelijkheid om dit tegen te gaan?
    >>
    >> Ik zie nergens een mogelijkheid om een volledige pathname of URL
    >> op te geven en dan alleen op die file te werken en verder nergens
    >> op.

    >
    > Werkt dit niet gewoon:
    >
    > <Location "/index.pl">
    > [...]
    > </Location>


    Dit werkt wel een beetje maar ik loop hier tegen hetzelfde probleem
    aan als in .htaccess:

    De file waar het om gaat is weliswaar /index.pl maar de manier waarop
    die wordt aangeroepen door de gebruiker is http://sitenaam/

    Dus dat index.pl staat er niet achter. Het is de default index.

    Nu gaat er wat fout als ik alleen "/index.pl" opgeef, ik krijg dan
    een 500 error. Wellicht heeft dit te maken met de brakke NTLM module.

    In ieder geval om het goed te krijgen moet ik ook de lege filenaam
    opgeven, in jouw voorbeeld wordt dit dan <Location "/">. Maar dat
    kan ik er niet inzetten want dan word ik weer gebeten door die idiote
    eigenschap van Apache dat al dit soort regels alleen links-matchend
    zijn en dus een "/" matcht met de hele website!

    Dat zou met "/index.pl" alleen een theoretisch probleem zijn maar dat
    is dus niet voldoende om op te geven.


    Het enige doel van de hele exercitie is om de usernaam van de bezoeker
    beschikbaar te krijgen. De afgelopen 10 jaar heeft dit gewerkt door
    dat ik op de werkstations een identd geinstalleerd heb en de paar
    pagina's die de usernaam nodig hebben die doen een ident verzoek en
    krijgen keurig die naam terug.
    Maar nou is er bedacht dat we Citrix desktops moeten gaan gebruiken voor
    bepaalde toepassingen, en wat ik ook gezocht heb, er is geen werkende
    identd te vinden voor Citrix (dwz een die ook daadwerkelijk de user
    terug geeft die hoort bij de opgevraagde connectie, niet de user van
    het console ofzo).

    Vandaar dat ik dacht laat ik het zo doen als Microsoft het altijd doet,
    dwz met NTLM. In een IIS omgeving geen probleem natuurlijk, maar voor
    Apache is het niet zo simpel. Ik gebruik nu de mod_auth_ntlm_winbind
    en die moet je dan via de Apache config aan je pagina's koppelen, wat
    een probleem is met de bestaande structuur.

    Daarnaast heb ik een aantal PHP pagina's en daar is het me zowaar
    gelukt om in die scriptjes zelf een stukje PHP toe te voegen wat de
    NTLM functie afhandelt zonder dat Apache daar bij betrokken is.
    Als me dit ook zou lukken voor Perl pagina's dan ben ik eruit want dan
    hoef ik heel die Apache config niet te doen en vervalt het hele probleem
    van deze thread.

    Maar helaas, dat PHP script doet iets wat in mijn Perl scripts kennelijk
    niet zomaar kan: spelen met de Authorization en WWW-Authenticate headers.
    Dat komt denk ik door de CGI interface.
    Dit is dus ook nog wat uitzoekwerk.

  3. #3
    Luuk
    Re: Apache config voor 1 of enkele files
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Apache config voor 1 of enkele files

    On 03-10-10 13:22, Rob wrote:
    > Maarten te Paske<maarten@tepaske.net.invalid> wrote:
    >> On 28 Sep 2010 20:08:14 GMT, Rob<nomail@example.com> wrote:
    >>
    >>> Ik vraag me af of het ook mogelijk is om in een Apache configuratie
    >>> (de .conf files of .htaccess files) een enkele file te specificeren
    >>> waar acties aan moeten hangen (authenticatie in dit geval).
    >>>
    >>> Ik heb de<Directory> <Location> en<Files> directives uitgebreid
    >>> bestudeerd maar alles wijst er op dat je altijd praat over een
    >>> directory EN ALLE SUBDIRECTORIES als je iets instelt.
    >>>
    >>> Bijv als ik<Files "index.pl"> neerzet in een .htaccess file in een
    >>> bepaalde directory, dan werkt dit niet alleen voor de index.pl in
    >>> die directory maar ook voor alle eventuele index.pl files in
    >>> subdirectories daarvan.
    >>>
    >>> Is er werkelijk geen enkele mogelijkheid om dit tegen te gaan?
    >>>
    >>> Ik zie nergens een mogelijkheid om een volledige pathname of URL
    >>> op te geven en dan alleen op die file te werken en verder nergens
    >>> op.

    >>
    >> Werkt dit niet gewoon:
    >>
    >> <Location "/index.pl">
    >> [...]
    >> </Location>

    >
    > Dit werkt wel een beetje maar ik loop hier tegen hetzelfde probleem
    > aan als in .htaccess:
    >
    > De file waar het om gaat is weliswaar /index.pl maar de manier waarop
    > die wordt aangeroepen door de gebruiker is http://sitenaam/
    >
    > Dus dat index.pl staat er niet achter. Het is de default index.
    >
    > Nu gaat er wat fout als ik alleen "/index.pl" opgeef, ik krijg dan
    > een 500 error. Wellicht heeft dit te maken met de brakke NTLM module.
    >
    > In ieder geval om het goed te krijgen moet ik ook de lege filenaam
    > opgeven, in jouw voorbeeld wordt dit dan<Location "/">. Maar dat
    > kan ik er niet inzetten want dan word ik weer gebeten door die idiote
    > eigenschap van Apache dat al dit soort regels alleen links-matchend
    > zijn en dus een "/" matcht met de hele website!
    >
    > Dat zou met "/index.pl" alleen een theoretisch probleem zijn maar dat
    > is dus niet voldoende om op te geven.
    >
    >
    > Het enige doel van de hele exercitie is om de usernaam van de bezoeker
    > beschikbaar te krijgen. De afgelopen 10 jaar heeft dit gewerkt door
    > dat ik op de werkstations een identd geinstalleerd heb en de paar
    > pagina's die de usernaam nodig hebben die doen een ident verzoek en
    > krijgen keurig die naam terug.
    > Maar nou is er bedacht dat we Citrix desktops moeten gaan gebruiken voor
    > bepaalde toepassingen, en wat ik ook gezocht heb, er is geen werkende
    > identd te vinden voor Citrix (dwz een die ook daadwerkelijk de user
    > terug geeft die hoort bij de opgevraagde connectie, niet de user van
    > het console ofzo).
    >
    > Vandaar dat ik dacht laat ik het zo doen als Microsoft het altijd doet,
    > dwz met NTLM. In een IIS omgeving geen probleem natuurlijk, maar voor
    > Apache is het niet zo simpel. Ik gebruik nu de mod_auth_ntlm_winbind
    > en die moet je dan via de Apache config aan je pagina's koppelen, wat
    > een probleem is met de bestaande structuur.
    >
    > Daarnaast heb ik een aantal PHP pagina's en daar is het me zowaar
    > gelukt om in die scriptjes zelf een stukje PHP toe te voegen wat de
    > NTLM functie afhandelt zonder dat Apache daar bij betrokken is.
    > Als me dit ook zou lukken voor Perl pagina's dan ben ik eruit want dan
    > hoef ik heel die Apache config niet te doen en vervalt het hele probleem
    > van deze thread.
    >
    > Maar helaas, dat PHP script doet iets wat in mijn Perl scripts kennelijk
    > niet zomaar kan: spelen met de Authorization en WWW-Authenticate headers.
    > Dat komt denk ik door de CGI interface.
    > Dit is dus ook nog wat uitzoekwerk.


    hmm, zou dit dan je oplossing zijn:

    "index.pl"uit je DirectoryIndex halen,
    en "index.html" doorsturen naar "index.pl"

    als de bezoeker naar http://example.com/ gaat,
    wordt via de DirectoryIndex "index.html" opgehaald,
    en die verwijst door naar jouw "index.pl"
    die je m.b.v. de <Location> de NTLM-zooi laat doen....

    --
    Luuk

  4. #4
    Rob
    Re: Apache config voor 1 of enkele files
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Apache config voor 1 of enkele files

    Luuk <Luuk@invalid.lan> wrote:
    > hmm, zou dit dan je oplossing zijn:
    >
    > "index.pl"uit je DirectoryIndex halen,
    > en "index.html" doorsturen naar "index.pl"
    >
    > als de bezoeker naar http://example.com/ gaat,
    > wordt via de DirectoryIndex "index.html" opgehaald,
    > en die verwijst door naar jouw "index.pl"
    > die je m.b.v. de <Location> de NTLM-zooi laat doen....


    Miquel heeft een truuk met rewrite laten zien waarmee dit gedeelte
    van het probleem kan worden opgelost.
    Wellicht ga ik het zo doen als het me niet op de andere manier lukt.

    Die andere manier is de NTLM handling in de index.pl zelf te doen
    dus niet in Apache authenticatie modules.

    Ik heb dit stukje PHP (gevonden en nog wat gestript):

    <?php
    // Gebruik NTLM protocol om usernaam op te halen van PC

    // loune 25/3/2006, updated 22/08/2009
    // For more information see:
    // http://siphon9.net/loune/2007/10/sim...t-ntlm-in-php/

    function get_msg_str($msg,$start) {
    $len = (ord($msg[$start+1]) * 256) + ord($msg[$start]);
    $off = (ord($msg[$start+5]) * 256) + ord($msg[$start+4]);
    return str_replace("\0",'',substr($msg,$off,$len));
    }

    function ntlmident () {
    $headers = apache_request_headers();

    if (!isset($headers['Authorization'])){
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: NTLM');
    exit;
    }

    $auth = $headers['Authorization'];

    if (substr($auth,0,5) == 'NTLM ') {
    $msg = base64_decode(substr($auth,5));
    if (substr($msg,0,8) != "NTLMSSP\x00")
    die('error header not recognised');

    if ($msg[8] == "\x01") {
    $msg2 = "NTLMSSP\x00\x02\x00\x00\x00".
    "\x00\x00\x00\x00". // target name len/alloc
    "\x00\x00\x00\x00". // target name offset
    "\x01\x02\x81\x00". // flags
    "\x00\x00\x00\x00\x00\x00\x00\x00". // challenge
    "\x00\x00\x00\x00\x00\x00\x00\x00". // context
    "\x00\x00\x00\x00\x00\x00\x00\x00"; // target info len/alloc/offset

    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: NTLM '.trim(base64_encode($msg2)));
    exit;
    }
    else if ($msg[8] == "\x03") {
    $user = get_msg_str($msg,36);
    $domain = get_msg_str($msg,28);
    $workstation = get_msg_str($msg,44);

    return preg_replace('/\b([a-z])/e',"ucfirst($1)",$user);
    }
    }

    return "!No.Ident";
    }
    ?>


    Dit doet precies wat ik nodig heb: de usernaam opvragen. Geen echte
    authenticatie, dat heb ik niet nodig.

    Nou wil ik proberen dit naar perl om te zetten, en wel zo dat het kan
    draaien onder mod_perl met de CGI compatible mode.

    <Files "*\.pl">
    # mod_perl mode
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
    </Files>

    Dit staat in de server config.
    Wat ik nog moet uitzoeken is hoe ik het equivalent van die
    apache_request_headers in PHP kan doen in deze Perl omgeving.
    Als dat lukt dan heb ik dat hele configuratie probleem niet meer.

  5. #5
    John Bokma
    Re: Apache config voor 1 of enkele files
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Apache config voor 1 of enkele files

    Rob <nomail@example.com> writes:

    > Die andere manier is de NTLM handling in de index.pl zelf te doen
    > dus niet in Apache authenticatie modules.


    CPAN is your friend: http://search.cpan.org/search?query=NTLM&mode=all

    En nee, je hoeft geen root te zijn om Perl modules te installeren, je
    kan die gewoon lokaal neer zetten en de locatie opnemen in het zoekpad
    van Perl, b.v.

    use lib '/home/rob/perl-modules/';

    use Foo::Bar;

    > Nou wil ik proberen dit naar perl om te zetten,


    Welnee, shop op CPAN, wat het allermooiste aan Perl is: zoveel modules,
    niet nodig om wielen uit te vinden.

    --
    John Bokma j3b

    Blog: http://johnbokma.com/ Facebook: http://www.facebook.com/j.j.j.bokma
    Freelance Perl & Python Development: http://castleamber.com/



  6. #6
    Rob
    Re: Apache config voor 1 of enkele files
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Apache config voor 1 of enkele files

    John Bokma <john@castleamber.com> wrote:
    > Rob <nomail@example.com> writes:
    >
    >> Die andere manier is de NTLM handling in de index.pl zelf te doen
    >> dus niet in Apache authenticatie modules.

    >
    > CPAN is your friend: http://search.cpan.org/search?query=NTLM&mode=all


    Daar heb ik uiteraard al op gezocht maar ik krijg het idee dat daar
    alleen client-side en Apache authenticatie modules te vinden zijn.

    Het equivalent van wat ik gepost heb in PHP heb ik er nog niet kunnen
    vinden.

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2021 Webhostingtalk.nl.
Web Statistics