{"id":30232410,"url":"https://github.com/casdoor/quarkus-casdoor-auth","last_synced_at":"2026-04-15T18:01:32.194Z","repository":{"id":309910289,"uuid":"1031247330","full_name":"casdoor/quarkus-casdoor-auth","owner":"casdoor","description":"Quarkus extension for Casdoor authentication","archived":false,"fork":false,"pushed_at":"2025-08-14T12:55:32.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-14T14:33:40.455Z","etag":null,"topics":["auth","authentication","casdoor","java","jdk","oauth","oidc","quarkus","sso"],"latest_commit_sha":null,"homepage":"https://github.com/casdoor/casdoor","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/casdoor.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-03T10:39:44.000Z","updated_at":"2025-08-14T12:58:19.000Z","dependencies_parsed_at":"2025-08-14T14:33:50.333Z","dependency_job_id":"b00829da-17d4-4e7c-9751-b6cf3f4c32a2","html_url":"https://github.com/casdoor/quarkus-casdoor-auth","commit_stats":null,"previous_names":["casdoor/quarkus-casdoor-auth"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/casdoor/quarkus-casdoor-auth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fquarkus-casdoor-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fquarkus-casdoor-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fquarkus-casdoor-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fquarkus-casdoor-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/casdoor","download_url":"https://codeload.github.com/casdoor/quarkus-casdoor-auth/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fquarkus-casdoor-auth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31853279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["auth","authentication","casdoor","java","jdk","oauth","oidc","quarkus","sso"],"created_at":"2025-08-15T00:00:45.252Z","updated_at":"2026-04-15T18:01:32.136Z","avatar_url":"https://github.com/casdoor.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quarkus Casdoor Auth\n\nA Quarkus extension for integrating with Casdoor authentication and authorization service.\n\n## Overview\n\nQuarkus Casdoor Auth is an extension that integrates [Casdoor](https://www.casdoor.com) - an open-source Identity and Access Management (IAM) solution - with Quarkus applications. This extension provides seamless authentication and authorization capabilities based on OAuth 2.0 / OIDC protocols.\n\n## Features\n\n- OAuth 2.0 / OIDC integration with Casdoor server\n- JWT token validation and processing\n- Automatic redirection to Casdoor login page for unauthenticated users\n- Configurable security policies\n- Public path exemptions for resources like health checks, metrics, etc.\n- User identity extraction and management\n- Native mode compatible\n\n## Installation\n\nAdd the extension to your project's `pom.xml`:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecasbin.casdoor\u003c/groupId\u003e\n    \u003cartifactId\u003equarkus-casdoor-auth\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Configuration\n\nConfigure the extension in your `application.properties` file:\n\n```properties\n# Casdoor server configuration\nquarkus.casdoor.endpoint=https://casdoor.example.org\nquarkus.casdoor.organization-name=example\nquarkus.casdoor.client-id=your-client-id\nquarkus.casdoor.client-secret=your-client-secret\nquarkus.casdoor.application-name=example-app\nquarkus.casdoor.certificate=path/to/certificate.pem\n\n# OIDC configuration\nquarkus.oidc.auth-server-url=${quarkus.casdoor.endpoint}\nquarkus.oidc.client-id=${quarkus.casdoor.client-id}\nquarkus.oidc.credentials.secret=${quarkus.casdoor.client-secret}\nquarkus.oidc.application-type=web-app\n\n# Security configuration (customize as needed)\nquarkus.http.auth.permission.public.paths=/,/health/*,/metrics/*,/openapi/*,/swagger-ui/*,/q/*\nquarkus.http.auth.permission.public.policy=permit\n\nquarkus.http.auth.permission.secured.paths=/api/*,/secured/*\nquarkus.http.auth.permission.secured.policy=authenticated\n```\n\n### Configuration Properties Reference\n\n| Property | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `quarkus.casdoor.endpoint` | The base URL of your Casdoor server | - | Yes |\n| `quarkus.casdoor.organization-name` | The organization name in Casdoor | - | Yes |\n| `quarkus.casdoor.client-id` | The client ID for your application | - | Yes |\n| `quarkus.casdoor.client-secret` | The client secret for your application | - | Yes |\n| `quarkus.casdoor.application-name` | The application name in Casdoor | - | Yes |\n| `quarkus.casdoor.certificate` | The certificate used to verify JWT tokens (file path or content) | - | Yes |\n| `quarkus.oidc.auth-server-url` | OIDC server URL (usually same as Casdoor endpoint) | ${quarkus.casdoor.endpoint} | No |\n\n## Usage\n\n### Basic Authentication\n\nOnce configured, the extension automatically integrates with the Quarkus security framework. Protected endpoints will require valid authentication tokens from Casdoor. Users accessing protected endpoints without authentication will be automatically redirected to the Casdoor login page.\n\n### Securing Endpoints\n\nYou can secure your endpoints using standard Jakarta Security annotations like `@RolesAllowed`, `@PermitAll`, and `@DenyAll`. The extension integrates with Quarkus security system to enforce these access controls.\n\n### Access to User Information\n\nYou can inject the `SecurityIdentity` interface to access information about the authenticated user, including the user's principal name, roles, and any additional attributes provided by Casdoor.\n\n### Customizing Authentication Logic\n\nFor advanced use cases, you can implement your own `CasdoorConfigResolver` interface to customize how the Casdoor configuration is resolved and provide dynamic configuration capabilities.\n\n## Security Policy\n\nThe extension implements `HttpSecurityPolicy` to control access to your application's endpoints. By default, the following paths are public and don't require authentication:\n\n- `/` (root path)\n- `/health/*` (health check endpoints)\n- `/metrics/*` (metrics endpoints)\n- `/openapi/*` (OpenAPI documentation)\n- `/swagger-ui/*` (Swagger UI)\n- `/q/*` (Quarkus dev UI paths)\n\nAll other paths require authentication unless explicitly configured as public in your `application.properties`.\n\n\n## License\n\nLicensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasdoor%2Fquarkus-casdoor-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcasdoor%2Fquarkus-casdoor-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasdoor%2Fquarkus-casdoor-auth/lists"}