Add support for Single Log Out Change-Id: I3111f251e3eaaff00734a7f22d35424704aee403
diff --git a/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java b/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java index a96ac75..b3228e6 100644 --- a/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java +++ b/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java
@@ -169,8 +169,14 @@ } else { chain.doFilter(httpRequest, httpResponse); } - } catch (final HttpAction requiresHttpAction) { - throw new TechnicalException("Unexpected HTTP action", requiresHttpAction); + } catch (final HttpAction httpAction) { + // In pac4j v3.4.0 SLO (Single Log Out) throws HttpAction with code 200. + // Detect that flow and recover by redirecting to the main gerrit page. + if (httpAction.getCode() != 200) { + throw new TechnicalException("Unexpected HTTP action", httpAction); + } + + httpResponse.sendRedirect(httpRequest.getContextPath() + "/"); } }