MCPcopy
hub / github.com/apereo/cas

github.com/apereo/cas @v7.3.7.2 sqlite

repository ↗ · DeepWiki ↗ · release v7.3.7.2 ↗
31,024 symbols 184,027 edges 7,525 files 11,033 documented · 36%
README

Central Authentication Service (CAS)

License Slack Support

Introduction

Welcome to the home of the Central Authentication Service project, more commonly referred to as CAS. CAS is an enterprise multilingual identity provider and single sign-on solution for the web and attempts to be a comprehensive platform for your authentication and authorization needs.

CAS is an open and well-documented authentication protocol. The primary implementation of the protocol is an open-source Java server component by the same name hosted here, with support for a plethora of additional authentication protocols and features such as SAML2, OpenID Connect, MFA, and many more.

Contributions

Contributing Guide Open Pull Requests

If you have already identified an enhancement or a bug, it is STRONGLY recommended that you submit a pull request to address the case. There is no need for special ceremony to create separate issues. The pull request IS the issue and it will be tracked and tagged as such.

Contributors

Documentation Javadoc

Version Reference
Link
Link
Link

Additional resources are available as follows:

Getting Started

Maven Central GitHub Releases

It is recommended to deploy CAS locally using the WAR Overlay method. Cloning or downloading the CAS codebase is ONLY required if you wish to contribute to the development of the project.

We recommend that you review this page to get started with your CAS deployment.

Features

The following features are supported by the CAS project:

  • CAS v1, v2 and v3 Protocol
  • SAML v1 and v2 Protocol
  • OAuth v2 Protocol
  • OpenID Connect Protocol
  • WS-Federation Passive Requester Protocol
  • Authentication via JAAS, LDAP, RDBMS, X.509, Radius, SPNEGO, JWT, Remote, Apache Cassandra, Trusted, BASIC, MongoDB and more.
  • Delegated (social) authentication to external identity providers such as WS-FED, SAML2, OpenID Connect, OAuth CAS and more.
  • Authorization via Heimdall, OpenFGA, OPA, ABAC, Time/Date, REST, Internet2's Grouper and more.
  • HA clustered deployments via Hazelcast, JPA, Memcached, Apache Ignite, MongoDB, Redis, DynamoDb, and more.
  • Application registration backed by JSON, LDAP, YAML, Google Cloud, JPA, MongoDB, DynamoDb, Redis and more.
  • Multifactor authentication via Duo Security, Simple MFA, YubiKey, RSA, Google Authenticator, WebAuthn FIDO2 and more.
  • Administrative UIs to manage logging, monitoring, statistics, configuration, client registration and more.
  • Email and SMS notification options via Twilio, Mailgun, SendGrid, Amazon SES and more.
  • User attribute consent and management via LDAP, RDBMS, MongoDB, DynamoDb and more.
  • Global and per-application user interface theme and branding.
  • Password management and password policy enforcement.
  • Integration options with Apache Syncope, SCIM, Swagger, Shibboleth IdP, Keycloak, Okta, and more.
  • Deployment options using Apache Tomcat, Jetty, Undertow, packaged and running as Docker containers.

The foundations of CAS are built upon: Spring Boot and Spring Cloud.

Development Revved up by Develocity codecov

Support

Apereo CAS is 100% free open source software managed by Apereo, licensed under Apache v2. Our community has access to all releases of the CAS software with absolutely no costs. We welcome contributions from our community of all types and sizes. The time and effort to develop and maintain this project is dedicated by a group of volunteers and contributors. If you (or your employer) benefit from this project, please consider becoming a Friend of Apereo and contribute.

Commercial support options may be found here.

Extension points exported contracts — how you extend this code

CasProtocolViewFactory (Interface)
This is CasProtocolViewFactory. @author Misagh Moayyed @since 6.2.0 [29 implementers]
core/cas-server-core-validation-api/src/main/java/org/apereo/cas/validation/CasProtocolViewFactory.java
UserAuthenticationResourceEntityResponseFactory (Interface)
This is UserAuthenticationResourceEntityResponseFactory. @author Misagh Moayyed @since 5.2.0 [64 implementers]
core/cas-server-core-rest-api/src/main/java/org/apereo/cas/rest/factory/UserAuthenticationResourceEntityResponseFactory.java
ThrottledRequestResponseHandler (Interface)
This is ThrottledRequestResponseHandler. @author Misagh Moayyed @since 6.0.0 [33 implementers]
core/cas-server-core-authentication-throttle/src/main/java/org/apereo/cas/throttle/ThrottledRequestResponseHandler.java
CasWebflowExceptionHandler (Interface)
This is CasWebflowExceptionHandler. @author Misagh Moayyed @param the type parameter @since 6.1.0 [9 implementers]
core/cas-server-core-webflow-api/src/main/java/org/apereo/cas/web/flow/authentication/CasWebflowExceptionHandler.java
RegisteredServicePrincipalAccessStrategyEnforcer (Interface)
This is RegisteredServicePrincipalAccessStrategyEnforcer. @author Misagh Moayyed @since 7.2.0 [9 implementers]
core/cas-server-core-services-api/src/main/java/org/apereo/cas/services/RegisteredServicePrincipalAccessStrategyEnforcer.java
SmsSender (Interface)
This is SmsSender. @author Misagh Moayyed @since 5.1.0 [10 implementers]
core/cas-server-core-notifications-api/src/main/java/org/apereo/cas/notifications/sms/SmsSender.java
MultifactorAuthenticationDeviceProviderAction (Interface)
This is MultifactorAuthenticationDeviceProviderAction. @author Misagh Moayyed @since 6.6.0 [31 implementers]
core/cas-server-core-webflow-mfa-api/src/main/java/org/apereo/cas/web/flow/actions/MultifactorAuthenticationDeviceProviderAction.java
BannerContributor (Interface)
This is BannerContributor. @author Misagh Moayyed @since 6.6.0 [14 implementers]
core/cas-server-core-util-api/src/main/java/org/apereo/cas/util/spring/boot/BannerContributor.java

