Apache2-ClickPath

 view release on metacpan or  search on metacpan

lib/Apache2/ClickPath/_parse.pm  view on Meta::CPAN


our $VERSION = '1.9';

{
  package Apache2::ClickPath::_parse::UA;
  use base 'LWP::UserAgent';

  sub get_basic_credentials {
    my ($I, $realm, $uri, $isproxy)=@_;
    if( $isproxy ) {
      return @ENV{qw{HTTP_PROXY_USERNAME HTTP_PROXY_PASSWORD}};
    } else {
      return @ENV{qw{HTTP_USERNAME HTTP_PASSWORD}};
    }
  }
}

sub Secret {
  my $arg=shift;

  die "ERROR: ClickPathSecret URL: please specify a http, https, file or data URL\n"
    unless( $arg=~/^(https?|file|data):/ );

  my $ua=Apache2::ClickPath::_parse::UA->new;

  local @ENV{qw{HTTPS_PROXY HTTPS_PROXY_USERNAME HTTPS_PROXY_PASSWORD
		HTTPS_DEBUG HTTPS_VERSION HTTPS_CERT_FILE HTTPS_KEY_FILE
		HTTPS_CA_FILE HTTPS_CA_DIR HTTPS_PKCS12_FILE
		HTTPS_PKCS12_PASSWORD
		HTTP_PROXY HTTP_PROXY_USERNAME HTTP_PROXY_PASSWORD
		HTTP_USERNAME HTTP_PASSWORD}};

  if( $arg=~s#^(https?://)((?:\\.|[^\\@])+)@#$1# ) {
    my @auth=split /(?<!\\):/, $2, 3;
    if( length $auth[0] and length $auth[1] ) {
      @ENV{qw{HTTP_USERNAME HTTP_PASSWORD}}=map {s!\\(.)!$1!g; $_} @auth[0,1];
    }
    foreach my $el (split /(?<!\\);/, $auth[2]) {
      $el=~s!\\(.)!$1!g;
      if( $el=~s/https_proxy=//i ) {

lib/Apache2/ClickPath/_parse.pm  view on Meta::CPAN

	$ENV{HTTPS_CA_FILE}=$el;
      } elsif( $el=~s/https_ca_dir=//i ) {
	$ENV{HTTPS_CA_DIR}=$el;
      } elsif( $el=~s/https_pkcs12_file=//i ) {
	$ENV{HTTPS_PKCS12_FILE}=$el;
      } elsif( $el=~s/https_pkcs12_password=//i ) {
	$ENV{HTTPS_PKCS12_PASSWORD}=$el;
      } elsif( $el=~s/http_proxy=//i ) {
	$ua->proxy( http=>$el );
      } elsif( $el=~s/http_proxy_username=//i ) {
	$ENV{HTTP_PROXY_USERNAME}=$el;
      } elsif( $el=~s/http_proxy_password=//i ) {
	$ENV{HTTP_PROXY_PASSWORD}=$el;
      }
    }
  }
  $arg=~s!\\(.)!$1!g if( $arg=~m#^https?://# );

  my $resp=$ua->get( $arg );

  if( $resp->code==200 ) {
    $arg=$resp->content;
    if( $arg=~s/^binary:// ) {



( run in 2.587 seconds using v1.01-cache-2.11-cpan-483215c6ad5 )