Code Monkey home page Code Monkey logo

java-saml's People

Contributors

aripaawun avatar benmccann avatar bzvestey avatar cgdt avatar chandra158 avatar chenrui333 avatar dependabot[bot] avatar garypwhite avatar gkhaburzaniya-onelogin avatar iguanajazz avatar kemalturksonmez avatar luozhouyang avatar magott avatar maruta-bis5 avatar mauromol avatar mbologna avatar miszobi avatar mwatanabe avatar not-ol-github avatar petenattress avatar pitbulk avatar raosev avatar robertbuttigieg avatar rushimusmaximus avatar sdsolle avatar shoe54 avatar snyk-bot avatar tebruno99 avatar thepetrov avatar tonedef71 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

java-saml's Issues

com.onelogin.saml.Utils.validateXML fails with NullPointerException on Windows

The following exception is thrown by consume.jsp when processing a SAML response.

java.lang.NullPointerException
at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)
at com.onelogin.saml.Utils.validateXML(Utils.java:244)
at com.onelogin.saml.Utils.validateXML(Utils.java:223)
at com.onelogin.saml.Response.isValid(Response.java:126)
at org.apache.jsp.sso.acs_jsp._jspService(acs_jsp.java:105)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
....

Details of my environment:
Windows 7 / Java 1.8.0_51

Preliminary debugging reveals that the problem is with com.onelogin.saml.Utils.validateXML(Utils.java:239) which constructs
String schemaFullPath = "schemas" + File.separatorChar + schemaName;

On Windows File.separatorChar is a backslash, which leads to failure in:
URL schemaFile = classLoader.getResource(schemaFullPath);

Using a forward slash (/) separator seems to fix the problem.

License?

There does not appear to be a license associated with the Java code

java-saml core depends on servlet-api, making it less reusable

In v1 java-saml takes care of generating SSO URLs and validating SAMLResponses and leaves it up to the caller to perform the necessary redirects. This makes the library simple and reusable because it has a single responsibility (how to build SSO requests and understand the responses) and does not bring along many other dependencies.

Currently in the v2 branch most classes are now dependent on accessing the HttpServletRequest and HttpServletResponse directly, which means they now have an additional responsibilities like performing redirects, invalidating sessions, etc. The Java ecosystem is much more than just Servlet containers these days but adding this dependency excludes anyone that is not running in a traditional Servlet environment.

