Próbuję wykonać operację podpisywania z plikiem XML. W tym procesie korzystam z biblioteki xmlSec 1.5. Jeśli uruchomię kod w teście lokalnym, proces zakończy się pomyślnie. Jeśli jednak wdrożę kod podczas wojny w Jboss 7.1, moja zależność od xmlSec 1.5 zostanie zastąpiona przez Jboss jego zależnością od modułu "xmlsec-2.0.8.redhat-1", a proces podpisywania zawiedzie. Z petycji klienta mogę wykluczyć moduł xmlsec Jboss, ale nie mogę go użyć do podpisania. Problem polega więc na tym, jak określić, że dana wersja biblioteki ma być używana tylko w części kodu?

W tym przypadku ścieżka obu zależności jest taka sama: org.apache.santuario, więc nie mogę jej użyć do określenia biblioteki.

Próbuję użyć dostawcy do podpisywania, ale ponownie Jboss zastępuje mojego dostawcę zabezpieczeń xmlsec-1.5 dla swojego dostawcy zabezpieczeń xmlsec-2.0.8. Czy istnieje sposób na utworzenie dostawcy i dodanie go do zestawu dostawców Java w celu zastąpienia dostawcy Jboss?

0
tovarichML 16 grudzień 2019, 13:50

1 odpowiedź

Możesz wykluczyć dostarczoną przez JBossa zależność za pomocą pliku jboss-deployment-structure.xml, który musisz umieścić w katalogu WEB-INF swojej wojny. Musisz określić zależności wykluczenia, jak poniżej.

<jboss-deployment-structure>  
 <deployment>  
    <exclusions>  
        <module name="$LIBRARY_OR_MODULE_YOU_WANT_TO_EXCLUDE"/>  
    </exclusions>  
</deployment>  

Np. <module name="org.apache.santuario.xmlsec"/>

0
Pravin 31 grudzień 2019, 18:04