Giter VIP home page Giter VIP logo

redirecterrors's Introduction

Redirect On Errors

A Traefik middleware plugin to redirect to another URL on specific HTTP statuses.

Similar to the built-in Errors middleware, but this generates a HTTP 302 redirect, instead of an internal proxy action.

It was created to make ForwardAuth easier to use.

Example Configuration

Example configuration with ForwardAuth:

# Static configuration

experimental:
  plugins:
    redirectErrors:
      moduleName: github.com/indivisible/redirecterrors
      version: v0.1.0
# Dynamic configuration

http:
  routers:
    secured-router:
      rule: host(`secured.localhost`)
      service: service-secured
      middlewares:
        - auth-redirect
    auth-router:
      rule: host(`auth.localhost`)
      service: service-auth
      middlewares:
        - my-plugin

  services:
    service-secured:
      loadBalancer:
        servers:
          - url: http://localhost:5001/
    service-auth:
      loadBalancer:
        servers:
          - url: http://localhost:5002/

  middlewares:
    auth-redirect-error:
      plugin:
        redirectErrors:
          status:
            - "401"
          target: "http://auth.localhost/oauth2/sign_in?rd={url}"
          outputStatus: 302
    auth-check:
      forwardAuth:
        address: "http://localhost:5002/oauth2/auth"
        trustForwardHeader: true
    auth-redirect:
      chain:
        - auth-redirect-error
        - auth-check

Configuration Options:

  • status: list of statuses / status ranges (eg 401-403). See the Error middleware's description for details.
  • target: redirect target URL. {status} will be replaced with the original HTTP status code, and {url} will be replaced with the url-safe version of the original, full URL.
  • outputStatus: HTTP code for the redirect. Default is 302.

redirecterrors's People

Contributors

indivisible avatar

Stargazers

Ken Vella avatar  avatar  avatar

Watchers

 avatar

Forkers

kjvellajr

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.