To give an example, I have used v1 in a Scala application that does not use a Servlet container and I chose to use the OneLogin toolkit precisely because it did not have unnecessary dependencies (otherwise I would've used Spring Security SAML or OpenSAML directly). I can not use v2 at all currently because I don't have a HttpServletRequest available to pass to the toolkit.

I propose to remove the servlet dependency from the core module, which should only know how to build SSO/SLO requests (independently of the tech stack in use) and understand the responses. At the same time I would add a java-saml-servlet module with a set of "controller" classes that use the core module and call the servlet APIs to perform redirect, etc. By separating the responsibilities of the two modules, the unit tests for each one will become simpler as well.

Thoughts?

It's possible to add a fake Response signature to a SAML Response, that won't be validated, and will be considered valid with settings.wantMessagesSigned set

A SAML Response with the structure:

samlp:Response ID='1'
  saml:Assertion ID='2'
    ds:Signature ref='#2'

can be modified to have a fake Signature element for the Response:

samlp:Response ID='1'
  samlp:Extensions
    saml:Response ID='fake'
      ds:Signature ref='#fake' // not verified, so can have any SignatureValue
  saml:Assertion ID='2'
    ds:Signature ref='#2'

Such a message will be considered valid even when settings.wantMessagesSigned is set, and the spoofed Response signature will not be verified.

The Assertion is still validated, and needs to be properly signed (messages without both the Response signature and the Assertion signature will be rejected), but potentially this allows the attacker to change some non-Assertion values in the message.

500 error

I have configured the toolkit (deployed on Tomcat) to consume a SAML assertion generated by the CA SiteMInder tool. However, the issue is that though the see on the catalina.log that the SAML is being parsed & displayed in the user readable format with the user details, it errors out in the browser with servlet exceptions on consume.jsp.

Please help

Create build file for project

Right now it's difficult for me to build the project such that it outputs a jar that I can drop into my other projects. It's also difficult to tell what the dependencies are that I will need (I found that it compiled successfully with just commons-codec:commons-codec:1.9)

I can submit a pull request for it. Does Gradle work for you? Or Maven?

Issues with PowerMock

This toolkit uses PowerMock in order to test its methods.

There are some problems with PowerMock described in the documentation.

We should find a way to fix those problems. Right now it seems is not possible to execute test on Java8 (Java7 requires a extra command to disable the bytecode verification.

SAML responses with an incomplete bearer SubjectConfirmationData are not rejected

As per SAML profiles spec

line 629 (4.1.4.2 Usage):

At lease one bearer <SubjectConfirmation> element MUST contain a
<SubjectConfirmationData> element that itself MUST contain a Recipient attribute containing
the service provider's assertion consumer service URL and a NotOnOrAfter attribute that limits the
window during which the assertion can be confirmed by the relying party.

and line 657 (4.1.4.3 Message Processing Rules):

Regardless of the SAML binding used, the service provider MUST do the following:
โ€ข Verify any signatures present on the assertion(s) or the response
โ€ข Verify that the Recipient attribute in the bearer <SubjectConfirmationData> matches
the assertion consumer service URL to which the <Response> or artifact was delivered
โ€ข Verify that the NotOnOrAfter attribute in the bearer <SubjectConfirmationData> has not
passed, subject to allowable clock skew between the providers

However currently 2.0.0 considers an assertion with a bearer SubjectConfirmationData without the Recipient or NotOnOrAfter attributes as valid:

<samlp:Response Version="2.0">
...
<saml:Subject>
...
    <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
        <saml:SubjectConfirmationData/>
    </saml:SubjectConfirmation>
</saml:Subject>
</saml:Assertion>
</samlp:Response>

Asserting request URL and Destination attribute of SAML response fails when working behind load balancer with SSL offload

When the SP consumer URL uses SSL, the client is being redirected to the https endpoint matching the Destination property. Reading the request URL form the servlet request on a server behind a load balancer that does SSL offload the URLs do not match as the request URL is perceived as http not https.
Could this check be configurable to either disable only this check or to choose to disregard the protocol in the comparison?

Allow retrieving the processed Assertion ID and NotOnOrAfter value

As per SAML profiles spec, section 4.1.4.5:

The service provider MUST ensure that bearer assertions are not replayed, by maintaining the set of used
ID values for the length of time for which the assertion would be considered valid based on the
NotOnOrAfter attribute in the <SubjectConfirmationData>.

To allow the caller to do that, we should allow retrieving the Assertion ID value and the NotOnOrAfter values of the SubjectConfirmationData nodes.

Missing deflation

The sample will never work because redirect types need to be deflated before they are base64 and url encoded.

Here's an example of how to deflate the bytes before running them through the.

// Compress the bytes       
        ByteArrayOutputStream deflatedBytes = new ByteArrayOutputStream();
        Deflater deflater = new Deflater(Deflater.DEFLATED, true);
        DeflaterOutputStream deflaterStream = new DeflaterOutputStream(deflatedBytes, deflater);
        deflaterStream.write(baos.toByteArray());
        deflaterStream.finish();

now you can pass deflated bytes to base64 encoding and then url encoding.

NameIdFormat is hardcoded in AuthRequest.java

The NameIdFormat is hardocded currently on line 66 in AuthRequest.java:
writer.writeAttribute("Format", "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified");
If one wants to change it, its necessary to inherit this class and overwrite the method.

Description states support for Java6

I was looking at upgrading from the 1.1.2 since I saw the following in the description:

"This is version 2.0.0, compatible with java6 / java7 / java8"

But after importing the projects into eclipse I saw an error that java.util.Objects was not found due to it being part of java7+.

Is there indeed support for java6 or does this warrant a correction in the description?

Invalid date format in authentication request

The current date format in AuthRequest is yyyy-MM-dd'T'H:mm:ss'Z but :

  • There is an H missing
  • This will not generate the right date for servers that are not on the UTC time

Instead I would use this to configure the date format :

SimpleDateFormat simpleDf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
simpleDf.setTimeZone(TimeZone.getTimeZone("GMT"));

Missing dependency information

How is this project supposed to be setup? I see no project setup files. One would expect a pom.xml or build.gradle or at least build.xml...

Handle encrypted responses

Currently this library won't work with encrypted responses.

Here's some sample code to decrypt SAML responses.

public String getDecryptedAssertion(String privateKey, String encryptedSymKey, String cipherText, String encMethod) throws GeneralSecurityException{

        //Load in the private key
        PrivateKey key = Certificate.loadPrivateKey(privateKey);

        Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding");

        //Decrypt the key
        cipher.init(Cipher.DECRYPT_MODE, key); //privKey stored earlier
        byte[] symKey = cipher.doFinal( Base64.decodeBase64( encryptedSymKey ) );

        //Get the cipher'd  data base64 decoded
        byte[] cipherBytes = Base64.decodeBase64(cipherText);

        //Get the IV value, which is the first 16 bytes of the cipherBytes
        AlgorithmParameterSpec iv = new IvParameterSpec(cipherBytes, 0, 16);

        //Create a secret key based on symKey
        SecretKeySpec secretSauce = new SecretKeySpec(symKey, "AES");

        String cipherMethod = "";

        //TODO: this should be a switch statement or an enum but Java 1.6 doesn't support string switches
        String[] AES_CBC_PKCS5Padding = {"http://www.w3.org/2001/04/xmlenc#aes128-cbc",
            "http://www.w3.org/2001/04/xmlenc#aes192-cbc",
            "http://www.w3.org/2001/04/xmlenc#aes256-cbc",
            "http://xmlns.webpki.org/keygen2/1.0#algorithm.aes.cbc.pkcs5"};

        String[] AES_CBC_NoPadding = {"internal:AES/CBC/NoPadding"};

        String[] AESWrap = {"http://www.w3.org/2001/04/xmlenc#kw-aes128",
                "http://www.w3.org/2001/04/xmlenc#kw-aes256"};

        String[] AES_ECB_PKCS5Padding = {"http://xmlns.webpki.org/keygen2/1.0#algorithm.aes.ecb.pkcs5"};

        String[] AES_ECB_NoPadding = {"http://xmlns.webpki.org/keygen2/1.0#algorithm.aes.ecb.nopad"};

        if(java.util.Arrays.asList(AES_CBC_PKCS5Padding).indexOf(encMethod) >= 0 ){         
            cipherMethod = "AES/CBC/PKCS5Padding";          
        }else if(java.util.Arrays.asList(AES_CBC_NoPadding).indexOf(encMethod) >= 0){
            cipherMethod = "AES/CBC/NoPadding"; 
        }else if(java.util.Arrays.asList(AESWrap).indexOf(encMethod) >= 0){
            cipherMethod = "AESWrap";   
        }else if(java.util.Arrays.asList(AES_ECB_PKCS5Padding).indexOf(encMethod) >= 0){
            cipherMethod = "AES/ECB/PKCS5Padding";  
        }else if(java.util.Arrays.asList(AES_ECB_NoPadding).indexOf(encMethod) >= 0){
            cipherMethod = "AES/ECB/NoPadding"; 
        }else{      
            cipherMethod = "AES/CBC/PKCS5Padding";  
        }

        //Now we have all the ingredients to decrypt
        cipher = Cipher.getInstance( cipherMethod );
        cipher.init(Cipher.DECRYPT_MODE, secretSauce, iv);

        //Do the decryption
        byte[] decrypedBytes = cipher.doFinal(cipherBytes);

        //Strip off the the first 16 bytes because those are the IV
        return new String( decrypedBytes, 16, decrypedBytes.length-16 );
    }

2.0 branch status

Hi,

What's the status of the 2.0 branch? It seems that many issues are fixed on that branch, yet still there seems to be no official release, and the README there says not to use it in production.

An update about the status would be appreciated.
Thanks!

Documentation for Integrating with OneLogin SAML Test

Thanks for making java-saml available.

I'd like to learn how to use this library by connecting to the OneLogin SAML Test App.

Is there documentation on how to configure the basic web app in the java-saml repo with specifics for the OneLogin SAML Test App?

Thanks for any help on this.

Documentation (v2.0.0)

We need to add documentation to the project before release it at Maven.

There are already documentation that already exists at the PHP or Python toolkits.that we can follow as guide.

We need to describe the project scheme, how the settings works, the methods of the main auth class and describe the examples.

In the future we can add examples of how integrate this toolkit on the different Java frameworks.

Allow configuring Saml2Settings programatically

In 2.0 Saml2Settings can only be fully customized using a properties file (because some of the setXXX() methods are protected).

Sometimes it's useful to be able to customize these programatically (this was possible in 1.0).

Remove AuthnContextClassRef

The AuthnContextClassRef class doesn't do much but causes many other platforms to stop working. It should be removed or made optional.

jacoco // coveralls not working.

It seems that on java 1.8 jacoco // coveralls fail.

mvn -v
Apache Maven 3.2.5
Java version: 1.8.0_91, vendor: Oracle Corporation

mvn clean test jacoco:report coveralls:report

No plugin found for prefix 'jacoco' in the current project and in the plugin groups
[org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
[local (/home/xxx/.m2/repository), central (https://repo.maven.apache.org/maven2)]

No plugin found for prefix 'coveralls' in the current project and in the plugin groups
[org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
[local (/home/xxx/.m2/repository), central (https://repo.maven.apache.org/maven2)]

SAML responses with a InResponseTo attribute not rejected when requestId not passed to validate()

When validating a SAML response (using SamlResponse#isValid(java.lang.String)), responses that contain a InResponseTo attribute (either as an attribute of the Response, or the SubjectConfirmationData) are not rejected, even when no requestId was specified as an argument to isValid

So a message like

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="pfx1ff1da4a-010e-428c-16eb-75f31f16567a" Version="2.0" IssueInstant="2014-02-19T01:37:01Z" Destination="http://localhost:8080/java-saml-jspsample/acs.jsp" InResponseTo="ONELOGIN_5fe9d6e499b2f0913206aab3f7191729049bb807">
...
   <saml:Assertion>
...
      <saml:Subject>
         <saml:NameID SPNameQualifier="http://localhost:8080/java-saml-jspsample/metadata.jsp" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">492882615acf31c8096b627245d76ae53036c090</saml:NameID>
         <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
            <saml:SubjectConfirmationData InResponseTo="ONELOGIN_5fe9d6e499b2f0913206aab3f7191729049bb807" />
         </saml:SubjectConfirmation>
      </saml:Subject>
...
   </saml:Assertion>
</samlp:Response>

will be accepted by SamlResponse#isValid(null). The SAML Core spec (line 1605), and the SAML profiles spec (line 634) say that if the InResponseAttribute is present it MUST match the value of the corresponding request's ID attribute. Further section 4.1.5 of the SAML profiles spec says that an unsolicited response (i.e. IdP initiated), MUST NOT contain a InResposeTo attribute (line 694), so I believe such messages should be rejected as invalid.

Allow retrieving the id of generated AuthnRequests

Currently the Auth.login methods return nothing, not allowing the caller to retrieve the id of the generated AuthnRequest, to be used when validating the response (com.onelogin.saml2.Auth#processResponse(java.lang.String))

Be able to provide a NameIDFormat to LogoutRequest

Be able to provide a NameIDFormat to LogoutRequest, not only NameiD value

We can't assume that the NameID format stored on the settings is the same that the one the IdP uses.
Example: set unespecified on settings and get an EmailAddress format.

We should be able also to retrieve from an auth object the NameID format., right now only retrieves
the value. SAMLResponse getNameIdData method contains the format info.

v2.0.0 Test failures

After checking out v2.0.0, I receive the following. This in on OSX 10.11.6 and Java 8.

$ mvn install -DcreateChecksum=true
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.onelogin:java-saml-core:jar:2.0.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ com.onelogin:java-saml-core:[unknown-version], /Users/tcaraballo/src/java-saml/core/pom.xml, line 90, column 12
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] OneLogin java-saml Toolkit Project
[INFO] OneLogin java-saml Toolkit Core
[INFO] OneLogin java-saml Toolkit
[INFO] OneLogin java-saml Toolkit Samples
[INFO] OneLogin java-saml Toolkit Sample Webapp
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OneLogin java-saml Toolkit Project 2.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-versions) @ java-saml-toolkit ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ java-saml-toolkit ---
[INFO] Installing /Users/tcaraballo/src/java-saml/pom.xml to /Users/tcaraballo/.m2/repository/com/onelogin/java-saml-toolkit/2.0.0-SNAPSHOT/java-saml-toolkit-2.0.0-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OneLogin java-saml Toolkit Core 2.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-versions) @ java-saml-core ---
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.7.201606060606:prepare-agent (prepare-agent) @ java-saml-core ---
[INFO] jacoco.agent.argLine set to -javaagent:/Users/tcaraballo/.m2/repository/org/jacoco/org.jacoco.agent/0.7.7.201606060606/org.jacoco.agent-0.7.7.201606060606-runtime.jar=destfile=/Users/tcaraballo/src/java-saml/core/target/jacoco.exec
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ java-saml-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 12 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ java-saml-core ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 21 source files to /Users/tcaraballo/src/java-saml/core/target/classes
[INFO] /Users/tcaraballo/src/java-saml/core/src/main/java/com/onelogin/saml2/authn/SamlResponse.java: /Users/tcaraballo/src/java-saml/core/src/main/java/com/onelogin/saml2/authn/SamlResponse.java uses or overrides a deprecated API.
[INFO] /Users/tcaraballo/src/java-saml/core/src/main/java/com/onelogin/saml2/authn/SamlResponse.java: Recompile with -Xlint:deprecation for details.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ java-saml-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 145 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:testCompile (default-testCompile) @ java-saml-core ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 12 source files to /Users/tcaraballo/src/java-saml/core/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12:test (default-test) @ java-saml-core ---
[INFO] Surefire report directory: /Users/tcaraballo/src/java-saml/core/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
objc[19732]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
Running com.onelogin.saml2.http.HttpRequestTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.182 sec
Running com.onelogin.saml2.test.authn.AuthnRequestTest
11:19:57,214 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
11:19:57,214 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:/Users/tcaraballo/src/java-saml/core/target/test-classes/logback-test.xml]
11:19:57,404 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
11:19:57,408 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
11:19:57,427 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
11:19:57,572 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
11:19:57,572 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
11:19:57,572 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
11:19:57,573 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.base22] to TRACE
11:19:57,573 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
11:19:57,573 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
11:19:57,574 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
11:19:57,577 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6145b81e - Registering current configuration as safe fallback point

Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.852 sec
Running com.onelogin.saml2.test.authn.AuthnResponseTest
11:19:58.073 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:19:58.284 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Invalid issuer in the Assertion/Response
11:19:58.295 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:19:58.357 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Invalid issuer in the Assertion/Response
11:19:58.443 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:19:58.490 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The attributes have expired, based on the SessionNotOnOrAfter of the AttributeStatement of this Response
11:19:58.501 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:19:58.561 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response
11:19:58.800 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Response has an InResponseTo attribute: ONELOGIN_5fe9d6e499b2f0913206aab3f7191729049bb807 while no InResponseTo was expected
11:20:01.833 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response must contain 1 Assertion.
11:20:01.837 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response must contain 1 Assertion.
11:20:01.946 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The InResponseTo of the Response: null, does not match the ID of the AuthNRequest sent by the SP: expected-id
11:20:01.993 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.027 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData doesn't match a valid Recipient
11:20:02.032 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.059 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The response was received at / instead of http://localhost:8080/java-saml-jspsample/acs.jsp
11:20:02.090 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.098 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.125 [main] ERROR c.onelogin.saml2.authn.SamlResponse - http://localhost:8080/java-saml-jspsample/metadata.jsp is not a valid audience for this Response
[Fatal Error] :1:1: Content is not allowed in prolog.
11:20:02.160 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Invalid Signature Element {urn:oasis:names:tc:SAML:2.0:assertion}Response SAML Response rejected
11:20:02.168 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Missing ID attribute on SAML Response.
11:20:02.460 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Assertion of the Response is not signed and the SP requires it
11:20:02.634 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Assertion must include an AuthnStatement element
11:20:02.691 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData has an invalid InResponseTo value
11:20:02.723 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response must contain 1 Assertion.
11:20:02.754 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.778 [main] ERROR c.onelogin.saml2.authn.SamlResponse - There is an EncryptedAttribute in the Response and this SP not support them
11:20:02.792 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.795 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.802 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.807 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.831 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.861 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Assertion of the Response is not signed and the SP requires it
11:20:02.890 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Message of the Response is not signed and the SP requires it
11:20:02.919 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Assertion of the Response is not signed and the SP requires it
11:20:02.926 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.929 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.933 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.944 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:02.980 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:03.036 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The assertion of the Response is not encrypted and the SP requires it
11:20:03.066 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The NameID of the Response is not encrypted and the SP requires it
11:20:03.084 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The assertion of the Response is not encrypted and the SP requires it
11:20:03.347 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The InResponseTo of the Response: ONELOGIN_5fe9d6e499b2f0913206aab3f7191729049bb807, does not match the ID of the AuthNRequest sent by the SP: invalidRequestId
11:20:03.507 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Message of the Response is not signed and the SP requires it
11:20:03.533 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Timing issues (please check your clock settings)
11:20:03.612 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:03.635 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData is not yet valid
11:20:03.656 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Unsupported SAML Version.
11:20:03.676 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Signature validation failed. SAML Response rejected
11:20:03.883 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The Assertion must include a Conditions element
11:20:03.920 [main] ERROR c.onelogin.saml2.authn.SamlResponse - http://localhost:8080/java-saml-jspsample/metadata.jsp is not a valid audience for this Response
11:20:03.941 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-complex-type.2.4.a: Invalid content was found starting with element 'saml:Issuer'. One of '{"urn:oasis:names:tc:SAML:2.0:protocol":Extensions, "urn:oasis:names:tc:SAML:2.0:protocol":Status}' is expected.]
11:20:03.943 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Invalid SAML Response. Not match the saml-schema-protocol-2.0.xsd
11:20:03.970 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The response has an empty Destination value
11:20:03.993 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:04.019 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:04.103 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:04.119 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData has an invalid InResponseTo value
11:20:04.172 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Found an invalid Signed Element. SAML Response rejected
11:20:04.177 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response must contain 1 Assertion.
11:20:04.184 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response must contain 1 Assertion.
11:20:04.232 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData doesn't contain a NotOnOrAfter attribute
11:20:04.238 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:04.259 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response
11:20:04.273 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response must contain 1 Assertion.
11:20:04.322 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response:
[0] SubjectConfirmationData doesn't contain a NotOnOrAfter attribute,
[1] SubjectConfirmationData doesn't contain a Recipient,
[2] SubjectConfirmationData is no longer valid
11:20:04.418 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The URL of the current host was not established
11:20:04.418 [main] ERROR c.onelogin.saml2.authn.SamlResponse - The URL of the current host was not established
11:20:04.469 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData doesn't contain a Recipient
11:20:04.575 [main] ERROR c.o.saml2.settings.SettingsBuilder - Error loading certificate from properties.
java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor
	at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:198) ~[na:1.8.0_45]
	at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:100) ~[na:1.8.0_45]
	at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.loadCert(Util.java:447) ~[classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadCertificateFromProp(SettingsBuilder.java:476) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadIdpSetting(SettingsBuilder.java:210) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.build(SettingsBuilder.java:171) [classes/:na]
	at com.onelogin.saml2.test.authn.AuthnResponseTest.testIsInValidCert(AuthnResponseTest.java:1635) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: java.io.IOException: extra data given to DerValue constructor
	at sun.security.util.DerValue.init(DerValue.java:384) ~[na:1.8.0_45]
	at sun.security.util.DerValue.<init>(DerValue.java:294) ~[na:1.8.0_45]
	at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:195) ~[na:1.8.0_45]
	... 36 common frames omitted
11:20:04.582 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Signature validation failed. SAML Response rejected
11:20:04.606 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:04.613 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Duplicated ID. SAML Response rejected
11:20:04.620 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Duplicated ID. SAML Response rejected
11:20:04.626 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Duplicated ID. SAML Response rejected
11:20:04.630 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Invalid Signature Element {urn:oasis:names:tc:SAML:2.0:assertion}Subject SAML Response rejected
11:20:04.635 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Invalid Signature Element {urn:oasis:names:tc:SAML:2.0:assertion}Subject SAML Response rejected
11:20:04.640 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Found an invalid Signed Element. SAML Response rejected
11:20:04.644 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Signed Element must contain an ID. SAML Response rejected
11:20:04.649 [main] ERROR c.onelogin.saml2.authn.SamlResponse - Found an invalid Signed Element. SAML Response rejected
11:20:04.693 [main] ERROR c.onelogin.saml2.authn.SamlResponse - No Signature found. SAML Response rejected
11:20:04.728 [main] ERROR c.onelogin.saml2.authn.SamlResponse - A valid SubjectConfirmation was not found on this Response: SubjectConfirmationData is no longer valid
11:20:04.840 [main] ERROR c.onelogin.saml2.authn.SamlResponse - SAML Response is not loaded
Tests run: 94, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 6.898 sec <<< FAILURE!
Running com.onelogin.saml2.test.logout.LogoutRequestTest
11:20:04.889 [main] ERROR c.o.saml2.logout.LogoutRequest - The LogoutRequest was received at / instead of http://stuff.com/endpoints/endpoints/sls.php
11:20:04.897 [main] ERROR c.o.saml2.logout.LogoutRequest - The HttpRequest of the current host was not established
11:20:04.900 [main] ERROR c.o.saml2.logout.LogoutRequest - The URL of the current host was not established
[Fatal Error] :1:1: Premature end of file.
11:20:05.062 [main] ERROR c.o.saml2.logout.LogoutRequest - Timing issues (please check your clock settings)
11:20:05.102 [main] ERROR c.o.saml2.logout.LogoutRequest - The LogoutRequest was received at / instead of http://stuff.com/endpoints/endpoints/sls.php
11:20:05.149 [main] ERROR c.o.saml2.logout.LogoutRequest - Invalid issuer in the Logout Request
11:20:05.204 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-complex-type.2.4.a: Invalid content was found starting with element 'saml:Issuer'. One of '{"http://www.w3.org/2000/09/xmldsig#":Signature, "urn:oasis:names:tc:SAML:2.0:protocol":Extensions, "urn:oasis:names:tc:SAML:2.0:assertion":BaseID, "urn:oasis:names:tc:SAML:2.0:assertion":NameID, "urn:oasis:names:tc:SAML:2.0:assertion":EncryptedID}' is expected.]
11:20:05.205 [main] ERROR c.o.saml2.logout.LogoutRequest - Invalid SAML Logout Request. Not match the saml-schema-protocol-2.0.xsd
11:20:05.317 [main] ERROR c.o.saml2.logout.LogoutRequest - Signature validation failed. Logout Request rejected
11:20:05.339 [main] ERROR c.o.saml2.logout.LogoutRequest - The Message of the Logout Request is not signed and the SP requires it
11:20:05.359 [main] ERROR c.o.saml2.logout.LogoutRequest - In order to validate the sign on the Logout Request, the x509cert of the IdP is required
11:20:05.385 [main] ERROR c.o.saml2.logout.LogoutRequest - The LogoutRequest was received at / instead of http://stuff.com/endpoints/endpoints/sls.php
[Fatal Error] :1:1: Premature end of file.
11:20:05.420 [main] ERROR c.o.saml2.logout.LogoutRequest - SAML Logout Request is not loaded
Tests run: 24, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.575 sec
Running com.onelogin.saml2.test.logout.LogoutResponseTest
11:20:05.453 [main] ERROR c.o.saml2.logout.LogoutResponse - Invalid issuer in the Logout Response
11:20:05.472 [main] ERROR c.o.saml2.logout.LogoutResponse - The LogoutResponse was received at / instead of http://stuff.com/endpoints/endpoints/sls.php
11:20:05.476 [main] ERROR c.o.saml2.logout.LogoutResponse - SAML Logout Response is not loaded
11:20:05.496 [main] ERROR c.o.saml2.logout.LogoutResponse - The LogoutResponse was received at / instead of http://stuff.com/endpoints/endpoints/sls.php
11:20:05.545 [main] ERROR c.o.saml2.logout.LogoutResponse - The InResponseTo of the Logout Response: ONELOGIN_21584ccdfaca36a145ae990442dcd96bfe60151e, does not match the ID of the Logout request sent by the SP:: invalid_request_id
11:20:05.569 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-complex-type.2.4.a: Invalid content was found starting with element 'saml:Issuer'. One of '{"http://www.w3.org/2000/09/xmldsig#":Signature, "urn:oasis:names:tc:SAML:2.0:protocol":Extensions, "urn:oasis:names:tc:SAML:2.0:protocol":Status}' is expected.]
11:20:05.570 [main] ERROR c.o.saml2.logout.LogoutResponse - Invalid SAML Logout Response. Not match the saml-schema-protocol-2.0.xsd
11:20:05.577 [main] ERROR c.o.saml2.logout.LogoutResponse - SAML Logout Response is not loaded
11:20:05.577 [main] ERROR c.o.saml2.logout.LogoutResponse - SAML Logout Response is not loaded
11:20:05.587 [main] ERROR c.o.saml2.logout.LogoutResponse - SAML Logout Response is not loaded
11:20:05.610 [main] ERROR c.o.saml2.logout.LogoutResponse - Signature validation failed. Logout Response rejected
11:20:05.629 [main] ERROR c.o.saml2.logout.LogoutResponse - The Message of the Logout Response is not signed and the SP requires it
11:20:05.645 [main] ERROR c.o.saml2.logout.LogoutResponse - In order to validate the sign on the Logout Response, the x509cert of the IdP is required
11:20:05.661 [main] ERROR c.o.saml2.logout.LogoutResponse - The LogoutResponse was received at / instead of http://stuff.com/endpoints/endpoints/sls.php
Tests run: 14, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.261 sec
Running com.onelogin.saml2.test.model.ContactTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec
Running com.onelogin.saml2.test.model.OrganizationTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec
Running com.onelogin.saml2.test.model.SamlResponseStatusTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec
Running com.onelogin.saml2.test.settings.MetadataTest
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.075 sec
Running com.onelogin.saml2.test.settings.Saml2SettingsTest
11:20:05.909 [main] ERROR c.o.saml2.settings.SettingsBuilder - Error loading certificate from properties.
java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor
	at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:198) ~[na:1.8.0_45]
	at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:100) ~[na:1.8.0_45]
	at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.loadCert(Util.java:447) ~[classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadCertificateFromProp(SettingsBuilder.java:476) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadIdpSetting(SettingsBuilder.java:210) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.build(SettingsBuilder.java:171) [classes/:na]
	at com.onelogin.saml2.test.settings.Saml2SettingsTest.testCheckSPSettingsAllErrors(Saml2SettingsTest.java:107) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: java.io.IOException: extra data given to DerValue constructor
	at sun.security.util.DerValue.init(DerValue.java:384) ~[na:1.8.0_45]
	at sun.security.util.DerValue.<init>(DerValue.java:294) ~[na:1.8.0_45]
	at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:195) ~[na:1.8.0_45]
	... 36 common frames omitted
