Source: https://seerepo.com/r/apereo/cas/built
Markdown source: https://seerepo.com/r/apereo/cas/built.md
Description: cas is a Java repo built with Spring, Flask, graal-sdk, jetty-http2-server, org.apache.tomcat.embed:tomcat-embed-websocket, and 13 more.

# What is cas built with?

cas is a Java repo built with Spring, Flask, graal-sdk, jetty-http2-server, org.apache.tomcat.embed:tomcat-embed-websocket, and 13 more. It reaches its data with Hibernate, hibernate-hikaricp, org.springframework.data:spring-data-commons, spring-data-cassandra, spring-data-mongodb, and 1 more, signs people in with itsdangerous, jose4j, nimbus-jose-jwt, oauth2-oidc-sdk, spring-boot-session, and 11 more, uses AI through org.springframework.ai:spring-ai-starter-mcp-server-webmvc, makes its content with angus-mail, groovy-templates, jakarta.mail, jdom2, jinja2, and 8 more, validates its data with commons-validator, org.hibernate.validator:hibernate-validator, org.springframework.boot:spring-boot-starter-validation, and jakarta.validation:jakarta.validation-api, is tested with jsonassert, junit-pioneer, junit-platform-engine, junit-platform-launcher, mockito-inline, and 11 more, deploys with cloudwatchlogs, jul-to-slf4j, log4j-jcl, log4j-layout-template-json, logback-access-common, and 29 more, and uses apache-client, com.mysql:mysql-connector-j, curator-client, curator-recipes, H2 Database, and 29 more. It has 727,274 written lines, with 3,193 test files.

Read on November 12, 2026, at commit 990ad16.

Repository: https://github.com/apereo/cas

## Frontend

### Styles

- **Normalize.css**

## Backend

### The base

