commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yves Zoundi (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (VFS-194) Redirect of HTTP url using the header location
Date Sun, 03 Feb 2008 19:36:08 GMT

     [ https://issues.apache.org/jira/browse/VFS-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Yves Zoundi resolved VFS-194.
-----------------------------

    Resolution: Fixed

Issue resolved with the patch

> Redirect of HTTP url using the header location
> ----------------------------------------------
>
>                 Key: VFS-194
>                 URL: https://issues.apache.org/jira/browse/VFS-194
>             Project: Commons VFS
>          Issue Type: Wish
>         Environment: Windows XP/Linux/FreeBSD
>            Reporter: Yves Zoundi
>         Attachments: svn.diff
>
>
> The http provider classes don't test the header location before resolving a file. If
the redirection is reported as invalid by commons-httpclient, then the HttpFileObject is not
resolved. Here is how to fix it in all the http provider implementation classes. 
>           int status = 0;//client.executeMethod(method); 
>             try{
> 				status = client.executeMethod(method);
> 				System.out.println("method executed");
> 			}
> 			catch(Exception e){
> 				System.out.println("Exception co");
> 				try{
> 					HostConfiguration config = client.getHostConfiguration();
> 					Header header = method.getResponseHeader("Location");
> 					System.out.println("Checking header");
> 					if (header != null) {
> 						 
>                         String redirectUrl = header.getValue();  
>                         config.setHost(new java.net.URL(redirectUrl).getHost(), config.getPort(),
config.getProtocol()); 
>                         client.setHostConfiguration(config); 
>                         status = client.executeMethod(method); 
>                     
> 					} 
> 				}
> 				catch(Exception err){ 
> 					throw new Exception(err);
> 				}
> 				
> 			}
> 			 if ((status  >= 300) && (status < 400)) {
> try{
> 					HostConfiguration config = client.getHostConfiguration();
> 					Header header = method.getResponseHeader("Location"); 
> 					if (header != null) {
> 						 
>                         String redirectUrl = header.getValue();  
> 						method = new HeadMethod();
> 						 setupMethod(method);
>                         config.setHost(new java.net.URL(redirectUrl).getHost(), config.getPort(),
config.getProtocol()); 
>                         client.setHostConfiguration(config); 
>                         status = client.executeMethod(method); 
>                     
> 					} 
> 				}
> 				catch(Exception err){ 
> 					throw new Exception(err);
> 				}
> 			 }
>  method.releaseConnection();
>         if (status == HttpURLConnection.HTTP_OK)
>         {
>             return FileType.FILE;
>         }
>         else if (status == HttpURLConnection.HTTP_NOT_FOUND
>             || status == HttpURLConnection.HTTP_GONE)
>         {
>             return FileType.IMAGINARY;
>         }
>         else
>         {
>             throw new FileSystemException("vfs.provider.http/head.error", getName());
>         }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message