Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
lemonldap-ng
lemonldap-ng
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 260
    • Issues 260
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 6
    • Merge Requests 6
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • LemonLDAP NG
  • lemonldap-nglemonldap-ng
  • Issues
  • #1461

Closed
Open
Opened Jun 22, 2018 by Clément OUDOT@clement_oudotOwner

Remember Choice and other context settings before redirecting user to an external service

This issue is a proposal to find a better way to keep the user context before redirection on an external service.

For the moment we have a lot of code in all authentications modules to add the Choice param to the redirect URL. For example in LinkedIn:

    # Use authChoiceParam in redirect URL
    if ( $req->param( $self->conf->{authChoiceParam} ) ) {
        $callback_url .= ( $callback_url =~ /\?/ ? '&' : '?' );
        $callback_url .= build_urlencoded( $self->conf->{authChoiceParam} =>
              $req->param( $self->conf->{authChoiceParam} ) );
    }

We have other parameters to keep before redirecting a user:

  • Origin URL (if redirection on portal was done by Handler)
  • Skin

I think we should have a single step in the code that will store these values in a local session and find a common way to restore them when user is back.

This can be applied at least to these authentication backends:

  • CAS
  • SAML
  • OpenID/OpenID Connect
  • Twitter
  • Facebook
  • LinkedIn

Using a cookie can be a good solution.

Assignee
Assign to
2.0.0
Milestone
2.0.0 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: lemonldap-ng/lemonldap-ng#1461