#!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use Plack::Middleware; # use this block if you don't need middleware, and only have a single target Dancer app to run here use webapp; use Plack::Builder; use Authen::Simple::ActiveDirectory; use OIDC::Lite::Client::WebServer; use Log::Log4perl; my $ad = Authen::Simple::ActiveDirectory->new( host => 'ldap://ad.myorg.com', #basedn => 'dc=ad,dc=myorg,dc=com', principal => 'ad.myorg.com', timeout => '60', log => Log::Log4perl->get_logger('Authen::Simple::ActiveDirectory') ); my $client1 = OIDC::Lite::Client::WebServer->new( id => q{xxxxxxxxxxxxxxxxxxxxxxxx}, secret => q{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}, authorize_uri => q{https://dev.preview.com/oauth2/v1/authorize}, access_token_uri => q{https://dev.preview.com/oauth2/v1/token}, ); sub start_authorize { my $your_app = shift; my $redirect_url = $client1->uri_to_redirect( redirect_uri => q{https://testchandan.com:5001/callback}, scope => q{openid}, ); } builder { enable "Plack::Middleware::Auth::OIDC::ProtectedResource", data_handler => "webapp::DataHandler", error_uri => q{http://example.org/error/description}; enable "Plack::Middleware::JSONP"; enable "Plack::Middleware::ContentLength"; webapp->to_app; };code>

query.tt code