11:20:05.910 [main] ERROR c.o.saml2.settings.Saml2Settings - sp_entityId_not_found
11:20:05.911 [main] ERROR c.o.saml2.settings.Saml2Settings - sp_acs_not_found
11:20:05.911 [main] ERROR c.o.saml2.settings.Saml2Settings - sp_cert_not_found_and_required
11:20:05.975 [main] ERROR c.o.saml2.settings.Saml2Settings - contact_not_enought_data
11:20:05.977 [main] ERROR c.o.saml2.settings.Saml2Settings - organization_not_enought_data
11:20:06.016 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_entityId_not_found
11:20:06.016 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_sso_url_invalid
11:20:06.016 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_cert_or_fingerprint_not_found_and_required
11:20:06.016 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_cert_not_found_and_required
11:20:06.111 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-elt.1: Cannot find the declaration of element 'md:EntityDescriptor2'.]
11:20:06.113 [main] ERROR c.o.saml2.settings.Saml2Settings - sp_entityId_not_found
11:20:06.113 [main] ERROR c.o.saml2.settings.Saml2Settings - sp_acs_not_found
11:20:06.113 [main] ERROR c.o.saml2.settings.Saml2Settings - sp_cert_not_found_and_required
11:20:06.113 [main] ERROR c.o.saml2.settings.Saml2Settings - contact_not_enought_data
11:20:06.113 [main] ERROR c.o.saml2.settings.Saml2Settings - organization_not_enought_data
11:20:06.114 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_entityId_not_found
11:20:06.114 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_sso_url_invalid
11:20:06.114 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_cert_or_fingerprint_not_found_and_required
11:20:06.114 [main] ERROR c.o.saml2.settings.Saml2Settings - idp_cert_not_found_and_required
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.316 sec
Running com.onelogin.saml2.test.settings.SettingBuilderTest
11:20:06.139 [main] ERROR c.o.saml2.settings.SettingsBuilder - Error loading privatekey from properties.
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : Detect premature EOF
	at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:217) ~[na:1.8.0_45]
	at java.security.KeyFactory.generatePrivate(KeyFactory.java:372) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.loadPrivateKey(Util.java:477) ~[classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadPrivateKeyFromProp(SettingsBuilder.java:537) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadSpSetting(SettingsBuilder.java:378) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.build(SettingsBuilder.java:170) [classes/:na]
	at com.onelogin.saml2.test.settings.SettingBuilderTest.testLoadFromFileInvalidSPCerts(SettingBuilderTest.java:349) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: java.security.InvalidKeyException: IOException : Detect premature EOF
	at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:351) ~[na:1.8.0_45]
	at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:356) ~[na:1.8.0_45]
	at sun.security.rsa.RSAPrivateCrtKeyImpl.<init>(RSAPrivateCrtKeyImpl.java:91) ~[na:1.8.0_45]
	at sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(RSAPrivateCrtKeyImpl.java:75) ~[na:1.8.0_45]
	at sun.security.rsa.RSAKeyFactory.generatePrivate(RSAKeyFactory.java:316) ~[na:1.8.0_45]
	at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:213) ~[na:1.8.0_45]
	... 35 common frames omitted
