www/rt44: Update to 4.4.7

Changes:
  https://github.com/bestpractical/rt/releases/tag/rt-4.4.7
This commit is contained in:
Mikael Urankar 2023-10-20 11:39:27 +02:00
parent fbb58a2ffc
commit c2238ca058
4 changed files with 7 additions and 113 deletions

View file

@ -1,6 +1,5 @@
PORTNAME= rt
DISTVERSION= 4.4.6
PORTREVISION= 1
DISTVERSION= 4.4.7
CATEGORIES= www
MASTER_SITES= http://download.bestpractical.com/pub/rt/release/
PKGNAMESUFFIX= 44

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1658127043
SHA256 (rt-4.4.6.tar.gz) = 1eff5bd9e556b5d6682ccd0e5b2f3dcc2c49a9ec4e215dadb90c4caf5e435e9e
SIZE (rt-4.4.6.tar.gz) = 10783318
TIMESTAMP = 1697794413
SHA256 (rt-4.4.7.tar.gz) = 47af1651d5df3f25b6374ff6c1da71c66202d61919d9431c17259fa3df69ae59
SIZE (rt-4.4.7.tar.gz) = 10858315

View file

@ -1,107 +0,0 @@
diff --git a/docs/web_deployment.pod b/docs/web_deployment.pod
index d4d6a43122..3177d2abfd 100644
--- docs/web_deployment.pod
+++ docs/web_deployment.pod
@@ -171,6 +171,30 @@ B<WARNING: mod_perl 1.99_xx is not supported.>
To run RT using mod_perl 1.xx please see L<Plack::Handler::Apache1> for
configuration examples.
+=head3 Restricting the REST 1.0 mail-gateway
+
+RT processes email via a REST 1.0 endpoint. If you accept email on the same
+server as your running RT, you can restrict this endpoint to localhost only
+with a configuration like the following:
+
+ # Accept requests only from localhost
+ <Location /REST/1.0/NoAuth/mail-gateway>
+ Require local
+ </Location>
+
+If you run C<bin/rt-mailgate> on a separate server, you can update
+the above to allow additional IP addresses.
+
+ <Location /REST/1.0/NoAuth/mail-gateway>
+ Require ip 127.0.0.1 ::1 192.0.2.0 # Add you actual IPs
+ </Location>
+
+See the L<Apache documentation|https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html>
+for additional configuration options.
+
+After adding this configuration, test receiving email and confirm
+your C<bin/rt-mailgate> utility and C</etc/aliases> configurations
+can successfully submit email to RT.
=head2 nginx
diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index 159e7758a3..7ded8b7310 100644
--- lib/RT/Interface/Email.pm
+++ lib/RT/Interface/Email.pm
@@ -159,6 +159,10 @@ sub Gateway {
);
}
+ # Clean up sensitive headers. Crypt related headers are cleaned up in RT::Interface::Email::Crypt::VerifyDecrypt
+ my @headers = qw( RT-Attach RT-Send-Cc RT-Send-Bcc RT-Message-ID RT-DetectedAutoGenerated RT-Squelch-Replies-To );
+ $Message->head->delete($_) for @headers;
+
#Set up a queue object
my $SystemQueueObj = RT::Queue->new( RT->SystemUser );
$SystemQueueObj->Load( $args{'queue'} );
diff --git a/lib/RT/Interface/Email/Crypt.pm b/lib/RT/Interface/Email/Crypt.pm
index f4eab01935..a8b0ea3f19 100644
--- lib/RT/Interface/Email/Crypt.pm
+++ lib/RT/Interface/Email/Crypt.pm
@@ -73,13 +73,14 @@ sub VerifyDecrypt {
);
# we clean all possible headers
- my @headers =
+ my @headers = (
qw(
X-RT-Incoming-Encryption
X-RT-Incoming-Signature X-RT-Privacy
X-RT-Sign X-RT-Encrypt
),
- map "X-RT-$_-Status", RT::Crypt->Protocols;
+ map "X-RT-$_-Status", RT::Crypt->Protocols
+ );
foreach my $p ( $args{'Message'}->parts_DFS ) {
$p->head->delete($_) for @headers;
}
diff --git a/share/html/REST/1.0/NoAuth/mail-gateway b/share/html/REST/1.0/NoAuth/mail-gateway
index 328be91bc6..107d7858c7 100644
--- share/html/REST/1.0/NoAuth/mail-gateway
+++ share/html/REST/1.0/NoAuth/mail-gateway
@@ -59,9 +59,18 @@ use RT::Interface::Email;
$r->content_type('text/plain; charset=utf-8');
$m->error_format('text');
my ( $status, $error, $Ticket ) = RT::Interface::Email::Gateway( \%ARGS );
+
+# Obscure the message to avoid any information disclosure unless
+# in DevelMode.
+my $log_error;
+unless ( RT->Config->Get('DevelMode') ) {
+ $log_error = $error;
+ $error = 'operation unsuccessful';
+}
+
if ( $status == 1 ) {
$m->out("ok\n");
- if ( $Ticket && $Ticket->Id ) {
+ if ( $Ticket && $Ticket->Id && RT->Config->Get('DevelMode') ) {
$m->out( 'Ticket: ' . ($Ticket->Id || '') . "\n" );
$m->out( 'Queue: ' . ($Ticket->QueueObj->Name || '') . "\n" );
$m->out( 'Owner: ' . ($Ticket->OwnerObj->Name || '') . "\n" );
@@ -73,9 +82,11 @@ if ( $status == 1 ) {
}
else {
if ( $status == -75 ) {
+ RT->Logger->error("mail-gateway returned status -75: $log_error") if $log_error;
$m->out( "temporary failure - $error\n" );
}
else {
+ RT->Logger->error("mail-gateway error: $log_error") if $log_error;
$m->out( "not ok - $error\n" );
}
}

View file

@ -1197,12 +1197,14 @@ sbin/standalone_httpd
%%DATADIR%%/html/SelfService/Create.html
%%DATADIR%%/html/SelfService/CreateTicketInQueue.html
%%DATADIR%%/html/SelfService/Display.html
%%DATADIR%%/html/SelfService/Download/CustomFieldValue/dhandler
%%DATADIR%%/html/SelfService/Elements/GotoTicket
%%DATADIR%%/html/SelfService/Elements/Header
%%DATADIR%%/html/SelfService/Elements/MyRequests
%%DATADIR%%/html/SelfService/Elements/RequestUpdate
%%DATADIR%%/html/SelfService/Elements/SearchArticle
%%DATADIR%%/html/SelfService/Helpers/Autocomplete/CustomFieldValues
%%DATADIR%%/html/SelfService/Helpers/Autocomplete/Principals
%%DATADIR%%/html/SelfService/Helpers/Autocomplete/Users
%%DATADIR%%/html/SelfService/Helpers/ShortcutHelp
%%DATADIR%%/html/SelfService/Helpers/Upload/Add
@ -1258,7 +1260,6 @@ sbin/standalone_httpd
%%DATADIR%%/html/Ticket/Graphs/Elements/EditGraphProperties
%%DATADIR%%/html/Ticket/Graphs/Elements/ShowGraph
%%DATADIR%%/html/Ticket/Graphs/Elements/ShowLegends
%%DATADIR%%/html/Ticket/Graphs/dhandler
%%DATADIR%%/html/Ticket/Graphs/index.html
%%DATADIR%%/html/Ticket/History.html
%%DATADIR%%/html/Ticket/Modify.html
@ -1272,6 +1273,7 @@ sbin/standalone_httpd
%%DATADIR%%/html/Ticket/autohandler
%%DATADIR%%/html/Tools/MyDay.html
%%DATADIR%%/html/Tools/MyReminders.html
%%DATADIR%%/html/Tools/PreviewSearches.html
%%DATADIR%%/html/Tools/index.html
%%DATADIR%%/html/User/Elements/AssetList
%%DATADIR%%/html/User/Elements/Portlets/ActiveTickets