Skip to content

Link to DID webpage only works if already authenticated due to callbackUrl decoding #794

Description

@barskern

Description

Following links directly to a DID (if someone copied the link from their browser to share) only works if the browser is already authenticated against Rucio. If the user clicking the link is not already authenticated, the DID name path component (which is URI-encoded) is decoded somehow during the 307 redirects and hence the resulting callbackUrl passed to the login page is invalid. This causes the link to show a 404 after the login flow is completed.

Following images show the path component being directly encoded before hitting the 307 redirects from Rucio to perform login. The first screenshot shows the link in the request before the first redirect to the /api/auth-endpoint.

Image

The second screenshot show the decoded component and hence invalid URL in the callbackUrl parameter.

Image

Steps to reproduce

  1. Ensure you are logged out of any Rucio instance web API.
  2. Follow a link to a DID webpage, such as:

https://xxx.rucioit.cern.ch/did/page/<scope>/<uri-encoded-name>

  1. Follow the login prompts.
  2. Get the 404 error due to invalid callbackUrl

Rucio Version

Client: WebUI, Server: 39.4.0

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    Size

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions