diff --git a/lib/AccountManager/App.pm b/lib/AccountManager/App.pm index 9bf24e63421403c5ed78792a169ba9e0e9457198..3440f93a20a23e87022b5062be3b978f7709b642 100644 --- a/lib/AccountManager/App.pm +++ b/lib/AccountManager/App.pm @@ -407,7 +407,8 @@ sub req_select_email { $self->respond( template => 'select_email.tt2.html', data => { - sp => $sp, + federation => $federation, + sp => $sp, } ); } @@ -415,6 +416,29 @@ sub req_select_email { sub req_complete_challenge { my ($self) = @_; + my $federation = $self->{in}->{federation}; + + if (!$federation) { + $self->{logger}->error("Missing parameter: federation"); + $self->respond( + template => 'errors.tt2.html', + data => { + errors => [ "missing_federation" ] + } + ); + } + + my $file = $self->{configuration}->{federations}->{$federation}; + if (!$file) { + $self->{logger}->error("Incorrect parameter: federation"); + $self->respond( + template => 'errors.tt2.html', + data => { + errors => [ "invalid_federation" ] + } + ); + } + unless ($self->{in}->{entityid}) { $self->{logger}->error("Missing parameter entityid"); $self->respond( @@ -584,8 +608,9 @@ sub req_complete_challenge { $self->respond( template => 'complete_challenge.tt2.html', data => { - email => $self->{in}->{email}, - entityid => $self->{in}->{entityid}, + federation => $federation, + entityid => $self->{in}->{entityid}, + email => $self->{in}->{email}, } ); } diff --git a/templates/web/complete_challenge.tt2.html b/templates/web/complete_challenge.tt2.html index 2ff2529a3fb7e997aadebdcca6530f8ac94a4631..adb2ff741429b7a08e7fe04f664523c7bf9933c1 100644 --- a/templates/web/complete_challenge.tt2.html +++ b/templates/web/complete_challenge.tt2.html @@ -18,6 +18,7 @@ <label for="token">[% lh.maketext("Please provide the validation token here:") %]</label> <br/> <input name="token" value="" id="token" type="text" class="required error"/> + <input type="hidden" name="federation" value="[% federation %]"/> <input type="hidden" name="entityid" value="[% entityid %]"/> <input type="hidden" name="email" value="[% email %]"/> </div> diff --git a/templates/web/select_email.tt2.html b/templates/web/select_email.tt2.html index 2672807d8966430d80a1a71e51f685faf19cf274..010fd34f1d8394cf60fc52ae36c24fc56df0b9f2 100644 --- a/templates/web/select_email.tt2.html +++ b/templates/web/select_email.tt2.html @@ -21,6 +21,7 @@ <br/> [% END %] <div class="callout primary">[% lh.maketext("Those email addresses have been extracted from your service metadata.") %]</div> + <input type="hidden" name="federation" value="[% federation %]"/> <input type="hidden" name="entityid" value="[% sp.entityid %]"/> [% ELSE %] <p>