Skip to content

Allow google login - #1600

Open
rowleya wants to merge 21 commits into
masterfrom
allow_google_login
Open

rowleya wants to merge 21 commits into
masterfrom
allow_google_login

Conversation

@rowleya

@rowleya rowleya commented Nov 4, 2026

Copy link
Copy Markdown
Member

Allows Google sign in to spalloc to align better with authentication of jupyter service. This will allow us to slowly transition away from the unauthenticated system we currently have. Note that Google users will potentially have to have manual quota updates though as this isn't covered by EBRAINS.

Extends #1581

Fixes #1297

@rowleya
rowleya requested a review from Christian-B as a code owner November 4, 2026 08:18
Copilot AI balanced review requested due to automatic review settings November 4, 2026 08:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Critical identity-mapping flaws can cause distinct Google users to share jobs and quota, while configuration and dependency errors break bearer authentication and prevent unittest-profile startup.

5 open issues
What changed in this PR

This PR generalizes spalloc’s EBRAINS-only authentication to support additional providers, including Google, aligning it with the Jupyter service and supporting a gradual move away from unauthenticated access.

Changes:

  • Adds provider-specific login buttons, configuration, and token introspection.
  • Updates authentication-session handling, exposes an access-token endpoint, and preserves authorization during background job creation.
  • Broadens client CSRF-token matching and revises test configuration.
File Description
SpiNNaker-comms/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​client/​ClientSession.java Accepts additional characters in CSRF tokens.
SpiNNaker-allocserv/​src/​test/​resources/​application-unittest.yml Revises test-profile authentication settings and indentation.
SpiNNaker-allocserv/​src/​main/​webapp/​WEB-INF/​views/​login.jsp Renders a login button for each provider.
SpiNNaker-allocserv/​src/​main/​resources/​application.yml Moves OAuth2 settings into provider registrations and adds introspection configuration.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​web/​SystemControllerImpl.java Supplies configured providers to the login page.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​web/​SpallocServiceImpl.java Exposes access tokens and passes authorization into background job creation.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​web/​SpallocServiceAPI.java Declares the token-retrieval endpoint.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​web/​ControllerUtils.java Generalizes login constants for multiple providers.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​SpallocProperties.java Introduces per-provider introspection properties.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​ServiceConfig.java Adds a base URL helper.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​security/​SecurityConfig.java Adds multi-provider introspection and revises session and access policies.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​security/​LocalAuthProviderImpl.java Retains OAuth2 access tokens and adjusts authentication logging.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​security/​BasicAuthEntryPoint.java Removes provider-specific scopes from bearer challenges.
SpiNNaker-allocserv/​src/​main/​java/​uk/​ac/​manchester/​spinnaker/​alloc/​security/​AppAuthTransformationFilter.java Explicitly saves security contexts and creates sessions when needed.

Review effort: Balanced

@coveralls

coveralls commented Nov 4, 2026 •

Copy link
Copy Markdown

Coverage Status

coverage: 36.329% (+0.01%) from 36.319% — allow_google_login into master

@Christian-B Christian-B left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found at a quick glance.

@rowleya
rowleya added this pull request to the merge queue Nov 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to invalid changes in the merge commit Nov 9, 2026
@rowleya
rowleya added this pull request to the merge queue Nov 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to invalid changes in the merge commit Nov 9, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Google Authentication

4 participants