Added HttpProxy URL Pattern Filter
This commit is contained in:
parent
3f3fc5dd8f
commit
6047b341be
4 changed files with 63 additions and 11 deletions
|
|
@ -118,7 +118,15 @@ sub definition {
|
|||
label => $i18n->get(418, 'WebGUI'),
|
||||
hoverHelp => $i18n->get('418 description', 'WebGUI'),
|
||||
},
|
||||
|
||||
|
||||
urlPatternFilter=>{
|
||||
fieldType => "textarea",
|
||||
defaultValue => "",
|
||||
tab => "display",
|
||||
label => $i18n->get("url pattern filter label"),
|
||||
hoverHelp => $i18n->get("url pattern filter hover help"),
|
||||
},
|
||||
|
||||
followExternal => {
|
||||
fieldType => "yesNo",
|
||||
defaultValue => 1,
|
||||
|
|
@ -127,13 +135,13 @@ sub definition {
|
|||
hoverHelp => $i18n->get('5 description'),
|
||||
},
|
||||
|
||||
rewriteUrls => {
|
||||
rewriteUrls => {
|
||||
fieldType => "yesNo",
|
||||
defaultValue => 1,
|
||||
defaultValue => 1,
|
||||
tab => 'properties',
|
||||
label => $i18n->get(12),
|
||||
hoverHelp => $i18n->get('12 description'),
|
||||
},
|
||||
},
|
||||
|
||||
followRedirect => {
|
||||
fieldType => "yesNo",
|
||||
|
|
@ -382,7 +390,7 @@ sub view {
|
|||
$var{content} = $1 || $var{content};
|
||||
$var{"content.trailing"} = $2;
|
||||
}
|
||||
my $p = WebGUI::Asset::Wobject::HttpProxy::Parse->new($self->session, $proxiedUrl, $var{content}, $self->getId,$self->get("rewriteUrls"),$self->getUrl);
|
||||
my $p = WebGUI::Asset::Wobject::HttpProxy::Parse->new($self->session, $proxiedUrl, $var{content}, $self->getId,$self->get("rewriteUrls"),$self->getUrl,$self->get("urlPatternFilter"));
|
||||
$var{content} = $p->filter; # Rewrite content. (let forms/links return to us).
|
||||
$p->DESTROY;
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,13 @@ sub new {
|
|||
$self->{assetId} = shift;
|
||||
$self->{rewriteUrls} = shift;
|
||||
$self->{assetUrl} = shift;
|
||||
$self->{Filtered} ="";
|
||||
|
||||
my $pfilter = shift;
|
||||
$pfiler =~ s/\r//g;
|
||||
my @patterns = split(/\n/,$pfilter);
|
||||
$self->{patternFilter} = \@patterns;
|
||||
|
||||
$self->{Filtered} ="";
|
||||
$self->{FormAction} = "";
|
||||
$self->{FormActionIsDefined} = 0;
|
||||
$self->{recurseCheck} = 0;
|
||||
|
|
@ -118,7 +124,8 @@ sub session {
|
|||
sub start {
|
||||
my $self = shift;
|
||||
my ($tag, $attr, $attrseq, $origtext) = @_;
|
||||
# Check on the div class and div id attributes to see if we're proxying ourself.
|
||||
|
||||
# Check on the div class and div id attributes to see if we're proxying ourself.
|
||||
if($tag eq "div" && $attr->{'class'} eq 'wobjectHttpProxy' && $attr->{'id'} eq ('assetId'.$self->{assetId})) {
|
||||
$self->{recurseCheck} = 1;
|
||||
}
|
||||
|
|
@ -156,9 +163,23 @@ sub start {
|
|||
$self->{FormAction} = $val; # set FormAction to include hidden field later
|
||||
$val = $self->{assetUrl}; # Form Action returns to us
|
||||
} else {
|
||||
$val =~ s/\n//g; # Bugfix 757068
|
||||
$val = $self->session->url->append($self->{assetUrl},'proxiedUrl='.$self->session->url->escape($val).';func=view'); # return to us
|
||||
}
|
||||
$val =~ s/\n//g; # Bugfix 757068
|
||||
|
||||
#Determine if pattern should not be rewritten
|
||||
$rewritePattern = 0;
|
||||
foreach my $pattern (@{$self->{patternFilter}}) {
|
||||
if($val =~ m/$pattern/i) {
|
||||
$rewritePattern = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if($rewritePattern) {
|
||||
$val = URI::URL::url($val)->abs($self->{Url},1); # make absolute
|
||||
}
|
||||
else {
|
||||
$val = $self->session->url->append($self->{assetUrl},'proxiedUrl='.$self->session->url->escape($val).';func=view'); # return to us
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -279,6 +279,20 @@ be useful, others may not.|,
|
|||
context => q|Translator note: the "%s" tokens in the message should not be translated.|,
|
||||
lastUpdated => 1168994613
|
||||
},
|
||||
|
||||
'url pattern filter label' => {
|
||||
message => q|Url Pattern Filter|,
|
||||
lastUpdated => 1168994613,
|
||||
},
|
||||
|
||||
'url pattern filter hover help' => {
|
||||
message => q|Enter patterns one per line (Perl regular expressions are valid) that should be filtered when re-writing urls
|
||||
<br /><br />
|
||||
Ex: /bms/documents<br />
|
||||
/bms/documents/document_\\d+\\.pdf
|
||||
|,
|
||||
lastUpdated => 1168994613,
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue