Git Product home page Git Product logo

missing-link's People

Stargazers

 avatar

Watchers

 avatar  avatar

missing-link's Issues

Add support for binary content (entity)

We use missing-link to upload files to a server, as shown below. The first 
scenario (text files) works nicely, whereas the second scenario (binary files) 
works less nice...

  <http url="http://server/upload.php?filename=all.txt" method="PUT">
    <entity file="target/allfiles.txt" />
  </http>
  <http url="http://server/upload.php?filename=all.zip" method="PUT">
    <entity file="target/allfiles.zip" />
  </http>

A suggestion could be an attribute "binary=true" on <entity>:

  <http url="http://server/upload.php?filename=all.zip" method="PUT">
    <entity file="target/allfiles.zip" binary="true" />
  </http>

Original issue reported on code.google.com by [email protected] on 3 May 2011 at 12:45

'303 See Other' redirect status from a POST reported as '200 OK'

What steps will reproduce the problem?
1. Configure an Ant buildfile to POST to a URL; e.g.
<http method="POST" url="${url}" 
    statusProperty="status" >
  <headers>
    <header name="Content-Type" value="application/x-www-form-urlencoded" />
  </headers>
  <entity value="${entity.body}" />
</http>
2. Set the ${url} property to a 'real world' URL that returns a '303 See Other' 
HTTP status code in the response.

What is the expected output? What do you see instead?

Expected: 

     [http] HTTP Request
     [http] ********************
     [http] URL:                (some URL here)
     [http] Method:     POST
     [http]     Content-Type: application/x-www-form-urlencoded
     [http] 
     [http] HTTP Response
     [http] ********************
     [http] Status:     303

The value of ${status} (from statusProperty="") would be expected to be set to 
303, as well.

Am seeing instead:

The status value set to '200', both in the output from the HTTP post and in the 
${status} value.

What version of the product are you using? On what operating system?

1.1.3, Ant 1.8.2, Java 1.6.0_16, Fedora Linux

Please provide any additional information below.

One URL you can try, that seems to always return a 303 redirect - to different 
URLs - on either success or failure:

http://demo.collectionspace.org/collectionspace/ui/core/html/index.html

Original issue reported on code.google.com by [email protected] on 19 Aug 2011 at 8:47

Allow connections to SSL sites with invalid certificates

What steps will reproduce the problem?
1. HTTP POST to a SSL site with an invalid certificate

What is the expected output? 
No failures or exceptions

What do you see instead?
C:\mWeb2\jControl>ant  http-post
Buildfile: build.xml

http-post:
     [http] HTTP Request
     [http] ********************
     [http] URL:                https://ols-mweb2.macbank:8643/mweb2_gui/api/v1/requests
     [http] Method:             POST
     [http]     Content-Type: text/xml

BUILD FAILED
org.missinglink.http.exception.HttpCertificateException: 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
PKIX path bui
lding failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
        at org.missinglink.http.client.HttpClient.invoke(HttpClient.java:431)
        at org.missinglink.ant.task.http.HttpClientTask.execute(HttpClientTask.java:316)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.S
unCertPathBuilderException: unable to find valid certification path to 
requested target
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1035)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124)
        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:904)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
        at org.missinglink.http.client.HttpClient.invoke(HttpClient.java:388)
        ... 18 more
Caused by: sun.security.validator.ValidatorException: PKIX path building 
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to
 find valid certification path to requested target
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:294)
        at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:200)
        at sun.security.validator.Validator.validate(Validator.java:218)
        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1014)
        ... 30 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable 
to find valid certification path to requested target
        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
        at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:289)
        ... 36 more

Total time: 1 second

What version of the product are you using? 
1.1.3 

On what operating system?
Windows XP

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 16 Jan 2012 at 5:22

The order of the query string parameters is changed

What steps will reproduce the problem?
1. Make a GET request with a number of parameters listed in the url-parameter
2. Notice, that the order of the parameters have changed before sending to the 
server

What is the expected output? What do you see instead?
I would expect that the HTTP request provided in the URL should be passed to 
the server as given. The fact that the order of the request parameters is 
altered makes it impossible to verify the request using a checksum, as the 
server will calculate the checksum for the request it receives, which is 
different from the one given to the ant task.

What version of the product are you using? On what operating system?
1.1.3 on Mac OS X Lion

Please provide any additional information below.
-

Original issue reported on code.google.com by [email protected] on 8 Jun 2012 at 9:56

Setup build process with local properties file based on username

Setup build process with local properties file based on username

* Include a sample properties file with sensitive data not included
* Build project into a single jar
* Build source jar
* Build javadocs
* Build api (javadoc) zip
* Build distribution folder with binary, source and javadocs
* Build distribution zip

