Access Middleware

Access middleware is used to restrict access to specific routes or route paths. This helps secure your application by preventing unauthorized access to sensitive endpoints.

Key Features

  • Rule: To block all subpaths of a route, append /* to the path explicitly.

  • Tip: Always test configurations thoroughly in a staging environment before applying them to production.


Example: Access Middleware Configuration

The following example demonstrates how to define blocked paths using the access middleware:

# Middleware configuration to block specific paths
- name: api-blocked-paths
  type: access
  paths:
    - /swagger-ui       # Blocks only /swagger-ui
    - /v2/swagger-ui    # Blocks only /v2/swagger-ui
    - /api-docs/*       # Explicitly blocks /api-docs and all subpaths

Explanation:

  • /swagger-ui: Only the exact path /swagger-ui is blocked.
  • /v2/swagger-ui: Only the exact path /v2/swagger-ui is blocked.
  • /api-docs/*: The path /api-docs and all subpaths (e.g., /api-docs/v1) are blocked due to the /* wildcard.

Applying Access Middleware to Routes

Here’s how to attach the access middleware to a specific route:

routes:
  - path: /protected
    name: protected
    rewrite: /
    destination: 'https://example.com'
    methods: [POST, PUT, GET]
    healthCheck: {}
    cors: {}
    middlewares:
      - api-blocked-paths

Best Practices

  • Consistency: Ensure all sensitive paths are accounted for in the middleware configuration.
  • Granularity: Use /* judiciously to block subpaths where necessary.
  • Testing: Validate all configurations in a non-production environment before deployment.

By adhering to these guidelines, you can effectively use access middleware to secure your application routes.