2014-12-19 2 views
0

Я хотел бы знать, как я могу извлечь утверждение потребительской URL из приведенных ниже файла метаданных с использованием Opensaml library.I использовал эту библиотеку и получил идентификатор объекта по кодуSAML 2.0 Security Single Sign On с помощью FilemetadataProvider

EntityDescriptor entityDescriptor = (EntityDescriptor) файловая системаMetadataProvider.getMetadata(); System.out.print (entityDescriptor.getEntityID());

Теперь мне нужно получить URL-адрес потребителя утверждения из файла метаданных Можете ли вы, пожалуйста, предложить мне фрагмент кода для его получения.

вот мой файл метаданных

<EntityDescriptor 
 
    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" 
 
    entityID="loadbalancer-9.siroe.com"> 
 
    <SPSSODescriptor 
 
     AuthnRequestsSigned="false" 
 
     WantAssertionsSigned="false" 
 
     protocolSupportEnumeration= 
 
      "urn:oasis:names:tc:SAML:2.0:protocol"> 
 
     <KeyDescriptor use="signing"> 
 
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
 
       <X509Data> 
 
        <X509Certificate> 
 
MIICYDCCAgqgAwIBAgICBoowDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI 
 
EwpDYWxpZm9ybmlhMRQwEgYDVQQHEwtTYW50YSBDbGFyYTEeMBwGA1UEChMVU3VuIE1pY3Jvc3lz 
 
dGVtcyBJbmMuMRowGAYDVQQLExFJZGVudGl0eSBTZXJ2aWNlczEcMBoGA1UEAxMTQ2VydGlmaWNh 
 
dGUgTWFuYWdlcjAeFw0wNjExMDIxOTExMzRaFw0xMDA3MjkxOTExMzRaMDcxEjAQBgNVBAoTCXNp 
 
cm9lLmNvbTEhMB8GA1UEAxMYbG9hZGJhbGFuY2VyLTkuc2lyb2UuY29tMIGfMA0GCSqGSIb3DQEB 
 
AQUAA4GNADCBiQKBgQCjOwa5qoaUuVnknqf5pdgAJSEoWlvx/jnUYbkSDpXLzraEiy2UhvwpoBgB 
 
EeTSUaPPBvboCItchakPI6Z/aFdH3Wmjuij9XD8r1C+q//7sUO0IGn0ORycddHhoo0aSdnnxGf9V 
 
tREaqKm9dJ7Yn7kQHjo2eryMgYxtr/Z5Il5F+wIDAQABo2AwXjARBglghkgBhvhCAQEEBAMCBkAw 
 
DgYDVR0PAQH/BAQDAgTwMB8GA1UdIwQYMBaAFDugITflTCfsWyNLTXDl7cMDUKuuMBgGA1UdEQQR 
 
MA+BDW1hbGxhQHN1bi5jb20wDQYJKoZIhvcNAQEEBQADQQB/6DOB6sRqCZu2OenM9eQR0gube85e 
 
nTTxU4a7x1naFxzYXK1iQ1vMARKMjDb19QEJIEJKZlDK4uS7yMlf1nFS 
 
        </X509Certificate> 
 
       </X509Data> 
 
      </KeyInfo> 
 
     </KeyDescriptor> 
 
     <KeyDescriptor use="encryption"> 
 
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
 
       <X509Data> 
 
        <X509Certificate> 
 
MIICTDCCAfagAwIBAgICBo8wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI 
 
EwpDYWxpZm9ybmlhMRQwEgYDVQQHEwtTYW50YSBDbGFyYTEeMBwGA1UEChMVU3VuIE1pY3Jvc3lz 
 
dGVtcyBJbmMuMRowGAYDVQQLExFJZGVudGl0eSBTZXJ2aWNlczEcMBoGA1UEAxMTQ2VydGlmaWNh 
 
dGUgTWFuYWdlcjAeFw0wNjExMDcyMzU2MTdaFw0xMDA4MDMyMzU2MTdaMCMxITAfBgNVBAMTGGxv 
 