11:20:06.146 [main] ERROR c.o.saml2.settings.SettingsBuilder - 'onelogin.saml2.idp.single_logout_service.url' contains malformed url.
java.net.MalformedURLException: no protocol: invalid_slo_url
	at java.net.URL.<init>(URL.java:586) ~[na:1.8.0_45]
	at java.net.URL.<init>(URL.java:483) ~[na:1.8.0_45]
	at java.net.URL.<init>(URL.java:432) ~[na:1.8.0_45]
	at com.onelogin.saml2.settings.SettingsBuilder.loadURLProperty(SettingsBuilder.java:453) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadIdpSetting(SettingsBuilder.java:198) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.build(SettingsBuilder.java:171) [classes/:na]
	at com.onelogin.saml2.test.settings.SettingBuilderTest.testLoadFromFileDifferentProp(SettingBuilderTest.java:446) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
11:20:06.147 [main] ERROR c.o.saml2.settings.SettingsBuilder - 'onelogin.saml2.idp.single_logout_service.response.url' contains malformed url.
java.net.MalformedURLException: no protocol: invalid_slo_response_url
	at java.net.URL.<init>(URL.java:586) ~[na:1.8.0_45]
	at java.net.URL.<init>(URL.java:483) ~[na:1.8.0_45]
	at java.net.URL.<init>(URL.java:432) ~[na:1.8.0_45]
	at com.onelogin.saml2.settings.SettingsBuilder.loadURLProperty(SettingsBuilder.java:453) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.loadIdpSetting(SettingsBuilder.java:202) [classes/:na]
	at com.onelogin.saml2.settings.SettingsBuilder.build(SettingsBuilder.java:171) [classes/:na]
	at com.onelogin.saml2.test.settings.SettingBuilderTest.testLoadFromFileDifferentProp(SettingBuilderTest.java:446) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec
