diff --git a/README.md b/README.md index 431b1d786a30ae284f6fcb2d8047f96ed801e041..dd9afd1598aa3a3b32f797b560c9e272e7542865 100644 --- a/README.md +++ b/README.md @@ -383,6 +383,16 @@ The eduGAIN Connectivity Check Service web page is available at https://technica * `cd $HOME/eccs ; ./api.py` +## Search files created on the current date + +* `cd $HOME/eccs` +* `find . -name *$(date +%Y-%m-%d)*` + +## Delete files created on the current date + +* `cd $HOME/eccs` +* `rm -rf html/$(date +%Y-%m-%d) output/eccs_$(date +%Y-%m-%d).log logs/*_$(date +%Y-%m-%d).log` + # Authors ## Original Author diff --git a/eccs_properties.py.template b/eccs_properties.py.template index 0f5ad49685d828118f7d396d3bf135b4f9676ab9..db83765197f60b775457dddcb3d31af230dcdfa5 100644 --- a/eccs_properties.py.template +++ b/eccs_properties.py.template @@ -49,8 +49,8 @@ ROBOTS_USER_AGENT = "ECCS/2.0 (+https://technical.edugain.org/eccs)" # PATTERNS JAVASCRIPT = '"x-my-okta-version"' -IDPERROR = "error\s(has\s)?occur(r)?ed|Error\swhen\sprocessing\s(the\s)?authentication\srequest|The.(server|system).encountered.an.error|Internal.Server.Error|403.Forbidden|Service.Unavailable|InvalidProfileConfiguration|Unexpected.System.Error|404\s(.\s)?[Nn]ot.[Ff]ound|OpenAthens:.404|On.tapahtunut.virhe|Unhandled.exception|Bad.Gateway|Page.Not.Found|Δεν.επιτρέπεται.η.πρόσβαση|temporary\s(unavailable|error).?|License.error|n'est.pas.gérée|Invalid.Request|Erreur.!|Please.report.this.error.to|该网站无法访问" -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|不支持的请求|l'application.n'est.pas.enregistrée|Requisição.não.suportada|トされていないリクエスト|is.not.allowed|Authorization.Failure|Pedido.não.suportado|Nicht.unterstützte.Anfrage" +IDPERROR = "error\s(has\s)?occur(r)?ed|Error\swhen\sprocessing\s(the\s)?authentication\srequest|The\s(server|system)\sencountered\san\s(internal\s)?error|Internal\sServer\sError|403\sForbidden|Service\sUnavailable|InvalidProfileConfiguration|Unexpected\sSystem\sError|404\s(.\s)?not\sfound|OpenAthens:\s404|On\stapahtunut\svirhe|Unhandled\sexception|Bad\sGateway|Page\sNot\sFound|Δεν\sεπιτρέπεται\sη\sπρόσβαση|tempora(ry|rily)\s(unavailable|error)+|License\serror|n'est\spas\sgérée|Invalid\sRequest|Erreur\s!|Please\sreport\sthis\serror\sto|该网站无法访问|proxy\serror|There\sis\sa\sproblem\swith\syour\saccount" +METADATAPATTERN = "Unable\sto\slocate(\sissuer\sin|)\smetadata(\sfor|)|no\smetadata\sfound|profile\sis\snot\sconfigured\sfor\srelying\sparty|Cannot\slocate\sentity|fail\sto\sload\sunknown\sprovider|does\snot\srecognise\sthe\sservice|unable\sto\sload\sprovider|Nous\sn'avons\spas\spu\s(charg|charger)\sle\sfournisseur\sde\sservice|Metadata\snot\sfound|application\s(you\shave\saccessed\s)?is\snot\sregistered\s(for\suse\sthis\sservice)?|Message\sdid\snot\smeet\ssecurity\srequirements|unsupported\s[Rr]equest|METADATANOTFOUND|Unknown\slogin\srequester|is\sunspecified\sor\sunsupported|Unknown\sservice\sprovider|Richiesta\snon\ssupportata|Metadati\snon\strovati|untrusted\sprovider|Unregistered\sService|UNHANDLEDEXCEPTION|Metadata.*.expired|Could\snot\sfind\sany.*.metadata.*.for|不支持的请求|l'application\sn'est\spas\senregistrée|Requisição\snão\ssuportada|トされていないリクエスト|is\snot\sallowed|Authorization\sFailure|Pedido\snão\ssuportado|Nicht\sunterstützte\sAnfrage|Service\sNot\sAuthorized\sfor\sSingle\sSign-On|Your\sbrowser\ssent\sa\srequest\sthat\sthis\sserver\scould\snot\sunderstand|Application\sNot\sAuthorized\sTo\sUse\sCAS" PASSWORDPATTERN = '<input[\s]+[^>]*(type=\s*[\'"]password[\'"]|password)[^>]*>' USERNAMEPATTERN = '<input[\s]+[^>]*((type=\s*[\'"](text|email)[\'"]|user)|(name=\s*[\'"](name)[\'"]))[^>]*>' diff --git a/utils.py b/utils.py index 301bf90b44ca46245a78e73e05b985e511519ff4..a7e9dd017538254ed1a2f76dbeb1d13ae69c888a 100644 --- a/utils.py +++ b/utils.py @@ -272,7 +272,7 @@ def check_idp_response_selenium(sp,idp,test): driver.get(wayfless_url) # Support HTTP Basic Authentication - unauthorized = re.search('401.(\D.|\s.)?Unauthorized', driver.page_source, re.I) + unauthorized = re.search('401.(\D.|\s.)?Unauthorized', driver.page_source, re.IGNORECASE) if (unauthorized): if (test): pgsrc = f"\n[PAGE_SOURCE]\n{driver.page_source}\n[WAYFLESS URL]{wayfless_url} - JAVASCRIPT FOUND" else: pgsrc = driver.page_source @@ -280,7 +280,7 @@ def check_idp_response_selenium(sp,idp,test): if (stored): return (idp['entityID'],wayfless_url,check_time,"OK",webdriver_error) - metadata_not_found = re.search(e_p.METADATAPATTERN,driver.page_source, re.I) + metadata_not_found = re.search(e_p.METADATAPATTERN,driver.page_source, re.IGNORECASE) if (metadata_not_found): if (test): pgsrc = f"\n[PAGE_SOURCE]\n{driver.page_source}\n[WAYFLESS URL]{wayfless_url} - METADATA NOT FOUND" else: pgsrc = driver.page_source @@ -288,7 +288,7 @@ def check_idp_response_selenium(sp,idp,test): if (stored): return (idp['entityID'],wayfless_url,check_time,"No-eduGAIN-Metadata",webdriver_error) - idp_error = re.search(e_p.IDPERROR,driver.page_source, re.I) + idp_error = re.search(e_p.IDPERROR,driver.page_source, re.IGNORECASE) if (idp_error): if (test): pgsrc = f"\n[PAGE_SOURCE]\n{driver.page_source}\n[WAYFLESS URL]{wayfless_url} - IDP ERROR" else: pgsrc = driver.page_source @@ -299,11 +299,11 @@ def check_idp_response_selenium(sp,idp,test): # If meet <iframe> follow all iframes if ('<iframe' in driver.page_source): pwd_regexp = e_p.PASSWORDPATTERN - pwd_found = re.search(pwd_regexp,driver.page_source, re.I) + pwd_found = re.search(pwd_regexp,driver.page_source, re.IGNORECASE) if (not pwd_found): follow_all_nested_iframes(driver) - load_js = re.search(e_p.JAVASCRIPT, driver.page_source, re.I) + load_js = re.search(e_p.JAVASCRIPT, driver.page_source, re.IGNORECASE) if (load_js): driver.refresh() @@ -320,7 +320,7 @@ def check_idp_response_selenium(sp,idp,test): except TimeoutException as e: - metadata_not_found = re.search(e_p.METADATAPATTERN,driver.page_source, re.I) + metadata_not_found = re.search(e_p.METADATAPATTERN,driver.page_source, re.IGNORECASE) try: input_xpath = '//input[@type="password"]|//input[@type="Password"]|//input[@type="text"]|//input[@type="email"]|//input[@type="user"]|//input[@name="name"]'