Actions
Anomalie #24725
fermé[MEDONA] Erreur de détection automatique de format de SIP
Début:
21/04/2023
Echéance:
Tags RM:
2.9.X
Description
A réception d'un paquet contenant un manifest au format XML, si le client ne transmet pas le formalisme le système tente de le déterminer à partir de l'espace de nom XML.
Il se réfère pour cela à la configuration medona
packageSchemas
:
; Schema of message exchange
packageSchemas = "{
'seda' : {
'label' : 'SEDA 1.0',
'xmlNamespace' : 'fr:gouv:culture:archivesdefrance:seda:v1.0',
'phpNamespace' : 'seda',
'presenter' : 'seda/message'
},
'seda2' : {
'label' : 'SEDA 2.1',
'xmlNamespace' : 'fr:gouv:culture:archivesdefrance:seda:v2.0',
'phpNamespace' : 'seda2',
'presenter' : 'seda2/message'
}
}"
Premier problème: c'est l'espace de nom SEDA 2.0 qui est indiqué pour le SEDA 2.
Second problème : le code source recherche l'espace de nom en bouclant sur la liste des configuration et en testant la valeur via un accès objet (->
) alors que chaque schéma est défini sous la forme d'un tableau.
Code à corriger: medona/ArchiveTransfer::detectSchema
foreach ($this->packageSchemas as $name => $info) {
if (isset($info['xmlNamespace']) && $info['xmlNamespace'] == $messageNamespace) {
$schema = $name;
break;
}
}
Actions