Running com.onelogin.saml2.test.util.UtilsTest
[Fatal Error] :1:31: DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
11:20:06.193 [main] ERROR com.onelogin.saml2.util.Util - Error executing generateNameId: null
java.lang.NullPointerException: null
	at org.apache.xml.security.c14n.implementations.CanonicalizerBase.outputTextToWriter(CanonicalizerBase.java:842) ~[xmlsec-2.0.7.jar:2.0.7]
	at org.apache.xml.security.c14n.implementations.CanonicalizerBase.canonicalizeSubTree(CanonicalizerBase.java:277) ~[xmlsec-2.0.7.jar:2.0.7]
	at org.apache.xml.security.c14n.implementations.CanonicalizerBase.engineCanonicalizeSubTree(CanonicalizerBase.java:197) ~[xmlsec-2.0.7.jar:2.0.7]
	at org.apache.xml.security.c14n.implementations.CanonicalizerBase.engineCanonicalizeSubTree(CanonicalizerBase.java:117) ~[xmlsec-2.0.7.jar:2.0.7]
	at org.apache.xml.security.c14n.Canonicalizer.canonicalizeSubtree(Canonicalizer.java:303) ~[xmlsec-2.0.7.jar:2.0.7]
	at org.apache.xml.security.utils.XMLUtils.outputDOM(XMLUtils.java:230) ~[xmlsec-2.0.7.jar:2.0.7]
	at org.apache.xml.security.utils.XMLUtils.outputDOM(XMLUtils.java:212) ~[xmlsec-2.0.7.jar:2.0.7]
	at com.onelogin.saml2.util.Util.convertDocumentToString(Util.java:327) [classes/:na]
	at com.onelogin.saml2.util.Util.convertDocumentToString(Util.java:341) [classes/:na]
	at com.onelogin.saml2.util.Util.generateNameId(Util.java:1178) [classes/:na]
	at com.onelogin.saml2.util.Util.generateNameId(Util.java:1199) [classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testGenerateNameIdException(UtilsTest.java:1671) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
11:20:06.201 [main] ERROR o.a.x.security.encryption.XMLCipher - XMLCipher::decryptElement called without a key and unable to resolve
[Fatal Error] :1:24: XML document structures must start and end within the same entity.
[Fatal Error] :1:24: XML document structures must start and end within the same entity.
11:20:06.206 [main] WARN  com.onelogin.saml2.util.Util - Error executing validateXML: xmlDocument was null
java.lang.IllegalArgumentException: xmlDocument was null
	at com.onelogin.saml2.util.Util.validateXML(Util.java:213) ~[classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testValidateXMLBadFormat(UtilsTest.java:163) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
[Fatal Error] :14:22: The end-tag for element type "md:EntityDescriptor" must end with a '>' delimiter.
11:20:06.325 [main] WARN  com.onelogin.saml2.util.Util - Error executing validateXML: xmlDocument was null
java.lang.IllegalArgumentException: xmlDocument was null
	at com.onelogin.saml2.util.Util.validateXML(Util.java:213) ~[classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testValidateXMLInvalid(UtilsTest.java:196) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
11:20:06.420 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-complex-type.2.4.a: Invalid content was found starting with element 'md:SingleLogoutService'. One of '{"urn:oasis:names:tc:SAML:2.0:metadata":AssertionConsumerService, "urn:oasis:names:tc:SAML:2.0:metadata":AttributeConsumingService}' is expected.]
11:20:06.773 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-elt.1: Cannot find the declaration of element 'md:EntityDescriptor2'.]
11:20:06.835 [main] WARN  com.onelogin.saml2.util.Util - Errors found when validating SAML response with schema: [org.xml.sax.SAXParseException; cvc-elt.1: Cannot find the declaration of element 'md:EntityDescriptor'.]
11:20:06.870 [main] WARN  com.onelogin.saml2.util.Util - Failed to find signature nodes
javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:287) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.query(Util.java:174) ~[classes/:na]
	at com.onelogin.saml2.util.Util.query(Util.java:194) ~[classes/:na]
	at com.onelogin.saml2.util.Util.validateSign(Util.java:800) ~[classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testValidateSignInvalidsInputs(UtilsTest.java:930) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:368) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.eval(XPathImpl.java:211) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:273) ~[na:1.8.0_45]
	... 33 common frames omitted
