-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding users at runtime (test build of Shiro/JDBC) #665
Comments
I've tagged this with DR3 milestone because this would solve a specific problem we are likely to encounter once we accept multiple users. Specifically, being able to add a new users to a running live system without interrupting the service for existing users by having to restart Zeppelin. |
Resources for configuring Shiro to use JDBC for authentication. |
Copy/paste discussion from Slack
|
I've been working on this in https://github.com/stvoutsin/aglais/commits/feature/shiro-jdbc/ |
Part of the motivation fro this is to be able to add 100+ users accounts to a test deployment at runtime. |
Yay, this is all good stuff to know. |
Do we need to make the database password a secret (as in a long term thing stored in a vault) ? Three things need to know the database password
In which case, use People are using Vault for everything, which is a bad idea. |
I agree, if we go with a local database within the Zeppelin node, than we don't need to store the credentials. We'd probably only need Vault if we are running a centralised database |
This should be completed in the last MR (#687) |
I'd like to see this working before we close it. I haven't had time to setup a test system and see it running, sorry. Hope to get a chance to do it next week. |
Created a separate issue for saving the MariaDB credentials in a text file #689. |
This is all done. |
The multi-user testing has show that having to restart Zeppelin every time we want to add a new user account will cause problems for a live service.
It is worth spending some time (2days?) investigating ways of adding users dynamically, without restarting the system. A good candidate for this would probably be a SQL/JDBC component for Shiro, storing the account details in a database.
We have discussed this a few times and it has been on the back burner since 2020 (#166), but it hasn't had a strong use case until now. Probably because we were looking at it as a central store for accounts shared between all deployments as a way to solve the 'secret problem'.
This is looking to solve a different use case, the source of the account data would be in a text (JSON) file in the secret store, loaded into a local database at deployment time. At runtime Shiro would connect to the local database to authenticate users. New users would be added to both the upstream text (JSON) file and inserted into the live database. This would enable us to add new user accounts (human and test) without restarting a running system.
First step is to deploy a test build with Shiro connected to a small test database to see how easy it would be to configure.
The text was updated successfully, but these errors were encountered: