[genropy] Come sostituisco l'autorizzazione standard di genropy?

  • From: Gollum1 <gollum1.smeagol1@xxxxxxxxx>
  • To: genropy <genropy@xxxxxxxxxxxxx>
  • Date: Sun, 3 Jan 2016 18:45:13 +0100

Mi spiego meglio, nel mio caso uso uno script di autenticazione su una
pagina NTLM (quando avrò ancora un po' più di tempo lo farò anche con
autorizzazione exchange, ma per ora questo mi basta).

Lo script funziona da console, se inserisco i dati corretti mi ritorna
un valore, (quale di preciso non so, non è printabile), mentre se i
dati non sono corretti, ritorna un valore vuoto. quindi è facile fare
un return true o false.

Allego lo script, ho anonimizzato il sito di rifermento, tanto non
funzionerebbe sulla rete pubblica.

Ora, il mio intento è quello di usare questo script per permettere il
login all'interno dei miei progetti genropy, quindi devo creare un
package a se stante, che poi possa essere usato in tutti i package che
vado a creare successivamente.

Il sistema di autenticazione standard di genropy mi pare di capire che
dipende dal pkg adm, se non iscrivo quello come package da usare, non
eseguo il login, mentre se non metto sys, mi mancano alcune cose (tipo
l'editor dei package), ma riesco a loggarmi.

sto esaminando il package adm, ma non riesco a capire di preciso in
quale punto devo mettere il mio script... (sono forse anche un po'
stanco, magari nei prossimi giorni mi viene in mente qualcosa, ma se
nel frattempo mi date un suggerimento, non è che bene accetto), la
prova che vorrei fare sarebbe sostituire questo package di
autenticazione nella mia sandbox, per vedere se funziona.

Byez
-- 
Gollum1 - http://www.gollumone.it
Tesssssoro, dov'é il mio tessssoro...
# Required:
#
#           pip install python-ntlm
#

import urllib2
from ntlm import HTTPNtlmAuthHandler
import getpass


def req_auth(url, user, password):

    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
    passman.add_password(None, url, user, password)

    # create the NTLM authentication handler
    auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)

    # create and install the opener
    opener = urllib2.build_opener(auth_NTLM)
    urllib2.install_opener(opener)

    # retrieve the result
    response = urllib2.urlopen(url)

    if response.read():
        return True
    else:
        return False


if __name__ == "__main__":

    url = "http://www.url_di_dominio_NTLM.it/";

    user = raw_input("utente: ")
    password = getpass.getpass('Password: ')

    if user[:4].upper() == "RAI\\":
        user = user[4:]
    user = "RAI\\" + user.lower()

    if req_auth(url, user, password):
        print "Sei autorizzato"
    else:
        print "NON SEI AUTORIZZATO!"


Other related posts: