Skip to content

Make Controller Path Mappings Configurable #135

@devondragon

Description

@devondragon

Overview

Currently, the framework's controllers use hardcoded paths for their RequestMapping annotations. This enhancement will make all controller paths configurable through application.yml, allowing consuming applications to customize the location of user management pages and actions without modifying framework code.

Why?

Applications using this framework often need to:

  • Integrate user management into their existing URL structure
  • Match their organization's URL naming conventions
  • Support multiple applications with different path structures
  • Handle path conflicts with existing endpoints
  • Support different URL paths for different environments

By making paths configurable, we:

  • Give applications more flexibility in URL structure
  • Reduce the need for URL rewriting or proxy configurations
  • Make the framework more adaptable to different architectures
  • Allow for easier integration into existing applications

Proposed Changes

All current hardcoded paths in controllers should be replaced with configurable values:

  • Login page and processing
  • Registration flows
  • Password reset
  • Profile management
  • User verification endpoints
  • OAuth callback URLs
  • All other user management related endpoints

Acceptance Criteria

  • All controller RequestMapping paths use configuration values
  • Default values maintain current behavior
  • Configuration property names follow consistent naming convention
  • Documentation updated to reflect new configuration options
  • Demo application updated to showcase path customization
  • No breaking changes when using default configuration
  • Proper validation of configured paths
  • Clear error messages for invalid configurations
  • Migration guide for existing applications
  • Tests updated to use configuration values
  • All existing tests passing

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions