cloudfoundry/uaa

CloudFoundry User Account and Authentication (UAA) Server

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 35 minutes ago
Added to GitGenius on August 13th, 2021
Created on February 7th, 2012
Open Issues & Pull Requests: 56 (+1)
Number of forks: 843
Total Stargazers: 1,638 (+0)
Total Subscribers: 148 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.1 days
Mean response time: 79.4 days
90th percentile: 256.7 days
Tracked items: 101

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 87% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 8% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 46
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 964 days
Stale 30+ days: 45
Stale 90+ days: 43

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 2

Top labels

  • accepted (372)
  • closed due to age (109)
  • unscheduled (60)
  • feature request (26)
  • bug (23)
  • documentation (22)
  • waiting-4-pr (11)
  • scheduled (10)

Detailed Description

The CloudFoundry User Account and Authentication Server is a multi-tenant identity management service written in Java that functions as both a dedicated OAuth2 provider and a standalone authentication service. It serves as the primary authentication and authorization layer for Cloud Foundry deployments while remaining available for independent use.

The UAA Server implements a comprehensive set of APIs including standard OAuth2 endpoints for authorization and token issuance, a login_info endpoint for querying required login prompts, a check_token endpoint allowing resource servers to validate access tokens, a token_key endpoint for obtaining verification keys, SCIM user provisioning endpoints, and partial OpenID Connect support for authentication and userinfo operations. The server supports three primary use cases: basic form login through a GET /login endpoint, OAuth2 token grant approval via the standard /oauth/authorize endpoint, and access token acquisition through the /oauth/token endpoint. Authentication can be performed by command line clients submitting credentials directly to the /oauth/authorize endpoint.

The repository is structured as a multi-project Gradle build containing the main uaa WAR project for deployment, a server JAR project implementing the REST API and UI including SCIM support, and a model JAR project shared between client and server components. The application runs as a Spring MVC webapp deployable to Tomcat or other containers, with the option to execute directly via Gradle tasks. Local development uses HSQLDB by default, though the system supports MySQL and PostgreSQL through configurable profiles. The codebase requires Java 25 and can be started with ./gradlew run listening on port 8080 at http://localhost:8080/uaa.

Testing infrastructure includes unit tests using HSQLDB by default, integration tests runnable through Docker containers with support for multiple database types, and the ability to run individual test classes or methods through Gradle. The project uses spring-restdocs for API documentation generation with Ruby and Slate for output formatting. The repository includes comprehensive documentation covering LDAP integration, token specifications, Kubernetes deployment, and testing procedures. Development can be performed with JDWP debugging support on port 5005, and the application supports TLS configuration through dedicated boot scripts.