Enable drop-in Windows Single Sign On for popular Java web servers.
Clone or download
hazendaz Merge pull request #647 from hazendaz/master
Bring-up-to-date, update error prone, officially jdk11 compliant.
Latest commit 97e585e Oct 14, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.mvn/wrapper [mvn] Update maven wrapper to 0.4.2 Oct 13, 2018
Docs Add processing skip for non windows and disable SSO option Jul 1, 2018
Source [pom] Update ecj to 3.15.0 Oct 13, 2018
src/site [site] Add stub for site when running from root Apr 9, 2018
travis [travis] Add sonar Sep 23, 2017
.gitattributes Normalize file endings. Aug 18, 2012
.gitignore [git] Add new eclipse item to git ignores Sep 23, 2018
.travis.yml [travis] Add jdk11 to build Sep 23, 2018
CHANGELOG.md [docs] Update changelog Jul 1, 2018
HISTORY.md Added the long promised history. Jul 9, 2012
LICENSE Rewritten WhatsNew into CHANGELOG, added README and License. Updated … Apr 16, 2012
NOTICE [license] Add license NOTICE May 23, 2016
NuGet.Config [nuget] Cleanup location used for nuget downloads so it works with VS… Dec 23, 2016
README.md [ci] Remove versioneye Jun 3, 2018
Version.proj [xml] Add missing xml header tag Dec 22, 2016
Waffle.nuspec [nuget] Make some adjustments to nuspec Apr 2, 2017
Waffle.proj [proj] Update waffle.proj to 1.9.0 Jun 3, 2018
Waffle.sln [nuget] Cleanup location used for nuget downloads so it works with VS… Dec 23, 2016
Waffle.snk Initial check-in, Auth -> Waffle 1.1 from svn/commoncomponents/auth. Mar 1, 2010
appveyor.yml [ci] Drop java 7 build from appveyor Dec 28, 2017
bootstrap.cmd [nuget] Cleanup location used for nuget downloads so it works with VS… Dec 23, 2016
build.cmd [nuget] Cleanup location used for nuget downloads so it works with VS… Dec 23, 2016
license.txt [license] Update waffle location Nov 24, 2016
mvnw [mvn] Update maven wrapper to 0.4.2 Oct 13, 2018
mvnw.cmd [mvn] Update maven wrapper to 0.4.2 Oct 13, 2018
nuget.exe [nuget] Update nuget to 3.5.0 Nov 20, 2016
pom.xml [pom] Fix launcher version to match others Oct 13, 2018
waffle.jpg Updated waffle logo to remove codeplex reference. Oct 12, 2012


WAFFLE - Windows Authentication Framework

Build Status Build status Coverity Scan Build Status Coverage Status Maven central releases Eclipse Project Stats Github All Releases


WAFFLE is a native Windows Authentication Framework consisting of two C# and Java libraries that perform functions related to Windows authentication, supporting Negotiate, NTLM and Kerberos. Waffle also includes libraries that enable drop-in Windows Single Sign On for popular Java web servers, when running on Windows. While Waffle makes it ridiculously easy to do Windows Authentication in Java, on Windows, Waffle does not work on *nix(UNIX-like).

Unlike many other implementations Waffle on Windows does not require any server-side Kerberos keytab setup, it's a drop-in solution. You can see it in action in this slightly blurry video produced for TeamShatter.com.




There're several semi-independent parts to Waffle. Choose the appropriate HowTo.

  • Simple native interfaces in C# and Java to do all things Windows authentication. Useful if you're building a custom client that requires Windows authentication. See Getting Started with WAFFLE API
  • A generic Servlet Negotiate (NTLM and Kerberos) Security Filter that can be used with many web servers, including Tomcat, Jetty and WebSphere. See HowTo.
  • A Tomcat Negotiate (NTLM and Kerberos) Authenticator Valve, built for the Tomcat Web Container. See HowTo.
  • A Tomcat Single Sign-On + Form Authentication Mixed Valve, built for the Tomcat Web Container and allowing users to choose whether to do form authentication (a username and password sent to the server from a form) or Windows SSO (NTLM or Kerberos). See HowTo.
  • A Spring-Security Negotiate (NTLM and Kerberos) Filter. See HowTo.
  • A Spring-Security Windows Authentication Manager. See HowTo.
  • A JAAS Login Module, useful when extending a custom Java client that already implements JAAS to support Windows SSO. See HowTo.
  • A WildFly Security Domain implementation, offering support for local Windows and Active Directory users authentication when deploying web apps on WildFly servers. See HowTo.

Waffle was created and is sponsored by Application Security Inc.. For a long story, read the Project History. Also, feel free to use this PowerPoint presentation from NYJavaSIG to talk about Waffle.


  • Account lookup locally and in Active Directory via Win32 API with zero configuration.
  • Enumerating Active Directory domains and domain information.
  • Returns computer domain / workgroup join information.
  • Supports logon for local and domain users returning consistent fully qualified names, identity (SIDs), local and domain groups, including nested.
  • Supports all functions required for implementing server-side single-signon with Negotiate and NTLM and various implementations for Java web servers.
  • Supports Windows Identity impersonation.
  • Includes a Windows Installer Merge Module for distribution of C# binaries.

Related and Similar Products


License and Copyright

Copyright (c) Application Security Inc., 2010-2017 and Contributors.

This project is licensed under the Eclipse Public License.

Project maintained by Daniel Doubrovkine & Jeremy Landis.