== Supported Platforms

=== OpenID Connect

==== Java
* link:oidc/java/jboss-adapters.html[JBoss EAP]
{% if book.community %}
  * link:oidc/java/jboss-adapters.html[WildFly]
{% endif %}
* link:oidc/java/fuse-adapter.html[Fuse]
{% if book.community %}
  * link:oidc/java/tomcat-adapter.html[Tomcat]
  * link:oidc/java/jetty-adapter.html[Jetty]
{% endif %}
* link:oidc/java/servlet-filter-adapter.html[Servlet Filter]
{% if book.community %}
  * link:oidc/java/spring-adapter.html[Spring Security] (community)
  * link:oidc/java/spring-boot-adapter.html[Spring Boot] (community)
{% endif %}

==== JavaScript (client-side)
* link:oidc/javascript-adapter.html[JavaScript]

=== Apache Cordova
* link:oidc/javascript-adapter.html[JavaScript]

{% if book.community %}
==== Node.js
* https://github.com/keycloak/keycloak-nodejs-connect[{{book.project.title}} Connect] (community)
* https://github.com/keycloak/keycloak-nodejs-connect[{{book.project.title}} Auth Utils] (community)
{% endif %}

{% if book.community %}
=== C#
* https://github.com/dylanplecki/KeycloakOwinAuthentication[OWIN] (community)
{% endif %}

{% if book.community %}
=== Python
* https://pypi.python.org/pypi/python-openid/[python-openid] (generic)
{% endif %}

{% if book.community %}
=== Android
* https://github.com/openid/AppAuth-Android[AppAuth] (generic)
* https://github.com/aerogear/aerogear-android-authz[AeroGear] (generic)
{% endif %}

{% if book.community %}
=== iOS
* https://github.com/openid/AppAuth-iOS[AppAuth] (generic)
* https://github.com/aerogear/aerogear-ios-oauth2[AeroGear] (generic)
{% endif %}

{% if book.community %}
==== Apache HTTP Server
* https://github.com/pingidentity/mod_auth_openidc[mod_auth_openidc]
{% endif %}

=== SAML

==== Java

* link:oidc/java/jboss-adapters.html[JBoss EAP]
{% if book.community %}
* link:oidc/java/jboss-adapters.html[WildFly]
* link:oidc/java/tomcat-adapter.html[Tomcat]
* link:oidc/java/jetty-adapter.html[Jetty]
{% endif %}

==== Apache HTTP Server

* https://github.com/UNINETT/mod_auth_mellon[mod_auth_mellon]