Caused by: java.lang.RuntimeException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.axes.NodeSequence.setRoot(NodeSequence.java:266) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.axes.LocPathIterator.execute(LocPathIterator.java:214) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:339) ~[na:1.8.0_45]
	... 35 common frames omitted
11:20:06.872 [main] WARN  com.onelogin.saml2.util.Util - Failed to find signature nodes
javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:287) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.query(Util.java:174) ~[classes/:na]
	at com.onelogin.saml2.util.Util.query(Util.java:194) ~[classes/:na]
	at com.onelogin.saml2.util.Util.validateSign(Util.java:800) ~[classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testValidateSignInvalidsInputs(UtilsTest.java:931) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:368) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.eval(XPathImpl.java:211) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:273) ~[na:1.8.0_45]
	... 33 common frames omitted
Caused by: java.lang.RuntimeException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.axes.NodeSequence.setRoot(NodeSequence.java:266) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.axes.LocPathIterator.execute(LocPathIterator.java:214) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:339) ~[na:1.8.0_45]
	... 35 common frames omitted
11:20:06.875 [main] WARN  com.onelogin.saml2.util.Util - Failed to find signature nodes
javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:287) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.query(Util.java:174) ~[classes/:na]
	at com.onelogin.saml2.util.Util.query(Util.java:194) ~[classes/:na]
	at com.onelogin.saml2.util.Util.validateSign(Util.java:800) ~[classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testValidateSignInvalidsInputs(UtilsTest.java:932) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:368) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.eval(XPathImpl.java:211) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:273) ~[na:1.8.0_45]
	... 33 common frames omitted
