@ -30,6 +30,9 @@ import java.nio.charset.StandardCharsets;
import java.security.KeyFactory ;
import java.security.KeyFactory ;
import java.security.interfaces.RSAPublicKey ;
import java.security.interfaces.RSAPublicKey ;
import java.security.spec.X509EncodedKeySpec ;
import java.security.spec.X509EncodedKeySpec ;
import java.util.HashMap ;
import java.util.Map ;
import java.util.Set ;
/ * *
/ * *
* created by Harrison on 2020 / 05 / 27
* created by Harrison on 2020 / 05 / 27
@ -55,9 +58,9 @@ public class DownloadUtils {
@NotNull
@NotNull
public static String download ( String id , String fileName , com . fr . design . extra . Process < Double > process ) throws Exception {
public static String download ( String id , String fileName , com . fr . design . extra . Process < Double > process ) throws Exception {
CloseableHttpResponse fileRes = get HttpResponse( REUSES_URL , id ) ;
CloseableHttpResponse fileRes = postDownload HttpResponse( REUSES_URL , id ) ;
if ( fileRes . getStatusLine ( ) . getStatusCode ( ) = = HttpStatus . SC_MOVED_TEMPORARILY ) {
if ( fileRes . getStatusLine ( ) . getStatusCode ( ) = = HttpStatus . SC_MOVED_TEMPORARILY ) {
fileRes = getHttpResponse ( fileRes . getHeaders ( "Location" ) [ 0 ] . getValue ( ) ) ;
fileRes = getDownload HttpResponse ( fileRes . getHeaders ( "Location" ) [ 0 ] . getValue ( ) ) ;
}
}
if ( fileRes . getStatusLine ( ) . getStatusCode ( ) = = HttpStatus . SC_OK ) {
if ( fileRes . getStatusLine ( ) . getStatusCode ( ) = = HttpStatus . SC_OK ) {
String realPath = StableUtils . pathJoin ( ProductConstants . getEnvHome ( ) , ShareComponentConstants . PLUGIN_CACHE , ShareComponentConstants . DOWNLOAD_SHARE ) ;
String realPath = StableUtils . pathJoin ( ProductConstants . getEnvHome ( ) , ShareComponentConstants . PLUGIN_CACHE , ShareComponentConstants . DOWNLOAD_SHARE ) ;
@ -93,9 +96,11 @@ public class DownloadUtils {
public static String downloadPackage ( String id , String fileName , CancelCheck cancelCheck ) throws Exception {
public static String downloadPackage ( String id , String fileName , CancelCheck cancelCheck ) throws Exception {
CloseableHttpResponse fileRes = getHttpResponse ( PACKAGE_REUSES_URL , id ) ;
Map < String , String > params = new HashMap < > ( ) ;
params . put ( "designerVersion" , ProductConstants . RELEASE_VERSION ) ;
CloseableHttpResponse fileRes = postDownloadHttpResponse ( PACKAGE_REUSES_URL , id , params ) ;
if ( fileRes . getStatusLine ( ) . getStatusCode ( ) = = HttpStatus . SC_MOVED_TEMPORARILY ) {
if ( fileRes . getStatusLine ( ) . getStatusCode ( ) = = HttpStatus . SC_MOVED_TEMPORARILY ) {
fileRes = getHttpResponse ( fileRes . getHeaders ( "Location" ) [ 0 ] . getValue ( ) ) ;
fileRes = getDownload HttpResponse ( fileRes . getHeaders ( "Location" ) [ 0 ] . getValue ( ) ) ;
}
}
String realPath = StableUtils . pathJoin ( ProductConstants . getEnvHome ( ) , ShareComponentConstants . PLUGIN_CACHE , ShareComponentConstants . DOWNLOAD_PACKAGE_SHARE ) ;
String realPath = StableUtils . pathJoin ( ProductConstants . getEnvHome ( ) , ShareComponentConstants . PLUGIN_CACHE , ShareComponentConstants . DOWNLOAD_PACKAGE_SHARE ) ;
String filePath ;
String filePath ;
@ -130,21 +135,33 @@ public class DownloadUtils {
}
}
}
}
private static CloseableHttpResponse getHttpResponse ( String url , String id ) throws Exception {
private static CloseableHttpResponse postDownloadHttpResponse ( String url , String id ) throws Exception {
return postDownloadHttpResponse ( url , id , new HashMap < > ( ) ) ;
}
private static CloseableHttpResponse postDownloadHttpResponse ( String url , String id , Map < String , String > params ) throws Exception {
//先登录一下。不然可能失败
//先登录一下。不然可能失败
CloseableHttpClient client = createClient ( ) ;
CloseableHttpClient client = createClient ( ) ;
FineLoggerFactory . getLogger ( ) . info ( "login fr-market" ) ;
FineLoggerFactory . getLogger ( ) . info ( "login fr-market" ) ;
FineLoggerFactory . getLogger ( ) . info ( "start download widget {}" , id ) ;
FineLoggerFactory . getLogger ( ) . info ( "start download widget {}" , id ) ;
HttpUriRequest file = RequestBuilder . post ( )
RequestBuilder builder = RequestBuilder . post ( )
. setHeader ( "User-Agent" , "Mozilla/5.0" )
. setHeader ( "User-Agent" , "Mozilla/5.0" )
. setUri ( url ) . addParameter ( "id" , encrypt ( id ) ) . addParameter ( "userId" ,
. setUri ( url )
String . valueOf ( DesignerEnvManager . getEnvManager ( ) . getDesignerLoginUid ( ) ) )
. addParameter ( "id" , encrypt ( id ) )
. build ( ) ;
. addParameter ( "userId" , String . valueOf ( DesignerEnvManager . getEnvManager ( ) . getDesignerLoginUid ( ) ) ) ;
return client . execute ( file ) ;
if ( params ! = null ) {
Set < String > keys = params . keySet ( ) ;
for ( String key : keys ) {
builder . addParameter ( key , params . get ( key ) ) ;
}
}
return client . execute ( builder . build ( ) ) ;
}
}
private static CloseableHttpResponse getHttpResponse ( String url ) throws Exception {
private static CloseableHttpResponse getDownload HttpResponse ( String url ) throws Exception {
//先登录一下。不然可能失败
//先登录一下。不然可能失败
CloseableHttpClient client = createClient ( ) ;
CloseableHttpClient client = createClient ( ) ;
HttpUriRequest file = RequestBuilder . get ( )
HttpUriRequest file = RequestBuilder . get ( )