Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed an error when transform node is missing. #51

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ketoketo
Copy link

@ketoketo ketoketo commented Nov 26, 2021

Fixed the problem so that no error occurs even if the transform node is missing.
When the XML style is fixed, it is not possible to remove unnecessary transform tags, so we had to deal with it programmatically.
I have prepared a sample xml for testing, so please check it out!

https://github.com/benoist/xmldsig/pull/51/files#diff-3cda4c5dd249c588ecc1d75d1a3936ba3b376294492fe083b33a6c883d4f410dR26-R32

@salami96
Copy link

salami96 commented Feb 4, 2023

This solution closes #55

@Guistoff081
Copy link

Hey @benoist, can you check this out? This solves an error which I have been stuck for a few weeks, would be nice to have this merged

@alanBAguero
Copy link

@Guistoff081 in the meantime you can monkey patch this module. If you're on a rails app, you can create a file under config/initializers:

require 'xmldsig/transforms/enveloped_signature'

module Xmldsig
  class Transforms < Array
    class EnvelopedSignature < Transform
      def transform
        signatures = node.xpath("descendant::ds:Signature", Xmldsig::NAMESPACES).
          sort { |left, right| left.ancestors.size <=> right.ancestors.size }

        signatures.first&.remove
        node
      end
    end
  end
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants