import os from datetime import date DAY = date.today().isoformat() ECCS_DIR = f"{os.environ['HOME']}/eccs" PATHCHROMEDRIVER = f"{ECCS_DIR}/chromedriver" ECCS_PYTHON = f"{ECCS_DIR}/python/bin/python3" # Input ECCS_INPUTDIR = f"{ECCS_DIR}/input" ECCS_LISTIDPSURL = 'https://technical.edugain.org/api.php?action=list_eccs_idps&format=json' ECCS_LISTIDPSFILE = f"{ECCS_INPUTDIR}/list_eccs_idps.json" ECCS_LISTFEDSURL = 'https://technical.edugain.org/api.php?action=list_feds&opt=1&format=json' ECCS_LISTFEDSFILE = f"{ECCS_INPUTDIR}/list_fed.json" # Output ECCS_OUTPUTDIR = f"{ECCS_DIR}/output" ECCS_RESULTSLOG = f"eccs_{DAY}.log" ECCS_HTMLDIR = f"{ECCS_DIR}/html" # Selenium ECCS_SELENIUMDEBUG = False ECCS_SELENIUMLOGDIR = f"{ECCS_DIR}/selenium-logs" ECCS_SELENIUMPAGELOADTIMEOUT = 30 #seconds (remind to change timeout seconds also on web/eccs.js) ECCS_SELENIUMSCRIPTTIMEOUT = 30 #seconds ECCS_REQUESTSTIMEOUT = 15 #seconds # Logs ECCS_LOGSDIR = f"{ECCS_DIR}/logs" ECCS_STDOUT = f"{ECCS_LOGSDIR}/stdout_{DAY}.log" ECCS_STDERR = f"{ECCS_LOGSDIR}/stderr_{DAY}.log" ECCS_FAILEDCMD = f"{ECCS_LOGSDIR}/failed-cmd.sh" ECCS_STDOUTIDP = f"{ECCS_LOGSDIR}/stdout_idp_{DAY}.log" ECCS_STDERRIDP = f"{ECCS_LOGSDIR}/stderr_idp_{DAY}.log" ECCS_FAILEDCMDIDP = f"{ECCS_LOGSDIR}/failed-cmd-idp.sh" # Number of processes to run in parallel ECCS_NUMPROCESSES = 35 # The 2 SPs that will be used to test each IdP ECCS_SPS = [ "https://sp-demo.idem.garr.it/Shibboleth.sso/Login?entityID=", "https://attribute-viewer.aai.switch.ch/interfederation-test/Shibboleth.sso/Login?entityID=" ] # ROBOTS.TXT ROBOTS_USER_AGENT = "ECCS/2.0 (+https://technical.edugain.org/eccs)" # PATTERNS IDPERROR = "error.occurred" METADATAPATTERN = "Unable.to.locate(\sissuer.in|).metadata(\sfor|)|no.metadata.found|profile.is.not.configured.for.relying.party|Cannot.locate.entity|fail.to.load.unknown.provider|does.not.recognise.the.service|unable.to.load.provider|Nous.n'avons.pas.pu.(charg|charger).le.fournisseur.de service|Metadata.not.found|application.you.have.accessed.is.not.registered.for.use.with.this.service|Message.did.not.meet.security.requirements|Unsupported.Request|Not.Authorized|METADATANOTFOUND|Unknown.login.requester|is.unspecified.or.unsupported|Unknown.service.provider|Richiesta.non.supportata|Metadati.non.trovati|untrusted.provider|Unregistered.Service|Unsupported.request|UNHANDLEDEXCEPTION|Metadata.*.expired|Could.not.find.any.*.metadata.*.for" PASSWORDPATTERN = '<input[\s]+[^>]*(type=\s*[\'"]password[\'"]|password)[^>]*>' REFUSEDPATTERN = '(^http)(.*\.png$)|(.*\.css$)|(.*\.js$)|(.*\.gif$)|(.*\.svg$)|(.*\.jpg$)' # { 'reg_auth':'reason' } FEDS_DISABLED_DICT = { 'http://www.surfconext.nl/':'Federation excluded from check', 'https://www.wayf.dk':'Federation excluded from check', 'http://feide.no/':'Federation excluded from check' } # { 'entityid_idp':'reason' } IDPS_DISABLED_DICT = { 'https://idp.eie.gr/idp/shibboleth':'Disabled on 2019-04-24 because ECCS cannot check non-standard login page', 'https://edugain-proxy.igtf.net/simplesaml/saml2/idp/metadata.php':'Disabled on 2017-03-17 on request of federation operator', 'https://gn-vho.grnet.gr/idp/shibboleth':'Disabled on 2019-04-24 because basic authentication is not supported by ECCS check', 'https://wtc.tu-chemnitz.de/shibboleth':'Disabled on 2019-02-26 because ECCS cannot check non-standard login page', 'https://idp.fraunhofer.de/idp/shibboleth':'Disabled on 2017-11-24 on request of federation operator', 'https://idp.dfn-cert.de/idp/shibboleth':'Disabled on 2018-04-05 on request of federation operator', 'https://idp.cambria.ac.uk/openathens':'Disabled on 2017-10-27 on request of federation operator', 'https://login.lstonline.ac.uk/idp/pingfederate':'Disabled on 2017-02-08 on request of federation operator', 'https://indiid.net/idp/shibboleth':'Disabled on 2017-10-27 on request of federation operator', 'https://idp.nulc.ac.uk/openathens':'Disabled on 2017-10-27 on request of federation operator', 'https://lc-idp.lincolncollege.ac.uk/shibboleth':'Disabled on 2015-08-17 because uses HTTP Basic authentication, which cannot be checked reliably', 'https://idp.wnsc.ac.uk/idp/shibboleth':'Disabled on 2017-10-27 on request of federation operator', # 'https://idp.strodes.ac.uk/shibboleth':'Disabled on 2015-08-17 because uses HTTP Basic authentication, which cannot be checked reliably', 'https://idp.uel.ac.uk/shibboleth':'Disabled on 2017-10-27 on request of federation operator', 'https://idp.ucreative.ac.uk/shibboleth':'Disabled on 2017-10-27 on request of federation operator', 'https://idp.llandrillo.ac.uk/shibboleth':'Disabled on 2017-10-27 on request of federation operator', 'https://sso.vu.lt/SSO/saml2/idp/metadata.php':'Disabled on 2018-11-02 because ECCS cannot check non-standard login page', 'https://ssl.education.lu/saml/saml2/idp/metadata.php':'Disabled on 2018-11-06 ECCS cannot check non-standard login page', 'https://sso.oktaedu.com/idp/shibboleth':'Disabled on 2021-08-12 because ECCS cannot check non-standard login page', }