예제 #1
0
def test_expirado():
    """Revisar si el TA se encuentra vencido."""
    wsaa = WSAA()
    #checking for expired certificate
    script_dir = os.path.dirname(__file__)
    file_path = os.path.join(script_dir, 'xml/expired_ta.xml')
    chk = wsaa.AnalizarXml(xml=open(file_path, "r").read())
    chk2 = wsaa.Expirado()

    #checking for a valid certificate,i.e. which will
    #have expiration time 12 hrs(43200 secs) from generation
    fec = str(date("c", date("U") + 43200))
    chk3 = wsaa.Expirado(fecha=fec)

    assert chk == True
    assert chk2 == True
    assert chk3 == False
예제 #2
0
    def Autenticar(self, *args, **kwargs):
        if 'service' in kwargs:
            service = kwargs['service']
        else:
            service = 'wsfecred'
        wsaa = WSAA()
        archivo = ubicacion_sistema() + service + '-ta.xml'
        try:
            file = open(archivo, "r")
            ta = file.read()
            file.close()
        except:
            ta = ''

        if ta == '':  #si no existe el archivo se solicita un ticket
            solicitar = True
        else:
            ok = wsaa.AnalizarXml(ta)
            expiracion = wsaa.ObtenerTagXml("expirationTime")
            solicitar = wsaa.Expirado(
                expiracion)  #si el ticket esta vencido se solicita uno nuevo
            logging.info(
                "Fecha expiracion de ticket acceso {}".format(expiracion))

        if solicitar:
            #Generar un Ticket de Requerimiento de Acceso(TRA)
            tra = wsaa.CreateTRA(service=service)

            #Generar el mensaje firmado(CMS)
            if LeerIni(clave='h**o') == 'S':  #homologacion
                cms = wsaa.SignTRA(
                    tra, LeerIni(clave="cert_homo", key="WSAA"),
                    LeerIni(clave="privatekey_homo", key="WSAA"))
                ok = wsaa.Conectar("", LeerIni(clave='url_homo',
                                               key='WSAA'))  # Homologación
            else:
                cms = wsaa.SignTRA(
                    tra, LeerIni(clave="cert_prod", key="WSAA"),
                    LeerIni(clave="privatekey_prod", key="WSAA"))
                ok = wsaa.Conectar("", LeerIni(clave='url_prod',
                                               key='WSAA'))  #Produccion

            #Llamar al web service para autenticar
            ta = wsaa.LoginCMS(cms)

            #Grabo el ticket de acceso para poder reutilizarlo
            file = open(archivo, 'w')
            logging.debug('Ticket de acceso {}'.format(ta))
            file.write(ta)
            file.close()
        # devuelvo el ticket de acceso
        #print "Ticket acceso: {}".format(ta)
        return ta