Language setting not applied when signing in via SSO #10014

Closed
opened 2025-12-29 21:25:38 +01:00 by adam · 24 comments
Owner

Originally created by @salfers on GitHub (Jul 26, 2024).

Deployment Type

Self-hosted

NetBox Version

v4.0.7

Python Version

3.11

Steps to Reproduce

  1. Set your user language to something that differs from the automatically detected language
  2. Clear cookies
  3. Log into Netbox via Google SSO

Bonus: if you log in via password everything works correctly.

Expected Behavior

4. Language from user settings is applied

Observed Behavior

4. The automatically detected language is used

You can see that the language cookie is not being created:
grafik

Originally created by @salfers on GitHub (Jul 26, 2024). ### Deployment Type Self-hosted ### NetBox Version v4.0.7 ### Python Version 3.11 ### Steps to Reproduce 1. Set your user language to something that differs from the automatically detected language 2. Clear cookies 3. Log into Netbox via **Google** SSO Bonus: if you log in via password everything works correctly. ### Expected Behavior 4\. Language from user settings is applied ### Observed Behavior 4\. The automatically detected language is used You can see that the language cookie is not being created: ![grafik](https://github.com/user-attachments/assets/d34fde6a-7ce4-40c4-a420-da88532d0ff8)
adam added the type: bugstatus: needs ownerpending closurenetboxseverity: low labels 2025-12-29 21:25:38 +01:00
adam closed this issue 2025-12-29 21:25:38 +01:00
Author
Owner

@benhur1999 commented on GitHub (Jul 26, 2024):

I can confirm this behavior with external auth.

For reference, we have the following set in the netbox config:

REMOTE_AUTH_ENABLED = True
REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend'
REMOTE_AUTH_HEADER = 'HTTP_X_REMOTE_USER'

Environment: self-hosted, Netbox 4.0.7, Python 3.12

@benhur1999 commented on GitHub (Jul 26, 2024): I can confirm this behavior with external auth. For reference, we have the following set in the netbox config: ``` REMOTE_AUTH_ENABLED = True REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend' REMOTE_AUTH_HEADER = 'HTTP_X_REMOTE_USER' ``` Environment: self-hosted, Netbox 4.0.7, Python 3.12
Author
Owner

@m2martin commented on GitHub (Aug 1, 2024):

@salfers I checked it using AzureAD and cannot confirm/reproduce your behavior.

Was your user created by SSO or did it already exist?
Can you please also post your configuration parameters starting with REMOTE_AUTH_ (omit any sensitive data, of course)?

@m2martin commented on GitHub (Aug 1, 2024): @salfers I checked it using AzureAD and cannot confirm/reproduce your behavior. Was your user created by SSO or did it already exist? Can you please also post your configuration parameters starting with `REMOTE_AUTH_` (omit any sensitive data, of course)?
Author
Owner

@benhur1999 commented on GitHub (Aug 1, 2024):

@m2martin In my case the user already existed.
It had it's language selection in trhe user prefereneces set to English, but Netbox showed German upon login, which is (browser language default.
Deleteing the language settings and setting it to English again and then applying the perferences using the save buttons sets English for the current session.

I'm using the following configuration parameter settings:

REMOTE_AUTH_ENABLED = True
REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend'
REMOTE_AUTH_HEADER = 'HTTP_X_REMOTE_USER'
REMOTE_AUTH_AUTO_CREATE_USER = True
REMOTE_AUTH_DEFAULT_GROUPS = ['staff']
REMOTE_AUTH_DEFAULT_PERMISSIONS = {}
@benhur1999 commented on GitHub (Aug 1, 2024): @m2martin In my case the user already existed. It had it's language selection in trhe user prefereneces set to English, but Netbox showed German upon login, which is (browser language default. Deleteing the language settings and setting it to English again and then applying the perferences using the save buttons sets English for the current session. I'm using the following configuration parameter settings: ``` REMOTE_AUTH_ENABLED = True REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend' REMOTE_AUTH_HEADER = 'HTTP_X_REMOTE_USER' REMOTE_AUTH_AUTO_CREATE_USER = True REMOTE_AUTH_DEFAULT_GROUPS = ['staff'] REMOTE_AUTH_DEFAULT_PERMISSIONS = {} ```
Author
Owner

@m2martin commented on GitHub (Aug 2, 2024):

With REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend' set, I can partially reproduce it. I can see the first page being loaded with the browser's language but any subsequent request will be displayed in the language from the user's properties.
Can you confirm this behavior?

@m2martin commented on GitHub (Aug 2, 2024): With `REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend'` set, I can partially reproduce it. I can see the first page being loaded with the browser's language but any subsequent request will be displayed in the language from the user's properties. Can you confirm this behavior?
Author
Owner

@benhur1999 commented on GitHub (Aug 2, 2024):

