summaryrefslogtreecommitdiff
path: root/lib/PAUSE/OpenID/Controller/Root.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PAUSE/OpenID/Controller/Root.pm')
-rw-r--r--lib/PAUSE/OpenID/Controller/Root.pm13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/PAUSE/OpenID/Controller/Root.pm b/lib/PAUSE/OpenID/Controller/Root.pm
index 221955f..cfbc608 100644
--- a/lib/PAUSE/OpenID/Controller/Root.pm
+++ b/lib/PAUSE/OpenID/Controller/Root.pm
@@ -31,14 +31,19 @@ PAUSE::OpenID::Controller::Root - Root Controller for PAUSE::OpenID
sub index :Path :Args(0) {
my ( $self, $c ) = @_;
- if ( not defined $c->req->param('openid.return_to') ) {
+ # 5.2.3
+ # If the malformed or invalid message is received by the Relying Party, or "openid.return_to"
+ # is not present or its value is not a valid URL, the server SHOULD return a response to the end user
+ # indicating the error and that it is unable to continue.
+ my $return_to = $c->req->param('openid.return_to');
+ # TODO: check if its a valid URL
+ if ( not defined $return_to ) {
#$c->flash->{xml} = '<document><error_message>Missing parameter</error_message></document>';
$c->res->redirect($c->uri_for('/error'));
}
-$c->stash->{xml} =<<XML;
-<document/>
-XML
+ # TODO: generate XML programatically
+ $c->stash->{xml} = sprintf('<document><config key="url" value="%s"/></document>', $c->config->{'PAUSE::OpenID'}{'baseurl'});
# Pass through parameters (unchecked for now)
foreach my $key ( keys %{$c->req->params} ) {