Core symbols most depended-on inside this repo

of
called by 4422
core/cas-server-core-util-api/src/main/java/org/apereo/cas/util/spring/beans/BeanSupplier.java
getId
called by 3451
api/cas-server-core-api-ticket/src/main/java/org/apereo/cas/ticket/Ticket.java
toString
called by 2613
api/cas-server-core-api-monitor/src/main/java/org/apereo/cas/monitor/CacheStatistics.java
put
called by 2556
support/cas-server-support-webauthn-core/src/main/java/com/yubico/core/WebAuthnCache.java
when
called by 2148
core/cas-server-core-util-api/src/main/java/org/apereo/cas/util/spring/beans/BeanSupplier.java
get
called by 1738
support/cas-server-support-webauthn-core/src/main/java/com/yubico/core/WebAuthnCache.java
map
called by 1651
core/cas-server-core-authentication-attributes/src/main/java/org/apereo/cas/authentication/PrincipalAttributesMapper.java
getName
called by 1423
core/cas-server-core-web-api/src/main/java/org/springframework/ui/context/Theme.java

Shape

Method 21,687
Class 8,052
Interface 617
Function 548
Enum 120

Languages

Java98%
TypeScript2%
Python1%

Modules by API surface

core/cas-server-core-web-api/src/main/java/org/apereo/cas/web/support/WebUtils.java138 symbols
support/cas-server-support-oauth/src/main/java/org/apereo/cas/config/CasOAuth20Configuration.java119 symbols
api/cas-server-core-api-configuration-model/src/main/java/org/apereo/cas/configuration/model/support/saml/sps/SamlServiceProviderProperties.java109 symbols
support/cas-server-support-thymeleaf/src/main/resources/static/js/inwebo/client.js79 symbols
support/cas-server-support-oidc/src/main/java/org/apereo/cas/config/OidcConfiguration.java79 symbols
support/cas-server-support-thymeleaf/src/main/resources/static/js/palantir.js72 symbols
support/cas-server-support-oauth/src/test/java/org/apereo/cas/support/oauth/web/endpoints/OAuth20AccessTokenEndpointControllerTests.java63 symbols
support/cas-server-support-inwebo-mfa/src/main/java/org/apereo/cas/support/inwebo/service/soap/generated/LoginQueryResult.java54 symbols
core/cas-server-core-webflow-mfa/src/main/java/org/apereo/cas/config/CasCoreMultifactorAuthenticationWebflowAutoConfiguration.java53 symbols
core/cas-server-core-tickets/src/main/java/org/apereo/cas/config/CasCoreTicketsConfiguration.java53 symbols
core/cas-server-core-webflow-api/src/main/java/org/apereo/cas/web/flow/configurer/AbstractCasWebflowConfigurer.java50 symbols
support/cas-server-support-thymeleaf/src/main/resources/static/js/samlidp/idpselect.js48 symbols

Dependencies from manifests, versioned

@eslint/js9.36.0 · 1×
@napi-rs/canvas0.1.80 · 1×
@stomp/stompjs7.2.0 · 1×
archiver7.0.1 · 1×
axios1.12.2 · 1×
basic-auth2.0.1 · 1×
colors1.4.0 · 1×
crypto-js4.2.0 · 1×
dpop2.1.1 · 1×
eslint9.36.0 · 1×
express5.1.0 · 1×
figlet1.9.3 · 1×

Datastores touched

(mysql)Database · 1 repos
mysqlDatabase · 1 repos
(mongodb)Database · 1 repos
casDatabase · 1 repos
auditDatabase · 1 repos
mfaDatabase · 1 repos
ticketsDatabase · 1 repos
usersDatabase · 1 repos

For agents

$ claude mcp add cas \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact