I used a Maven overlay to build version 5.2.3 but then after Tomcat
exploded the WAR I did
cd /var/lib/tomcat8/webapps/cas/WEB-INF/lib
rm pac4j-saml-2.2.0.jar
cp /home/skoranda/pac4j/pac4j-saml/target/pac4j-saml-2.3.1-SNAPSHOT.jar .
and restarted Tomcat. The pac4j version 2.3.1 jar was one I built from source by doing
git clone g...@github.com:pac4j/pac4j.git
cd pac4j
git checkout 2.2.x
mvn install -DskipTests
That caused the issue to go away: the <AuthnRequest> from the CAS SP to
the remote IdP included
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
as I expected and it matched the <AssertionConsumerService> element in
the existing SP metadata.
By default when CAS 5.2.3 is deployed with a Maven overly version 2.2.0
of pac4j is used but with version 2.3.1 of pac4j the issue is resolved.
I edited my pom.xml file and changed
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-pac4j-webflow</artifactId>
<version>${cas.version}</version>
</dependency>
to be instead
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-pac4j-webflow</artifactId>
<version>${cas.version}</version>
<exclusions>
<exclusion>
<groupId>org.pac4j</groupId>
<artifactId>pac4j-saml</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.pac4j</groupId>
<artifactId>pac4j-saml</artifactId>
<version>2.3.1</version>
</dependency>
This allowed CAS version 5.2.3 to leverage pac4j version 2.3.1 and resolved
the issue.
Thanks,
Scott K