- **[Spring](https://seerepo.com/uses/spring)**: 1,955 files

### Data

- **[apache-client](https://seerepo.com/uses/apache-client)**
- **[com.mysql:mysql-connector-j](https://seerepo.com/uses/commysql-mysql-connector-j)**
- **curator-client**
- **[curator-recipes](https://seerepo.com/uses/curator-recipes)**
- **[H2 Database](https://seerepo.com/uses/h2-database)**
- **hsqldb**
- **jakarta.jms-api**
- **jtds**
- **[kafka-clients](https://seerepo.com/uses/kafka-clients)**
- **lettuce-core**
- **[MariaDB](https://seerepo.com/uses/mariadb)**
- **[MongoDB](https://seerepo.com/uses/mongodb)**
- **ojdbc11**
- **org.springframework.boot:spring-boot-jdbc**
- **[PostgreSQL](https://seerepo.com/uses/postgresql)**
- **[pyzmq](https://seerepo.com/uses/pyzmq)**
- **[s3](https://seerepo.com/uses/s3)**
- **spring-boot-cache**
- **spring-boot-starter-data-mongodb**
- **spring-jms**
- **[com.github.ben-manes.caffeine:caffeine](https://seerepo.com/uses/comgithubben-manescaffeine-caffeine)**: 94 files
- **software.amazon.awssdk:dynamodb**: 31 files
- **com.hazelcast:hazelcast**: 25 files
- **org.springframework.kafka:spring-kafka**: 8 files
- **org.apache.cassandra:java-driver-core**: 5 files
- **[etcd](https://seerepo.com/uses/etcd)**: 3 files
- **org.apache.pulsar:pulsar-client-api**: 2 files
- **org.springframework.amqp:spring-rabbit**: 2 files
- **com.microsoft.sqlserver:mssql-jdbc**: 1 file
- **[com.zaxxer:HikariCP](https://seerepo.com/uses/comzaxxer-hikaricp)**: 1 file
- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [gradle/libs.versions.toml, line 571](https://github.com/apereo/cas/blob/990ad1606dac46925463de45758cd3373efa997e/gradle/libs.versions.toml#L571)
- **org.apache.curator:curator-framework**: 1 file
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [gradle/libs.versions.toml, line 618](https://github.com/apereo/cas/blob/990ad1606dac46925463de45758cd3373efa997e/gradle/libs.versions.toml#L618)
- **software.amazon.awssdk:sqs**: 1 file

### Data access

- **[Hibernate](https://seerepo.com/uses/hibernate)**
- **hibernate-hikaricp**
- **org.springframework.data:spring-data-commons**
- **spring-data-cassandra**
- **spring-data-mongodb**
- **jakarta.persistence:jakarta.persistence-api**: 105 files

### Sign-in

- **[itsdangerous](https://seerepo.com/uses/itsdangerous)**
- **jose4j**
- **nimbus-jose-jwt**
- **oauth2-oidc-sdk**
- **spring-boot-session**
- **spring-boot-session-data-redis**
- **spring-boot-session-jdbc**
- **spring-session-data-redis**
- **spring-session-jdbc**
- **org.springframework.security:spring-security-cas**: 103 files
- **org.pac4j:pac4j-core**: 89 files
- **org.pac4j:pac4j-oidc**: 8 files
- **software.amazon.awssdk:secretsmanager**: 3 files
- **com.microsoft.azure:msal4j**: 2 files
- **[com.azure:azure-identity](https://seerepo.com/uses/comazure-azure-identity)**: 1 file
- **[software.amazon.awssdk:sts](https://seerepo.com/uses/softwareamazonawssdk-sts)**: 1 file

### AI

- **org.springframework.ai:spring-ai-starter-mcp-server-webmvc**: 37 files

## Support

### The base

- **[Flask](https://seerepo.com/uses/flask)**
- **graal-sdk**
- **jetty-http2-server**
- **org.apache.tomcat.embed:tomcat-embed-websocket**
- **org.thymeleaf:thymeleaf-spring6**
- **polyglot**
- **Spring Boot**
- **spring-boot-integration**
- **spring-boot-starter-thymeleaf**
- **spring-cloud-bus**
- **spring-cloud-config-client**
- **spring-cloud-config-server**
- **[tomcat-embed-core](https://seerepo.com/uses/tomcat-embed-core)**
- **tomcat-embed-el**
- **[werkzeug](https://seerepo.com/uses/werkzeug)**
- **[jakarta.servlet:jakarta.servlet-api](https://seerepo.com/uses/jakartaservlet-jakartaservlet-api)**: 452 files
- **org.eclipse.jetty:jetty-alpn-java-server**: 2 files

### Content

- **angus-mail**
- **groovy-templates**
- **jakarta.mail**
- **jdom2**
- **[jinja2](https://seerepo.com/uses/jinja2)**
- **jsoup**
- **[markupsafe](https://seerepo.com/uses/markupsafe)**
- **[org.springframework.boot:spring-boot-starter-mail](https://seerepo.com/uses/orgspringframeworkboot-spring-boot-starter-mail)**
- **org.apache.velocity:velocity-engine-core**: 16 files
- **Thymeleaf**: 11 files
- **[com.google.zxing:core](https://seerepo.com/uses/comgooglezxing-core)**: 3 files
- **com.sendgrid:sendgrid-java**: 2 files
- **com.samskivert:jmustache**: 1 file

### Validation

- **[commons-validator](https://seerepo.com/uses/commons-validator)**
- **org.hibernate.validator:hibernate-validator**
- **[org.springframework.boot:spring-boot-starter-validation](https://seerepo.com/uses/orgspringframeworkboot-spring-boot-starter-validation)**
- **[jakarta.validation:jakarta.validation-api](https://seerepo.com/uses/jakartavalidation-jakartavalidation-api)**: 17 files

### Testing

- **jsonassert**
- **junit-pioneer**
- **junit-platform-engine**
- **junit-platform-launcher**
- **mockito-inline**
- **mockwebserver**
- **org.springframework.boot:spring-boot-starter-test**
- **org.junit.jupiter:junit-jupiter-api**: 2,453 files
- **org.mockito:mockito-core**: 645 files
- **org.junit.jupiter:junit-jupiter-params**: 74 files
- **org.awaitility:awaitility**: 43 files
- **com.unboundid:unboundid-ldapsdk**: 29 files
- **org.mockito:mockito-junit-jupiter**: 12 files
- **Locust**: 3 files
- **org.junit.platform:junit-platform-suite-api**: 2 files
- **[org.apache.zookeeper:zookeeper](https://seerepo.com/uses/orgapachezookeeper-zookeeper)**: 1 file

### Deploy

- **cloudwatchlogs**
- **[jul-to-slf4j](https://seerepo.com/uses/jul-to-slf4j)**
- **log4j-jcl**
- **log4j-layout-template-json**
- **logback-access-common**
- **[logback-classic](https://seerepo.com/uses/logback-classic)**
- **[metrics-core](https://seerepo.com/uses/metrics-core)**
- **micrometer-jakarta9**
- **micrometer-java21**
- **micrometer-registry-cloudwatch2**
- **micrometer-registry-elastic**
- **micrometer-registry-influx**
- **micrometer-registry-otlp**
- **[micrometer-registry-prometheus](https://seerepo.com/uses/micrometer-registry-prometheus)**
- **micrometer-tracing-bridge-brave**
- **micrometer-tracing-bridge-otel**
- **[org.springframework.boot:spring-boot-starter-actuator](https://seerepo.com/uses/orgspringframeworkboot-spring-boot-starter-actuator)**
- **spring-boot-admin-starter-client**
- **spring-boot-admin-starter-server**
- **spring-boot-starter-jetty**
- **spring-boot-starter-log4j2**
- **spring-cloud-starter-consul-discovery**
- **spring-cloud-starter-netflix-eureka-client**
- **spring-cloud-starter-zookeeper-discovery**
- **zipkin-reporter-brave**
- **[org.slf4j:slf4j-api](https://seerepo.com/uses/orgslf4j-slf4j-api)**: 30 files
- **[org.apache.logging.log4j:log4j-core](https://seerepo.com/uses/orgapachelogginglog4j-log4j-core)**: 12 files
- **[io.micrometer:micrometer-core](https://seerepo.com/uses/iomicrometer-micrometer-core)**: 11 files
- **[org.apache.logging.log4j:log4j-api](https://seerepo.com/uses/orgapachelogginglog4j-log4j-api)**: 5 files
- **software.amazon.awssdk:ssm**: 3 files
- **io.micrometer:micrometer-observation**: 2 files
- **[ch.qos.logback:logback-core](https://seerepo.com/uses/chqoslogback-logback-core)**: 1 file
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file
- **software.amazon.awssdk:cloudwatch**: 1 file

### Tools

- **checker-qual**
- **click**
- **commons-cli**
- **gradle-errorprone-plugin**
- **groovy-groovysh**
- **jsr305**
- **org.springframework.boot:spring-boot-configuration-processor**
- **pip**
- **Setuptools**
- **Swagger**
- **Uber**
- **org.projectlombok:lombok**: 3,736 files
- **org.jspecify:jspecify**: 1,242 files
- **com.google.errorprone:error_prone_core**: 84 files
- **com.github.javaparser:javaparser-core**: 5 files

### Other

- **arrow-memory-unsafe**
- **aspectjrt**
- **aspectjweaver**
- **bcpkix-jdk18on**
- **bcprov-jdk18on**
- **bucket4j-core**
- **cbor**
- **commons-beanutils**
- **commons-codec**
- **commons-collections**
- **commons-compress**
- **commons-io**
- **commons-jexl3**
- **disruptor**
- **dom4j**
- **expressly**
- **gevent**
- **[Google](https://seerepo.com/uses/google)**
- **greenlet**
- **httpclient**
- **httpcore**
- **httpcore5**
- **idna**
- **io.swagger.core.v3:swagger-models**
- **jackson-annotations**
- **jackson-core-asl**
- **jackson-dataformat-xml**
- **jackson-mapper-asl**
- **jakarta.activation-api**
- **jakarta.annotation-api**
- **jakarta.el-api**
- **jakarta.servlet.jsp.jstl-api**
- **jakarta.transaction-api**
- **jakarta.xml.soap-api**
- **jaxb-impl**
- **jcip-annotations**
- **logging-interceptor**
- **lucene-analysis-common**
- **lucene-queryparser**
- **lz4-java**
- **msgpack-python**
- **Netflix**
- **netty-buffer**
- **netty-codec**
- **netty-common**
- **netty-resolver**
- **netty-transport**
- **okhttp**
- **okio**
- **org.eclipse.jgit**
- **org.springframework.boot:spring-boot-restclient**
- **oshi-core**
- **quartz**
- **requests**
- **retrofit**
- **saaj-impl**
- **six**
- **spring-boot-starter-jackson**
- **org.apache.commons:commons-lang3**: 1,133 files
- **tools.jackson.core:jackson-databind**: 172 files
- **tools.jackson.core:jackson-core**: 55 files
- **[Apache](https://seerepo.com/uses/apache)**: 32 files
- **software.amazon.awssdk:aws-core**: 17 files
- **Esoteric Software**: 12 files
- **com.fasterxml.jackson.core:jackson-core**: 11 files
- **com.fasterxml.jackson.core:jackson-databind**: 10 files
- **net.minidev:json-smart**: 9 files
- **org.jasypt:jasypt**: 7 files
- **com.google.api-client:google-api-client**: 6 files
- **org.yaml:snakeyaml**: 4 files
- **com.twilio.sdk:twilio**: 3 files
- **org.apache.commons:commons-collections4**: 3 files
- **urllib3**: 3 files
- **io.github.classgraph:classgraph**: 2 files
- **org.json:json**: 2 files
- **software.amazon.awssdk:sns**: 2 files
- **tools.jackson.dataformat:jackson-dataformat-xml**: 2 files
- **com.slack.api:slack-api-client**: 1 file
- **com.squareup.retrofit2:converter-moshi**: 1 file
- **de.javakaffee:kryo-serializers**: 1 file
- **io.netty:netty-handler**: 1 file
- **jakarta.xml.bind:jakarta.xml.bind-api**: 1 file
- **jakarta.xml.ws:jakarta.xml.ws-api**: 1 file
- **joda-time:joda-time**: 1 file
- **org.apache.arrow:arrow-memory-netty**: 1 file
- **org.apache.lucene:lucene-core**: 1 file
- **org.apache.santuario:xmlsec**: 1 file
- **org.fusesource.jansi:jansi**: 1 file
- **org.springdoc:springdoc-openapi-starter-webmvc-ui**: 1 file
- **tools.jackson.dataformat:jackson-dataformat-cbor**: 1 file
- **tools.jackson.dataformat:jackson-dataformat-smile**: 1 file

## Other repos with a similar stack

- [spring-projects/spring-boot](https://seerepo.com/r/spring-projects/spring-boot/built): Spring, H2 Database, lettuce-core, MongoDB, spring-jms, com.hazelcast:hazelcast, com.zaxxer:HikariCP, org.apache.tomcat.embed:tomcat-embed-websocket, Spring Boot, tomcat-embed-core, tomcat-embed-el, jakarta.servlet:jakarta.servlet-api, org.springframework.data:spring-data-commons, spring-data-cassandra, spring-data-mongodb, jakarta.persistence:jakarta.persistence-api, spring-session-data-redis, spring-session-jdbc, angus-mail, groovy-templates, Thymeleaf, com.sendgrid:sendgrid-java, com.samskivert:jmustache, jul-to-slf4j, micrometer-jakarta9, micrometer-tracing-bridge-brave, micrometer-tracing-bridge-otel, zipkin-reporter-brave, org.slf4j:slf4j-api, org.apache.logging.log4j:log4j-core, io.micrometer:micrometer-core, org.apache.logging.log4j:log4j-api, io.micrometer:micrometer-observation, OpenTelemetry · [Compare](https://seerepo.com/compare/apereo/cas/vs/spring-projects/spring-boot)
- [apache/dubbo](https://seerepo.com/r/apache/dubbo/built): Spring, curator-recipes, org.apache.tomcat.embed:tomcat-embed-websocket, Spring Boot, tomcat-embed-core, tomcat-embed-el, jakarta.servlet:jakarta.servlet-api, Hibernate, org.springframework.boot:spring-boot-starter-validation, jakarta.validation:jakarta.validation-api, logback-classic, micrometer-registry-prometheus, micrometer-tracing-bridge-brave, micrometer-tracing-bridge-otel, zipkin-reporter-brave, org.slf4j:slf4j-api, org.apache.logging.log4j:log4j-core, io.micrometer:micrometer-core, org.apache.logging.log4j:log4j-api, io.micrometer:micrometer-observation, OpenTelemetry · [Compare](https://seerepo.com/compare/apache/dubbo/vs/apereo/cas)
- [appsmithorg/appsmith](https://seerepo.com/r/appsmithorg/appsmith/built): Spring, apache-client, com.mysql:mysql-connector-j, H2 Database, MariaDB, MongoDB, PostgreSQL, s3, spring-boot-starter-data-mongodb, software.amazon.awssdk:dynamodb, com.zaxxer:HikariCP, MySQL, Hibernate, org.springframework.boot:spring-boot-starter-mail, commons-validator, micrometer-registry-prometheus, micrometer-tracing-bridge-otel, org.springframework.boot:spring-boot-starter-actuator, org.slf4j:slf4j-api, OpenTelemetry · [Compare](https://seerepo.com/compare/apereo/cas/vs/appsmithorg/appsmith)
- [conductor-oss/conductor](https://seerepo.com/r/conductor-oss/conductor/built): Spring, kafka-clients, MongoDB, PostgreSQL, s3, com.github.ben-manes.caffeine:caffeine, com.zaxxer:HikariCP, MySQL, Postgres, tomcat-embed-core, jsoup, logback-classic, micrometer-registry-prometheus, org.springframework.boot:spring-boot-starter-actuator, spring-boot-starter-log4j2, org.slf4j:slf4j-api, org.apache.logging.log4j:log4j-core, io.micrometer:micrometer-core, org.apache.logging.log4j:log4j-api · [Compare](https://seerepo.com/compare/apereo/cas/vs/conductor-oss/conductor)
- [Stirling-Tools/Stirling-PDF](https://seerepo.com/r/Stirling-Tools/Stirling-PDF/built): Spring, H2 Database, PostgreSQL, s3, com.github.ben-manes.caffeine:caffeine, Postgres, jetty-http2-server, jakarta.servlet:jakarta.servlet-api, org.eclipse.jetty:jetty-alpn-java-server, Hibernate, angus-mail, org.springframework.boot:spring-boot-starter-mail, com.google.zxing:core, micrometer-registry-prometheus, org.springframework.boot:spring-boot-starter-actuator, spring-boot-starter-jetty, io.micrometer:micrometer-core, ch.qos.logback:logback-core · [Compare](https://seerepo.com/compare/apereo/cas/vs/Stirling-Tools/Stirling-PDF)
- [alibaba/nacos](https://seerepo.com/r/alibaba/nacos/built): com.mysql:mysql-connector-j, H2 Database, PostgreSQL, com.github.ben-manes.caffeine:caffeine, com.zaxxer:HikariCP, MySQL, Postgres, Spring Boot, nimbus-jose-jwt, oauth2-oidc-sdk, jul-to-slf4j, micrometer-registry-prometheus, org.springframework.boot:spring-boot-starter-actuator, org.slf4j:slf4j-api, org.apache.logging.log4j:log4j-core, io.micrometer:micrometer-core, ch.qos.logback:logback-core · [Compare](https://seerepo.com/compare/alibaba/nacos/vs/apereo/cas)

## Frequently asked questions

### What language is cas written in?

cas is written in Java, with 727,274 written lines.

### What framework does cas use?

cas is built with Spring, Flask, graal-sdk, jetty-http2-server, org.apache.tomcat.embed:tomcat-embed-websocket, org.thymeleaf:thymeleaf-spring6, polyglot, Spring Boot, spring-boot-integration, spring-boot-starter-thymeleaf, spring-cloud-bus, spring-cloud-config-client, spring-cloud-config-server, tomcat-embed-core, tomcat-embed-el, werkzeug, jakarta.servlet:jakarta.servlet-api, and org.eclipse.jetty:jetty-alpn-java-server.

### What does cas sign people in with?

cas signs people in with itsdangerous, jose4j, nimbus-jose-jwt, oauth2-oidc-sdk, spring-boot-session, spring-boot-session-data-redis, spring-boot-session-jdbc, spring-session-data-redis, spring-session-jdbc, org.springframework.security:spring-security-cas, org.pac4j:pac4j-core, org.pac4j:pac4j-oidc, software.amazon.awssdk:secretsmanager, com.microsoft.azure:msal4j, com.azure:azure-identity, and software.amazon.awssdk:sts.

### Does cas use AI?

Yes. cas uses AI through org.springframework.ai:spring-ai-starter-mcp-server-webmvc.

### What services does cas use?

cas uses apache-client, com.mysql:mysql-connector-j, curator-client, curator-recipes, H2 Database, hsqldb, jakarta.jms-api, jtds, kafka-clients, lettuce-core, MariaDB, MongoDB, ojdbc11, org.springframework.boot:spring-boot-jdbc, PostgreSQL, pyzmq, s3, spring-boot-cache, spring-boot-starter-data-mongodb, spring-jms, com.github.ben-manes.caffeine:caffeine, software.amazon.awssdk:dynamodb, com.hazelcast:hazelcast, org.springframework.kafka:spring-kafka, org.apache.cassandra:java-driver-core, etcd, org.apache.pulsar:pulsar-client-api, org.springframework.amqp:spring-rabbit, com.microsoft.sqlserver:mssql-jdbc, com.zaxxer:HikariCP, MySQL, org.apache.curator:curator-framework, Postgres, and software.amazon.awssdk:sqs.

### Does cas have tests?

Yes. cas has 3,193 test files and is tested with jsonassert, junit-pioneer, junit-platform-engine, junit-platform-launcher, mockito-inline, mockwebserver, org.springframework.boot:spring-boot-starter-test, org.junit.jupiter:junit-jupiter-api, org.mockito:mockito-core, org.junit.jupiter:junit-jupiter-params, org.awaitility:awaitility, com.unboundid:unboundid-ldapsdk, org.mockito:mockito-junit-jupiter, Locust, org.junit.platform:junit-platform-suite-api, and org.apache.zookeeper:zookeeper.

### Which repos have a stack like cas's?

The ones that share most of its stack: spring-projects/spring-boot, apache/dubbo, and appsmithorg/appsmith.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
