GithubHelp home page GithubHelp logo

catalyst-plugin-debugcookie's Introduction

NAME
    Catalyst::Plugin::DebugCookie - Catalyst plugin to turn on debug when a
    secure cookie and a query param are set

SYNOPSIS
     # In your application class define the plugin
     use Catalyst qw/DebugCookie/;

     # In your controller, you must define an action method to set the cookie.
     # This should be secured by htpasswd or similar methods
     use Catalyst::Plugin::DebugCookie::Util qw/make_debug_cookie/;
     sub secure_debug_cookie :Path(/this/is/not/public) { 
            my ($self, $c, $username) = @_; 

            # this method is defined for you in the provided util class
            make_debug_cookie($c, $username);
            $c->res->body("Cookie set"); 
     }

     # Your configuration in perl  
     __PACKAGE__->config->{Plugin::DebugCookie} = {
            secret_key  => '001A4B28EE3936',
            cookie_name => 'mycookie',
     }

     # Or your configuration in L<Config::General> format 
     <Plugin::DebugCookie>
        secret_key 001A4B28EE3936
        cookie_name my_secure_debug_cookie 
     </Plugin::DebugCookie>

     # In your browser first set the cookie with your username
     http:///this/is/not/public/<username>

     # Finally, in your browser view a page with the parameter 'is_debug'
     # set with the same username used when generating the cookie.
     # The plugin will turn on debug mode for this request
     http://yourserver?is_debug=<username>

DESCRIPTION
    Catalyst plugin to turn debug on a per request basis, typically used in
    a production environment where debug is off by default. Two things must
    happen to enable debug. First, you have to go to a secure (ideally
    password protected) URL to set the cookie, which is a hash of your
    secret key and username. Secondly, you have to hit the page with the
    ?is_debug=<username> query parameter.

    Note that this plugin will only work when catalyst debug is off since
    CATALYST_DEBUG=1 injects a 'sub debug { 1 }' into MyApp::, therefore the
    overloaded debug in this plugin would not be executed.

CONFIGURATION
  secret_key
    This is a key hashed with a username to provide cookie security

  cookie_name
    Sets the name of the cookie (optional). Defaults to 'debug_cookie'

EXTENDED METHODS
    The following methods are extended from the main Catalyst application
    class.

  prepare
    Sets 'X-Catalyst-Debug' header and enables stats when debug is on

  debug
    Determines whether debug should be set based on cookie and query param

  use_stats
    Determines whether use_stats should be set based on cookie and query
    param

METHODS
  valid_debug_mode
    Checks for is_debug query param and checks for a valid cookie and
    returns true if both are validated

AUTHOR
     John Goulah       <[email protected]>

COPYRIGHT
    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

catalyst-plugin-debugcookie's People

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.