Caused by: java.lang.RuntimeException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.axes.NodeSequence.setRoot(NodeSequence.java:266) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.axes.LocPathIterator.execute(LocPathIterator.java:214) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:339) ~[na:1.8.0_45]
	... 35 common frames omitted
11:20:06.882 [main] WARN  com.onelogin.saml2.util.Util - Failed to find signature nodes
javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:287) ~[na:1.8.0_45]
	at com.onelogin.saml2.util.Util.query(Util.java:174) ~[classes/:na]
	at com.onelogin.saml2.util.Util.query(Util.java:194) ~[classes/:na]
	at com.onelogin.saml2.util.Util.validateSign(Util.java:800) ~[classes/:na]
	at com.onelogin.saml2.test.util.UtilsTest.testValidateSignInvalidsInputs(UtilsTest.java:933) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) [surefire-junit4-2.12.jar:2.12]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) [surefire-junit4-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: javax.xml.transform.TransformerException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:368) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.eval(XPathImpl.java:211) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluate(XPathImpl.java:273) ~[na:1.8.0_45]
	... 33 common frames omitted
Caused by: java.lang.RuntimeException: Unable to evaluate expression using this context
	at com.sun.org.apache.xpath.internal.axes.NodeSequence.setRoot(NodeSequence.java:266) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.axes.LocPathIterator.execute(LocPathIterator.java:214) ~[na:1.8.0_45]
	at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:339) ~[na:1.8.0_45]
	... 35 common frames omitted
11:20:06.886 [main] WARN  o.a.x.s.signature.XMLSignature - Signature verification failed.
11:20:06.888 [main] WARN  o.a.x.s.signature.XMLSignature - Signature verification failed.
11:20:06.905 [main] WARN  o.a.xml.security.signature.Reference - Verification failed for URI "#pfxf94cd805-c22b-8198-6eff-194096928ec5"
11:20:06.905 [main] WARN  o.a.xml.security.signature.Reference - Expected Digest: xarsZtmYNTXSrLhO/kzu1sAs268=
11:20:06.905 [main] WARN  o.a.xml.security.signature.Reference - Actual Digest: efuCqgAdannb2aDrPpRzXNjeeSM=
11:20:06.909 [main] WARN  o.a.xml.security.signature.Reference - Verification failed for URI "#pfxf94cd805-c22b-8198-6eff-194096928ec5"
11:20:06.909 [main] WARN  o.a.xml.security.signature.Reference - Expected Digest: xarsZtmYNTXSrLhO/kzu1sAs268=
11:20:06.910 [main] WARN  o.a.xml.security.signature.Reference - Actual Digest: efuCqgAdannb2aDrPpRzXNjeeSM=
[Fatal Error] :14:22: The end-tag for element type "md:EntityDescriptor" must end with a '>' delimiter.
11:20:06.991 [main] ERROR o.a.x.security.encryption.XMLCipher - XMLCipher::decryptElement called without a key and unable to resolve
Tests run: 68, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.834 sec

Results :

Tests in error:
  testEncryptedResponse(com.onelogin.saml2.test.authn.AuthnResponseTest)

