NAME
Mojo::UserAgent::SecureServer - Secure application server for Mojo::UserAgent
SYNOPSIS
# Construct from Mojo::UserAgent
my
$ua
= Mojo::UserAgent->new;
$ua
->ca(
'ca.pem'
)->cert(
'cert.pem'
)->key(
'key.pem'
);
$ua
->server(Mojo::UserAgent::SecureServer->from_ua(
$ua
));
# Construct manually
my
$ua
= Mojo::UserAgent->new;
my
$server
= Mojo::UserAgent::SecureServer->new;
$server
->
listen
(Mojo::URL->new(
'https://127.0.0.1?cert=/x/server.crt&key=/y/server.key&ca=/z/ca.crt'
));
$ua
->server(
$server
);
# Test::Mojo
my
$app
= Mojolicious->new;
$app
->routes->get(
'/'
=>
sub
{
my
$c
=
shift
;
my
$handle
= Mojo::IOLoop->stream(
$c
->tx->connection)->handle;
$c
->render(
json
=> {
cn
=>
$handle
->peer_certificate(
'cn'
)});
});
my
$t
= Test::Mojo->new(
$app
);
$t
->ua->insecure(0);
$t
->ua->ca(
't/pki/certs/ca-chain.cert.pem'
)
->cert(
't/pki/mojo.example.com.cert.pem'
)
->key(
't/pki/mojo.example.com.key.pem'
);
$t
->ua->server(Mojo::UserAgent::SecureServer->from_ua(
$t
->ua));
$t
->get_ok(
'/'
)->status_is(200)->json_is(
'/cn'
,
'mojo.example.com'
);
DESCRIPTION
Mojo::UserAgent::SecureServer allows you to test your Mojolicious web application with custom SSL/TLS key/cert/ca.
ATTRIBUTES
Mojo::UserAgent::SecureServer inherits all attributes from Mojo::UserAgent::Server and implements the following new ones.
listen
$url
=
$server
->
listen
;
The base listen URL for Mojo::Server::Daemon created by "nb_url" and "url". The "port" will be discarded, while other "listen" in Mojo::Server::Daemon parameters are kept.
METHODS
Mojo::UserAgent::SecureServer inherits all methods from Mojo::UserAgent::Server and implements the following new ones.
from_ua
$server
= Mojo::UserAgent::SecureServer->from_ua(
$ua
);
$server
=
$server
->from_ua(
$ua
);
Used to construct a new object and/or copy attributes from a Mojo::UserAgent object. Here is the long version:
$server
->app(
$ua
->server->app);
$server
->ioloop(
$ua
->server->ioloop);
$server
->
listen
->query->param(
ca
=>
$ua
->ca);
$server
->
listen
->query->param(
cert
=>
$ua
->cert);
$server
->
listen
->query->param(
key
=>
$ua
->key);
$server
->
listen
->query->param(
verify
=> Net::SSLeay::VERIFY_PEER())
unless
$ua
->insecure
nb_url
$url
=
$server
->nb_url;
Get absolute Mojo::URL object for server processing non-blocking requests with "app" in Mojo::UserAgent::Server.
url
$url
=
$server
->url;
Get absolute Mojo::URL object for server processing non-blocking requests with "app" in Mojo::UserAgent::Server.
AUTHOR
Jan Henning Thorsen
COPYRIGHT AND LICENSE
Copyright (C) Jan Henning Thorsen.
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.