{"id":20930699,"url":"https://github.com/intermine/intermine-authorization-server","last_synced_at":"2026-01-04T04:02:41.228Z","repository":{"id":39956536,"uuid":"188059343","full_name":"intermine/intermine-authorization-server","owner":"intermine","description":null,"archived":false,"fork":false,"pushed_at":"2022-05-20T21:03:14.000Z","size":1763,"stargazers_count":3,"open_issues_count":5,"forks_count":1,"subscribers_count":7,"default_branch":"dev","last_synced_at":"2025-03-16T11:33:58.060Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/intermine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-22T14:50:22.000Z","updated_at":"2020-01-17T16:49:53.000Z","dependencies_parsed_at":"2022-08-18T23:30:27.922Z","dependency_job_id":null,"html_url":"https://github.com/intermine/intermine-authorization-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Fintermine-authorization-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Fintermine-authorization-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Fintermine-authorization-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Fintermine-authorization-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intermine","download_url":"https://codeload.github.com/intermine/intermine-authorization-server/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254013134,"owners_count":21999365,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T21:35:48.169Z","updated_at":"2026-01-04T04:02:36.187Z","avatar_url":"https://github.com/intermine.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# InterMine Authorization Server\n\n\u003cimg src=\"https://github.com/ry007/intermine-authentication-server/blob/dev/src/main/resources/static/new_logo.png\" align=\"right\"\n     title=\"Intermine Logo\" width=\"170\" height=\"150\"\u003e\n\n\nThis is an InterMine Authorization Server built with Spring Boot 2.x OAuth2 which allows to access all 30 InterMine instances using a single account.\n\n\n\n\n\n\n\n### Features\n\n* OAuth2.0 Configured Server\n* User login \u0026 registration\n* Client registration\n* User dashboard\n* Admin dashboard\n* Migration Supported\n* Cross domain SSO Supported\n* Easy configurations\n* More Secure\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.\n\n### Prerequisites\n\nWhat things you need to install the software and how to install them:\n\n* [Postgresql](https://www.postgresql.org/download/linux/ubuntu/) - Database\n* IDE- OPTIONAL\n\n## Installing\n\nA step by step series of examples that tell you how to get a development env running.\n\n### STEP-1 Database Configuration\n\nCreate your own database in postgresql.\n\n```\nCREATE DATABASE \u003cyour database name\u003e ;\n```\nCreate a user and grant access to that user.\n\n```\nCREATE USER \u003cyour user\u003e WITH ENCRYPTED PASSWORD \u003c'yourpass'\u003e;\nGRANT ALL PRIVILEGES ON DATABASE \u003cyour dbname\u003e TO \u003cyour user\u003e;\n```\n\nUpdate these configurations in application.yml file of project inside resource directory.\n\n\nNOTE: Resource directory contains a predefined script for database table creation so no need to create any tables on your own.  \n\n### STEP-2 Run the application\n\nClone this repo on your local system and follow these commands:\n\ni. Change directory to this project\n\n```\ncd intermine-authorization-server/\n```\n\nii. Build using mvn\n\n```\nmvn pacakage\n```\n\niii. Run jar file using java\n\n```\njava -jar target/authserver-0.0.1-SNAPSHOT.jar\n```\n\n### STEP-3 Admin credential/Account\n\nBelow queries will create an Admin account with following credentials:\n```\nINSERT INTO role(id, name) VALUES (1, 'ROLE_ADMIN');\n```\n```\nINSERT INTO users(user_id, name, username, password, email, enabled, accountnonexpired, credentialsnonexpired, accountnonlocked) VALUES (2, 'Admin','admin','73f841d7321aa6ae28a8d8989d100416', 'admin@intermine.org', true, false, false, false);\n```\n```\nINSERT INTO role_user(row_id, id, user_id) VALUES (2, 1, 2);\n```\n\n| Admin Username  | Admin Password  |\n|-----------------|-----------------|\n|      admin      |    Admin@123    |\n\n\n## Testing the App\n\n### A. Intermine Authorization Server\n\n1. Create a New account on IM auth server\n\nOpen http://localhost:8282/intermine in any web browser. You will be redirected to home page of authorization server from where you can choose profile from the menu bar. Once you open your profile you will be redirected to login screen page and can create a new account on this IM auth server.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/login_screen.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\n2. User Dashboard\n\nOnce you logged in successfully then will be redirected to your dashboard from where you can manage all your client and your profile. You can register a new client or can also manage your already registered clients. From dashboard you can also change your account password.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/user_dashboard.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\n3. Register a new client\n\nOnly those user can register a client on InterMine auth server which are having account on it. Click on the register client bar from your dashboard and fill up the client registration form with some basic required information\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/client_registration.png\" alt=\"Intermine Login\" width=\"250\" height=\"400\"\u003e\n\u003c/p\u003e\n\nYou will get your client id and secret once InterMine admin verify it.\n\n4. Admin Dashboard\n\nYou can login from same login page with the admin account credentials and on successful login you will be redirected to admin dashboard.\nHere are some features of admin dashboard:\n\n* Can manage all the user accounts\n* Can manage all the registered clients\n* Can verify the clients\n\nVerify any registered client with a simple click on verify button\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/admin_verify.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\n5. Client Management\n\nUser can manage registered client and access their credentials too from dashboard and is also able to update \u0026 delete the clients.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/client_management.png\" alt=\"Intermine Login\" width=\"250\" height=\"400\"\u003e\n\u003c/p\u003e\n\n### B. Configuring IM Auth Server On client/Mine\n\n1. Client credentials:\n\nOnce you get your client credentials i.e client id and secret then add following lines in your mine property file.\nFor example we can add these in biotestmine.properties file:\n\n```\noauth2.providers = IM\n```\n```\noauth2.IM.client-id = 6870ca9d7e8545e606e26d51fc5b810b53952eaf.apps.intermine.com\n```\n```\noauth2.IM.client-secret = 3fb6de6cef8a94c52b4e33e06802e56ce3ebc809\n```\n\nThat's all!!! Deploy your mine and then anyone can login in your mine with IM auth server.\n\n2. You can choose IM from the dropdown to login with IM account\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/login_with_mine.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\n3. Migration\n\nOnce you logged in first time on any mine with the IM account, will be redirected to a merge pop up where you will be asked to merge your previous account of mine if have any otherwise can go with No.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/merge_popup.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\n\ni. If you don't have any previous account you can go with NO. Once you taps on No then you will be asked to give access of your name and email to the client/mine.\nIf you allow it then you will be successfully logged in to the mine otherwise deny will not logged you in to mine\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/authorize_popup.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\n\nii. If you want to merge your pervious mine account with this new IM account then tap on YES and you will be redirected to merge form page of mine.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/rahul-y/intermine-authorization-server/blob/integration/src/main/resources/static/merge_form.png\" alt=\"Intermine Login\" width=\"500\"\u003e\n\u003c/p\u003e\n\nEnter your old mine account credentials and click on the merge account. Once you click on it then you will redirected back to IM auth server page where you will be asked to give access of your name and email to the mine. If you allow it then you will be successfully logged in to the mine otherwise deny will not logged you in to mine\n\n4. Cross Domain SSO\n\nOnce you logged in to any mine by IM account in your browser then you will be automatically logged in to all of the mine. If you already authorized other mines to access your name and email i.e have already an account on other mine then you will be automatically logged in to that mine if you open it in another tab.\n\n## Running the tests\n\n\n### Break down into end to end tests\n\n```\nexample\n```\n\n### And coding style tests\n\n```\n example\n```\n\n## Deployment\n\nDeploy this on a live system\n\n## Built With\n\n* [Spring Boot](https://spring.io/projects/spring-boot) - Used to create stand-alone, production-grade Spring based Applications.\n* [Maven](https://maven.apache.org/) - Dependency Management\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](https://gist.github.com/url-of-file) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## Versioning\n\n\n## Authors\n\n* **Intermine** - *Initial work* - [ry007](https://github.com/ry007)\n\nSee also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the GNU Lesser General Public License - see the [LICENSE.md](LICENSE.md) file for details\n\n## Acknowledgments\n\n* Hat tip to anyone whose code was used\n* Inspiration\n* etc\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintermine%2Fintermine-authorization-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintermine%2Fintermine-authorization-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintermine%2Fintermine-authorization-server/lists"}