Tests run: 254, Failures: 0, Errors: 1, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] OneLogin java-saml Toolkit Project ................. SUCCESS [  1.322 s]
[INFO] OneLogin java-saml Toolkit Core .................... FAILURE [ 17.005 s]
[INFO] OneLogin java-saml Toolkit ......................... SKIPPED
[INFO] OneLogin java-saml Toolkit Samples ................. SKIPPED
[INFO] OneLogin java-saml Toolkit Sample Webapp ........... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.486 s
[INFO] Finished at: 2016-11-15T11:20:07-05:00
[INFO] Final Memory: 23M/315M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project java-saml-core: There are test failures.
[ERROR]
[ERROR] Please refer to /Users/tcaraballo/src/java-saml/core/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :java-saml-core

Trying to concurrently verify multiple responses might fail

Java's SAX classes are not thread safe. Since the validation shares an instance of the javax.xml.validation.SchemaFactory (in com.onelogin.saml2.util.SchemaFactory) trying to run multiple threads validating Responses (using separate instances of Auth and/or Response) might fail with errors like:

org.xml.sax.SAXException: FWK005 parse may not be called while parsing.
    at com.sun.org.apache.xerces.internal.jaxp.validation.Util.toSAXException(Util.java:65) ~[na:1.7.0_71]
    at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:256) ~[na:1.7.0_71]
    at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:627) ~[na:1.7.0_71]
    at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:659) ~[na:1.7.0_71]
    at com.onelogin.saml2.util.SchemaFactory.loadFromUrl(SchemaFactory.java:25) ~[classes/:na]
    at com.onelogin.saml2.util.Util.validateXML(Util.java:215) ~[classes/:na]

or

java.lang.NullPointerException: null
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1445) ~[na:1.7.0_71]
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:630) ~[na:1.7.0_71]
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:616) ~[na:1.7.0_71]
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:574) ~[na:1.7.0_71]
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:540) ~[na:1.7.0_71]
    at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:252) ~[na:1.7.0_71]
    at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:627) ~[na:1.7.0_71]
    at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:659) ~[na:1.7.0_71]
    at com.onelogin.saml2.util.SchemaFactory.loadFromUrl(SchemaFactory.java:25) ~[classes/:na]
    at com.onelogin.saml2.util.Util.validateXML(Util.java:215) ~[classes/:na]

Request: Support IdPs with separate URLs for logout response/request

Hello,

While working with a client to setup SSO with our application I came across this issue. The client is using the solution provided by F5 here https://f5.com/products/modules/access-policy-manager

For SLO, the server has separate URLs for when the SP wants to send a request to logout from the IdP and for when the SP wants to send the IdP a logout response. I modified the library a bit and came up with this to allow this to happen

https://gist.github.com/metal-hed/85932b301233edd5a22d2d5ffd0085b0

Would this be something that could be added into the library?

Response audiences are validated against currentUrl

https://github.com/onelogin/java-saml/blob/master/src/main/java/com/onelogin/saml/Response.java#L153

if (!validAudiences.isEmpty() && !this.audienceUrl.equals(currentUrl)) {
throw new Exception( this.audienceUrl + " is not a valid audience for this Response");
}

If I understand the code correctly audiences should not be validated against currentUrl but against the SP entity ID (the python lib does that).

I changed the code to:

if (!validAudiences.isEmpty() && !this.audienceUrl.equals(this.accountSettings.getIdp_sso_target_url())) { throw new Exception( this.audienceUrl + " is not a valid audience for this Response"); }

but that might be wrong since I'm not entirely familiar with that validation.

Onelogin not returning encrypted response

I've created an integration with Onelogin that works without encryption, but after attempting to turn on encryption, login fails because the response from onelogin is not encrypted. What is the proper way to enable this?

Related settings:

# onelogin.saml.properties
###
onelogin.saml2.strict = true
onelogin.saml2.debug = false
onelogin.saml2.security.nameid_encrypted = true
onelogin.saml2.security.authnrequest_signed = true
onelogin.saml2.security.logoutrequest_signed = true
onelogin.saml2.security.logoutresponse_signed = true
onelogin.saml2.security.want_messages_signed = true
onelogin.saml2.security.want_assertions_signed = true
onelogin.saml2.security.sign_metadata = true
onelogin.saml2.security.want_assertions_encrypted = true
onelogin.saml2.security.want_nameid_encrypted = true
urn:oasis:names:tc:SAML:2.0:ac:classes:urn:oasis:names:tc:SAML:2.0:ac:classes:Password
onelogin.saml2.security.requested_authncontext = urn:oasis:names:tc:SAML:2.0:ac:classes:urn:oasis:names:tc:SAML:2.0:ac:classes:Password
onelogin.saml2.security.onelogin.saml2.security.requested_authncontextcomparison = exact
onelogin.saml2.security.want_xml_validation = true
onelogin.saml2.security.signature_algorithm = http://www.w3.org/2000/09/xmldsig#rsa-sha1
###

And onelogin.saml2.sp.entityid is configured to an endpoint which uses this properties file.

Publish to Maven Central

It would be easier to integrate into our product if the library were published to Maven Central. This would also solve other problems such as automatically pulling in the required dependencies such as Apache Commons Codec and whatever else is needed.

Make com.onelogin.saml2.Auth more extensible.

I think it would be be helpful to make the library more extensible by adding a few methods and making some of the private fields protected.

For com.onelogin.saml2.settings.SettingsBuilder it would be nice to be to have a constructor that took Saml2Settings. This would allow me to load the settings dynamically externally but still use the existing validation code provided by the SettingsBuilder.

Also I have extended the com.onelogin.saml2.Auth and I am adding a overloading Auth.processResponse() -> Auth.processResponse(HttpRequest httpRequest). It would be helpful if some of the properties were made to be protected. Or the addition of a protected method to pass in the samlResponse to set these properties.
nameid,
authenticated,
attributes,
sessionIndex,
sessionExpiration,
lastAssertionId,
lastAssertionNotOnOrAfter

Forming URL for ACS with existing query parameter fails

The ACS for google is of the form:

https://accounts.google.com/o/saml2/idp?idpid=

In AuthRequest.getSSOurl you use string concatenation to form the URL using the "?" seperator. This fails in all URLs that already have a query parameter.

I have made a local fix which simply checks whether the query string already contains "?" and if it does uses "&" instead. Happy to create a pull request, but wondered if you'd prefer to use something like apache URIBuilder (see below) to avoid other possible edge cases, as the cost of an extra dependency?

http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URIBuilder.html

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.