Security Advisories (1)
CVE-2026-5083 (2026-04-08)

Ado::Sessions versions through 0.935 for Perl generates insecure session ids. The session id is generated from a SHA-1 hash seeded with the built-in rand function, the epoch time, and the PID. The PID will come from a small set of numbers, and the epoch time may be guessed, if it is not leaked from the HTTP Date header. The built-in rand function is unsuitable for cryptographic usage. Predicable session ids could allow an attacker to gain access to systems. Note that Ado is no longer maintained, and has been removed from the CPAN index. It is still available on BackPAN.

NAME

Ado::Command::generate::adoplugin - Generates an Ado::Plugin

SYNOPSIS

On the command-line:

$ cd ~/opt/public_dev
# Ado is "globally" installed for the current perlbrew Perl
$ ado generate adoplugin --name MyBlog
$ ado generate adoplugin --name MyBlog --crud -t 'articles,news'

Programmatically:

use Ado::Command::generate::adoplugin;
my $vhost = Ado::Command::generate::adoplugin->new;
$vhost->run(-n => 'MyBlog', -c => 1, -t => 'articles,news');

DESCRIPTION

Ado::Command::generate::adoplugin generates directory structures for fully functional Ado-specific plugins with optional MVC set of files in the newly created plugin directory. The new plugin is generated in the current directory.

This is a core command, that means it is always enabled and its code a more complex example for learning to build new commands. You're welcome to fork it.

OPTIONS

Below are the options this command accepts, described in Getopt::Long notation.

n|name=s

Mandatory. String. The name of the plugin. The resulting full class name is the camelized version of Ado::Plugin::$$args{name}.

c|crud

Boolean. When set you can pass in addition all the arguments accepted by Ado::Command::generate::crud. It is mandatory to pass at least the --tables option so the controllers can be generated.

When generating a plugin: --controller_namespace defaults to app->routes->namespaces->[0]; --home_dir defaults to the plugin base directory; --lib defaults to lib in the plugin base directory; --model_namespace defaults to Ado::Model; --templates_root defaults to templates in the plugin base directory.

ATTRIBUTES

Ado::Command::generate::adoplugin inherits all attributes from Ado::Command::generate and implements the following new ones.

crud

#returns $self.
$self->crud(Ado::Command::generate::crud->new(app => $self->app))
#returns Ado::Command::generate::crud instance.
my $crud = $self->crud->run(%options);

An instance of Ado::Command::generate::crud. Used by Ado::Command::generate::adoplugin to generate routes for controllers and possibly others.

description

my $description = $command->description;
$command        = $command->description('Foo!');

Short description of this command, used for the command list.

usage

my $usage = $command->usage;
$command  = $command->usage('Foo!');

Usage information for this command, used for the help screen.

METHODS

Ado::Command::generate::adoplugin inherits all methods from Ado::Command and implements the following new ones.

run

$plugin->run(@ARGV);

Run this command.

SEE ALSO

Mojolicious::Command::generate::plugin, Ado::Command::generate::crud, Ado::Command::generate::apache2vhost, Ado::Command::generate::apache2htaccess, Ado::Command::generate, Mojolicious::Command::generate, Getopt::Long, Ado::Command Ado::Manual, Mojolicious, "DEPLOYMENT" in Mojolicious::Guides::Cookbook

AUTHOR

Красимир Беров (Krasimir Berov)

COPYRIGHT AND LICENSE

Copyright 2014 Красимир Беров (Krasimir Berov).

This program is free software, you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may copy, distribute and modify the software provided that modifications are open source. However, software that includes the license may release under a different license.

See http://opensource.org/licenses/lgpl-3.0.html for more information.