YWRiYWxhbmNlci05LnNpcm9lLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAw574iRU6 
 
HsSO4LXW/OGTXyfsbGv6XRVOoy3v+J1pZ51KKejcDjDJXNkKGn3/356AwIaqbcymWd59T0zSqYfR 
 
Hn+45uyjYxRBmVJseLpVnOXLub9jsjULfGx0yjH4w+KsZSZCXatoCHbj/RJtkzuZY6V9to/hkH3S 
 
InQB4a3UAgMCAwEAAaNgMF4wEQYJYIZIAYb4QgEBBAQDAgZAMA4GA1UdDwEB/wQEAwIE8DAfBgNV 
 
HSMEGDAWgBQ7oCE35Uwn7FsjS01w5e3DA1CrrjAYBgNVHREEETAPgQ1tYWxsYUBzdW4uY29tMA0G 
 
CSqGSIb3DQEBBAUAA0EAMlbfBg/ff0Xkv4DOR5LEqmfTZKqgdlD81cXynfzlF7XfnOqI6hPIA90I 
 
x5Ql0ejivIJAYcMGUyA+/YwJg2FGoA== 
 
        </X509Certificate> 
 
       </X509Data> 
 
      </KeyInfo> 
 
      <EncryptionMethod Algorithm= 
 
       "https://www.w3.org/2001/04/xmlenc#aes128-cbc"> 
 
       <KeySize xmlns="https://www.w3.org/2001/04/xmlenc#">128</KeySize> 
 
      </EncryptionMethod> 
 
     </KeyDescriptor> 
 
     <SingleLogoutService 
 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" 
 
      Location="https://LoadBalancer-9.siroe.com:3443/federation/ 
 
      SPSloRedirect/metaAlias/sp" 
 
      ResponseLocation="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/SPSloRedirect/metaAlias/sp"/> 
 
     <SingleLogoutService 
 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" 
 
      Location="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/SPSloSoap/metaAlias/sp"/> 
 
     <ManageNameIDService 
 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" 
 
      Location="https://LoadBalancer-9.siroe.com:3443/federation/ 
 
      SPMniRedirect/metaAlias/sp" 
 
      ResponseLocation="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/SPMniRedirect/metaAlias/sp"/> 
 
     <ManageNameIDService 
 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" 
 
      Location="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/SPMniSoap/metaAlias/sp" 
 
      ResponseLocation="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/SPMniSoap/metaAlias/sp"/> 
 
     <NameIDFormat> 
 
      urn:oasis:names:tc:SAML:2.0:nameid-format:persistent 
 
     </NameIDFormat> 
 
     <NameIDFormat> 
 
      urn:oasis:names:tc:SAML:2.0:nameid-format:transient 
 
     </NameIDFormat> 
 
     <AssertionConsumerService 
 
      isDefault="true" 
 
      index="0" 
 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" 
 
      Location="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/Consumer/metaAlias/sp"/> 
 
     <AssertionConsumerService 
 
      index="1" 
 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
 
      Location="https://LoadBalancer-9.siroe.com:3443/ 
 
      federation/Consumer/metaAlias/sp"/> 
 
    </SPSSODescriptor> 
 
\t <test>true</test> 
 
\t <issuer>www.tryyujh.com</issuer> 
 
</EntityDescriptor>

ответ

0
for (AssertionConsumerService acs : entityDescriptor.getIDPSSODescriptor(SAMLConstants.SAML20P_NS) 
     .getAssertionConsumerServices()) { 
     assertionConsumerServiceURL = ars.getLocation(); 
} 

У меня есть еще примеры о том, как использовать OpenSAML и метаданные my blogg и в моей книге, A Guide to OpenSAML.

+0

Я попытался с помощью этого метода он бросает исключение пустой указатель exception.for (AssertionConsumerService ОКС: entityDescriptor.getSPSSODescriptor (SAMLConstants.SAML20P_NS) \t \t \t \t .getAssertionConsumerServices()) { \t \t \t \t assertionConsumerServiceURL = ОКС .getLocation(); \t \t \t \t} –