Original issue reported on code.google.com by [email protected] on 13 Mar 2011 at 6:02

Add HttpClient with builder pattern

Should have the following features for the builder:

* URI parsing
  * protocol
  * host
  * port
  * context
  * extension
  * query parameters
* context builder
* query parameter builder
* header builder
  * have api support for specific common headers
    * Accept
    * Content-Type
    * Media-Type
* method builder
* authentication builder

Original issue reported on code.google.com by [email protected] on 12 Mar 2011 at 3:24

Add property support to entity

It would be nice to be able to retrieve the contents of an entity from a 
property, e.g. <entity property="artifactory.build.info"/>.

I have implemented this in a local copy but as I have incorporated in the patch 
in issue 13, a patch would not be that short and sweet. Anyway, it is trivial 
to implement this.

Original issue reported on code.google.com by [email protected] on 16 Aug 2011 at 11:22

Missing Link should be in the central maven repository

I tend to use the Maven Ant Tasks (the thing where you can use dependency 
management from within Ant, I always get the order of the word wrong) even for 
the dependencies of the build system itself. It would be great if I could get 
missing link this way as well.

Original issue reported on code.google.com by [email protected] on 10 Dec 2012 at 6:12

Optionally skip HTTP GET if outFile already exists

Sometimes I don't want to do a HTTP GET if the target file already exists, e.g. 
I've called GET apache-tomcat.zip from Maven Repo1, I want to skip GETs for the 
same resource in the future as I can guarantee it will be unchanged. 

It would be good if I could specify an "update" boolean attribute when 
performing GETs, e.g. 

<http method="GET" url="@{url}" outfile="@{toFile}" printrequest="false" 
printresponse="false" printrequestheaders="false" printresponseheaders="false" 
update="@{update}"/>

Original issue reported on code.google.com by [email protected] on 9 Aug 2011 at 1:41

POST Files

It would be nice to be able to POST files in a multipart message something like:

        <http method="POST" url="someurl.php">
            <query>
                <parameter name="project" value="Project Name Here"/>
                <parameter name="version" value="1.2.3"/>
                <file name="uploadedFile" path="localfile.txt"/>
                <!-- Note: the 'name' attribute should be changeable so it can
                           be configured to the specific forms field. -->
            </query>
        </http>

After I fixed ant-contrib I could do: 

        <postMethod multipart="true" url="http://blah/upload.php">
            <text name="project" value="Project Name Here"/>
            <text name="version" value="1.2.3"/>
            <file name="uploaded" path="/home/blah/test.txt" contentType="text/xml;charset=utf-8"/>
        </postMethod>

But I would like to use your light weight utility... especially since 
ant-contrib is dead and wouldn't respond with me wanting to patch up that 
functionality!

Cheers,

Randy

Original issue reported on code.google.com by [email protected] on 17 Jan 2012 at 5:22

Link wiki page to PDF document

The PDF document in the codebase is an excellent guide - can the home page wiki 
link to that PDF? Right now the wiki page says "TODO", which is a) off-putting 
and b) misleading when so much is done!

Original issue reported on code.google.com by [email protected] on 6 May 2011 at 9:11

property expansion for entity text, and new setcontentlengthheader attribute.

Here is a small patch that accomplishes two things I needed to make a simple 
REST request fly...

1. When setting the entity via text, ant does not do property expansion... what 
a pain. 
2. I added a some code to add a content length header if there is content and 
the settcontentlengthheader attribute is set (I would have camel-cased it, but 
I wanted to match your other attributes.)

Thanks for a nice, simple http client for ant!

( Patch file applies to http://missing-link.googlecode.com/svn/ant-http/trunk 
rev 91 )

Original issue reported on code.google.com by [email protected] on 8 Mar 2012 at 9:56

Attachments:

HttpClientBuilder fails to parse URI containing full stops in folder names or files

The problem lies in the URL_REGEX used by HttpClientBuilder to parse the URI

http://myserver:8081/artifactory/libs-snapshots-local/myjar/138-SNAPSHOT/myjar-1
38-SNAPSHOT.jar is accepted

http://myserver:8081/artifactory/libs-releases-local/myjar/138.0/myjar-138.0.jar
 is NOT accepted, it is incorrectly parsed as 
http://myserver:8081/artifactory/libs-releases-local/myjar/138.0/myjar-138?.0.ja
r (note the question mark)

This is a nasty bug made even worse by Issue 15. 

java.net.URI is not perfect by any means, but even so I don't understand why 
Missing Link needs to reparse the URI for itself. Surely java.net.URI can take 
care of any encoding issues, and regex matching will not be necessary

