Refactor code that build authz response (#184)
This commit is contained in:
parent
ca146c7525
commit
55fe1a5ec8
@ -7,7 +7,6 @@ package Lemonldap::NG::Portal::IssuerDBOpenIDConnect;
|
|||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use Lemonldap::NG::Portal::Simple;
|
use Lemonldap::NG::Portal::Simple;
|
||||||
use URI::Escape;
|
|
||||||
use base qw(Lemonldap::NG::Portal::_OpenIDConnect);
|
use base qw(Lemonldap::NG::Portal::_OpenIDConnect);
|
||||||
|
|
||||||
our $VERSION = '2.00';
|
our $VERSION = '2.00';
|
||||||
@ -431,16 +430,9 @@ sub issuerForAuthUser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Prepare response
|
|
||||||
my $response_url = $oidc_request->{'redirect_uri'};
|
|
||||||
|
|
||||||
$response_url .=
|
|
||||||
( $oidc_request->{'redirect_uri'} =~ /\?/ ? '&' : '?' );
|
|
||||||
|
|
||||||
# Generate code
|
# Generate code
|
||||||
my $codeSession = $self->getOpenIDConnectSession();
|
my $codeSession = $self->getOpenIDConnectSession();
|
||||||
my $code = $codeSession->id();
|
my $code = $codeSession->id();
|
||||||
$response_url .= "code=" . uri_escape($code);
|
|
||||||
|
|
||||||
$self->lmLog( "Generated code: $code", 'debug' );
|
$self->lmLog( "Generated code: $code", 'debug' );
|
||||||
|
|
||||||
@ -454,10 +446,11 @@ sub issuerForAuthUser {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( $oidc_request->{state} ) {
|
# Build Response
|
||||||
$response_url .=
|
my $response_url =
|
||||||
"&state=" . uri_escape( $oidc_request->{'state'} );
|
$self->buildAuthorizationCodeAuthnResponse(
|
||||||
}
|
$oidc_request->{'redirect_uri'},
|
||||||
|
$code, $oidc_request->{'state'} );
|
||||||
|
|
||||||
$self->lmLog( "Redirect user to $response_url", 'debug' );
|
$self->lmLog( "Redirect user to $response_url", 'debug' );
|
||||||
$self->{'urldc'} = $response_url;
|
$self->{'urldc'} = $response_url;
|
||||||
|
@ -251,6 +251,28 @@ sub buildAuthorizationCodeAuthnRequest {
|
|||||||
return $authn_uri;
|
return $authn_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## @method String buildAuthorizationCodeAuthnResponse(String redirect_uri, String code, String state)
|
||||||
|
# Build Authentication Response URI for Authorization Code Flow
|
||||||
|
# @param redirect_uri Redirect URI
|
||||||
|
# @param code Code
|
||||||
|
# @param state State
|
||||||
|
# return String Authentication Response URI
|
||||||
|
sub buildAuthorizationCodeAuthnResponse {
|
||||||
|
my ( $self, $redirect_uri, $code, $state ) = splice @_;
|
||||||
|
|
||||||
|
my $response_url = $redirect_uri;
|
||||||
|
|
||||||
|
$response_url .= ( $redirect_uri =~ /\?/ ? '&' : '?' );
|
||||||
|
|
||||||
|
$response_url .= "code=" . uri_escape($code);
|
||||||
|
|
||||||
|
if ($state) {
|
||||||
|
$response_url .= "&state=" . uri_escape($state);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response_url;
|
||||||
|
}
|
||||||
|
|
||||||
## @method String getAuthorizationCodeAccessToken(String op, String code, String auth_method)
|
## @method String getAuthorizationCodeAccessToken(String op, String code, String auth_method)
|
||||||
# Get Token response with autorization code
|
# Get Token response with autorization code
|
||||||
# @param op OpenIP Provider configuration key
|
# @param op OpenIP Provider configuration key
|
||||||
@ -978,6 +1000,10 @@ Compute callback URI
|
|||||||
|
|
||||||
Build Authentication Request URI for Authorization Code Flow
|
Build Authentication Request URI for Authorization Code Flow
|
||||||
|
|
||||||
|
=head2 buildAuthorizationCodeAuthnResponse
|
||||||
|
|
||||||
|
Build Authentication Response URI for Authorization Code Flow
|
||||||
|
|
||||||
=head2 getAuthorizationCodeAccessToken
|
=head2 getAuthorizationCodeAccessToken
|
||||||
|
|
||||||
Get Token response with autorization code
|
Get Token response with autorization code
|
||||||
|
Loading…
Reference in New Issue
Block a user