@m2martin No, I cannot confirm the behavior. The language stays on the browser default and the user preferences have no impact.

What I did
1, open new Incognito-Tab in Chrome
2. open Netbox URL and authenticate using HTTP Auth
3. click on Devices ("Geräte")menu entry in the Devices ("Geräte") section
4. click on the Netbox logo menu

No change in language. I can only get it to switch to English (the users perference) by opening the user preferences and then Clicking "save"

@benhur1999 commented on GitHub (Aug 2, 2024): @m2martin No, I cannot confirm the behavior. The language stays on the browser default and the user preferences have no impact. What I did 1, open new Incognito-Tab in Chrome 2. open Netbox URL and authenticate using HTTP Auth 3. click on Devices ("Geräte")menu entry in the Devices ("Geräte") section 4. click on the Netbox logo menu No change in language. I can only get it to switch to English (the users perference) by opening the user preferences and then Clicking "save"
Author
Owner

@m2martin commented on GitHub (Aug 2, 2024):

I'm doing the same and can not confirm it. Can you please try it with v4.0.8? This is the most obvious difference between our tests.
(Maybe fixed with #16732)

@m2martin commented on GitHub (Aug 2, 2024): I'm doing the same and can not confirm it. Can you please try it with v4.0.8? This is the most obvious difference between our tests. (Maybe fixed with #16732)
Author
Owner

@benhur1999 commented on GitHub (Aug 2, 2024):

@m2martin I'm running 4.0.8 since a few days. There was no change in behavior between 4.0.8 and 4.0.7.

@benhur1999 commented on GitHub (Aug 2, 2024): @m2martin I'm running 4.0.8 since a few days. There was no change in behavior between 4.0.8 and 4.0.7.
Author
Owner

@leo-pempera commented on GitHub (Aug 2, 2024):

We are having the same issue.
Browser language is German, but netbox DEFAULT_LANGUAGE is set to en-us.
Upon login with SSO netbox is in german, not only the first site after login.
In the user settings the language is set to english. Upon saving them without changing anything the correct language is applied.
This resets every few days and the user has to change apply the user settings again.

@leo-pempera commented on GitHub (Aug 2, 2024): We are having the same issue. Browser language is German, but netbox DEFAULT_LANGUAGE is set to en-us. Upon login with SSO netbox is in german, not only the first site after login. In the user settings the language is set to english. Upon saving them without changing anything the correct language is applied. This resets every few days and the user has to change apply the user settings again.
Author
Owner

@benhur1999 commented on GitHub (Aug 2, 2024):

FWIW, I also have set DEFAULT_LANGUAGE = 'en-us'

@benhur1999 commented on GitHub (Aug 2, 2024): FWIW, I also have set `DEFAULT_LANGUAGE = 'en-us'`
Author
Owner

@m2martin commented on GitHub (Aug 2, 2024):

I think, I found it. Is LOGIN_PERSISTENCE = False?

@m2martin commented on GitHub (Aug 2, 2024): I think, I found it. Is `LOGIN_PERSISTENCE = False`?
Author
Owner

@benhur1999 commented on GitHub (Aug 2, 2024):

@m2martin Yes, I have LOGIN_PERSISTENCE = False

Other settings:

LOGIN_REQUIRED = True
LOGIN_TIMEOUT = None
@benhur1999 commented on GitHub (Aug 2, 2024): @m2martin Yes, I have `LOGIN_PERSISTENCE = False` Other settings: ``` LOGIN_REQUIRED = True LOGIN_TIMEOUT = None ```
Author
Owner

@m2martin commented on GitHub (Aug 4, 2024):

@arthanson I have a fix ready. You can assign it to me.

Root cause:
Language cookies will only be set on regular logins by the login view or renewed when having LOGIN_PERSISTENCE=True.
Setting the cookie in every workflow for every possible authentication method (local, OAuth, LDAP, etc.) is hard to maintain.
With the fix the language handling was moved to the CoreMiddleware to have it processed independent from the authentication method/backend.

@m2martin commented on GitHub (Aug 4, 2024): @arthanson I have a fix ready. You can assign it to me. Root cause: Language cookies will only be set on regular logins by the login view or renewed when having `LOGIN_PERSISTENCE=True`. Setting the cookie in every workflow for every possible authentication method (local, OAuth, LDAP, etc.) is hard to maintain. With the fix the language handling was moved to the `CoreMiddleware` to have it processed independent from the authentication method/backend.
Author
Owner

@jeremystretch commented on GitHub (Aug 10, 2024):

@m2martin I've assigned this to you, thanks.

@jeremystretch commented on GitHub (Aug 10, 2024): @m2martin I've assigned this to you, thanks.
Author
Owner

@uRhaineWork commented on GitHub (Nov 28, 2024):

Was this resolved system level? I Have nbx 4.1.7 on Ubuntu 22.04 lts and the problem still exists.

@uRhaineWork commented on GitHub (Nov 28, 2024): Was this resolved system level? I Have nbx 4.1.7 on Ubuntu 22.04 lts and the problem still exists.
Author
Owner

@github-actions[bot] commented on GitHub (Apr 24, 2025):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide.

@github-actions[bot] commented on GitHub (Apr 24, 2025): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. **Do not** attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our [contributing guide](https://github.com/netbox-community/netbox/blob/main/CONTRIBUTING.md).
Author
Owner

@github-actions[bot] commented on GitHub (May 25, 2025):

This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.

@github-actions[bot] commented on GitHub (May 25, 2025): This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.
Author
Owner

@ISNL-PimP commented on GitHub (Jun 13, 2025):

Can this issue thread be revived? The issue is still present.
When I sign in using SSO, my NetBox display language is reset to my browser display language. If I open NetBox' settings, the language setting is still displayed as 'English' while the UI is in Dutch.

Image

@ISNL-PimP commented on GitHub (Jun 13, 2025): Can this issue thread be revived? The issue is still present. When I sign in using SSO, my NetBox display language is reset to my browser display language. If I open NetBox' settings, the language setting is still displayed as 'English' while the UI is in Dutch. ![Image](https://github.com/user-attachments/assets/df4be336-69bb-4828-9f1d-45ab93c3d2bc)
Author
Owner

@jeremystretch commented on GitHub (Jun 15, 2025):

@ISNL-PimP this issue was closed for inactivity as the initial PR was not accepted. Would you like to volunteer to own this bug and submit a fix?

@jeremystretch commented on GitHub (Jun 15, 2025): @ISNL-PimP this issue was closed for inactivity as the initial PR was not accepted. Would you like to volunteer to own this bug and submit a fix?
Author
Owner

@m2martin commented on GitHub (Jun 15, 2025):

@jeremystretch There is a closed PR #16995 - shall we go that way? If yes, I may do a new attempt for the current version.
It has been too long ago, so I'll have to do it from scratch - at least to understand the problem. But I can remember that the suggested change was not accepted.

@m2martin commented on GitHub (Jun 15, 2025): @jeremystretch There is a closed PR [#16995](https://github.com/netbox-community/netbox/pull/17122) - shall we go that way? If yes, I may do a new attempt for the current version. It has been too long ago, so I'll have to do it from scratch - at least to understand the problem. But I can remember that the suggested change was not accepted.
Author
Owner

@jeremystretch commented on GitHub (Jun 15, 2025):

I'm not in a position to offer any direction unfortunately. But this issue does need a volunteer committed to delivering a fix before it can be reopened.

@jeremystretch commented on GitHub (Jun 15, 2025): I'm not in a position to offer any direction unfortunately. But this issue does need a volunteer committed to delivering a fix before it can be reopened.
Author
Owner

@m2martin commented on GitHub (Jun 23, 2025):

Hi @jeremystretch,

I've done a lot of tests today and was able to reproduce the behavior, even in the current version.

There are corner cases depending on which authentication method is used. My old solution which moves the language activation to the middleware (in a slightly varying way) does solve the issue.

Tested it with:

  • Local auth
  • Remote auth (OAuth2, EntraID)
  • Remote auth (HTTP header auth)

I'd volunteer to present my new version of the fix in a new PR.

@m2martin commented on GitHub (Jun 23, 2025): Hi @jeremystretch, I've done a lot of tests today and was able to reproduce the behavior, even in the current version. There are corner cases depending on which authentication method is used. My old solution which moves the language activation to the middleware (in a slightly varying way) does solve the issue. Tested it with: - Local auth - Remote auth (OAuth2, EntraID) - Remote auth (HTTP header auth) I'd volunteer to present my new version of the fix in a new PR.
Author
Owner

@m2martin commented on GitHub (Jul 2, 2025):

Due to the contribution guidelines I did not open a PR without being assigned to an open issue.
Can we please re-open the issue to bring the fix forward?

@m2martin commented on GitHub (Jul 2, 2025): Due to the contribution guidelines I did not open a PR without being assigned to an open issue. Can we please re-open the issue to bring the fix forward?
Author
Owner

@vink78 commented on GitHub (Sep 30, 2025):

I can confirm your issue is still present on v4.4.1.

A rebased version of 526fb7c953 fixes the issue.

@vink78 commented on GitHub (Sep 30, 2025): I can confirm your issue is still present on v4.4.1. A rebased version of https://github.com/m2martin/netbox/commit/526fb7c95325091abf62be18a3f82c9584886d9e fixes the issue.
Author
Owner

@joeladria commented on GitHub (Nov 19, 2025):

possible to reopen this issue since it sounds like we have a working fix that just needs the issue assigned to it?

@joeladria commented on GitHub (Nov 19, 2025): possible to reopen this issue since it sounds like we have a working fix that just needs the issue assigned to it?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#10014