Original issue reported on code.google.com by [email protected] on 27 May 2011 at 11:20

HTTP GET failure message does not contain original URL

What steps will reproduce the problem?
1. HTTP GET unknown URL
2. Error message says "Expected 200 but got 404", not "Expected 200 at 
http://XYZ but got 404"

Having the original URL in the error message would be *enormously* useful, 
especially if the task is being used in a multi-threaded scenario and Missing 
Link debug is turned off

Thanks

Original issue reported on code.google.com by [email protected] on 16 May 2011 at 1:05

Add support for saving header values to properties

It would be welcome to have the ability to save specific header values to 
properties.

In particular, we'd like to save cookies and re-send them in subsequent 
responses; that is, to save the value(s) of the Set-Cookie: header(s) from a 
response, so we can send them in Cookie: header(s) in subsequent requests. 

See related Issue 21 for further discussion.

Original issue reported on code.google.com by [email protected] on 19 Aug 2011 at 5:54

Make the task less verbose by default

I find a little strange that there's so much things printed by default. I think 
that in the nominal case, the useful information is the url and the response 
code. If something doesn't behave correctly, then the end user could turn ant 
into the verbose mode, and he can gets every info about its http request and 
response.

See attached a suggested patch.

Original issue reported on code.google.com by [email protected] on 6 May 2011 at 9:00

Attachments:

Setting printrequestheaders and printresponseheaders to false doesn't do anything.

The following should output just the body of the HTTP response:

    <http url="http://domain/etc"
        entityProperty       = "HttpResponse"
        failonunexpected     = "false"
        printrequestheaders  = "false"
        printresponseheaders = "false"
        />
    <echo>${HttpResponse}</echo>

Instead, it is preceeding the echo with:

     [http] HTTP Request
     [http] ********************
     [http] URL:        http://domain/etc
     [http] Method:     GET
     [http] HTTP Response
     [http] ********************
     [http] Status:     200

Which is clogging up the output.

Using missing-link 1.1.3 with Ant 1.8.2

Original issue reported on code.google.com by [email protected] on 8 Jan 2012 at 8:07

Add support for storing the result code and output in properties

It would be nice to be able to store the result code (e.g. 200, 404) in a 
property so that it can be used for controlling the subsequent flow in the Ant 
script.

The same goes for the output from a request, e.g. GET.

I have implemented this in a local copy but as I have incorporated in the patch 
in issue 13, a patch would not be that short and sweet. Anyway, it is trivial 
to implement this.


Original issue reported on code.google.com by [email protected] on 16 Aug 2011 at 11:20

Does not work with paths which include encoded characters

What steps will reproduce the problem?
1. Enter URL which contains spaces i.e. 
http://example.com/some%20path/index.html
2. Run the task

What is the expected output? What do you see instead?
Expected HTTP 200 response but receive HTTP 404 response

What version of the product are you using? On what operating system?
1.1.3

Please provide any additional information below.

org.missinglink.http.client.HttpClient
596: httpClient.path = safeUri.getPath();

URI.getPath() decodes its return value. Some options are to use getRawPath() or 
re-encode the full URI before it is called.



Original issue reported on code.google.com by [email protected] on 12 Jun 2013 at 10:43

HTTPS <keystore> only supports trust stores and is confusing

The HTTPS <keystore> element only supports *trust stores*, not *key stores*. 
This is confusing and looks to have been caused by the JSSE storage object used 
by KeyManagerFactory and TrustManagerFactory being erroneously called KeyStore 
and that faulty abstraction leaking into Missing Link.

We have a HTTPS server that requires both a trust store *and* a key store. We 
will submit a patch soon that:

a) Renames the existing <keystore> element as <truststore>, as that is what it 
is
b) Introduce a new <keystore> element with the same properties - file and 
password, in case keystore and truststore are both used and do not share the 
same password
c) Change HttpClient under the hood to pass keystore and/or trust store into 
the JSSE SSLContext when establishing a HTTPS connection

Original issue reported on code.google.com by [email protected] on 22 Dec 2011 at 4:58

Property support for entity does not work

The recently added attribute value for entity does not work as expected. The 
method isValid in class EntityNode does not respect if the value attribute has 
been set. It should be something like:

  public boolean isValid() {
    if (null != text && text.length() > 0) {
      return true;
    } else if (null != file) {
      return true;
    } else if (null != value) {
      return true;
    }
    return false;
  }

Sorry not reporting this until now. I just assumed that this worked but a few 
minutes ago a colleague spotted a 500 error in a log... :)

Original issue reported on code.google.com by [email protected] on 14 Sep 2011 at 11:52

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.