<html><body><div>Hi all,</div><div><br></div><div>I created today a build from the latest master branch and struggled with the following problem.</div><div>I've got some REST services which are excluded from keycloak, so I can access them without a logged in user. (see detail from web.xml)</div><div><span style="line-height: 1.5;">The request body in these post rest services were always empty. I found out that my wildfly tried to authenticate all requests.</span></div><div><span style="line-height: 1.5;">The&nbsp;</span>tokenStore.saveRequest() method in the OAuthRequestAuthenticator class read the inputStream and so it was empty later on.</div><div><br></div><div>I dont understand why all my requests are authenticated, even when they are excluded through the web.xml file.</div><div>So, I added the following lines in the ServletKeycloakAuthMech class in the authenticate method: (see&nbsp;<a href="https://github.com/gerbermichi/keycloak/commit/1eaafcd3d9ad4082429ab500a4512c87d47ed75c">https://github.com/gerbermichi/keycloak/commit/1eaafcd3d9ad4082429ab500a4512c87d47ed75c</a>)</div><div><div>if (!deployment.isConfigured() || !securityContext.isAuthenticationRequired()) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return AuthenticationMechanismOutcome.NOT_ATTEMPTED;</div><div>}</div></div><div><br></div><div>This hack solved all my problems. Is this a bug and should i create a pull request? Or are there some problems in my project configuration?</div><div><br></div><div>Detail from my web.xml file:</div><div><div>&nbsp; &lt;security-constraint&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;web-resource-collection&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;web-resource-name&gt;Client WS&lt;/web-resource-name&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;url-pattern&gt;/clientws/*&lt;/url-pattern&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/web-resource-collection&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;web-resource-collection&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;web-resource-name&gt;Client Exchange WS&lt;/web-resource-name&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;url-pattern&gt;/services/exchange/*&lt;/url-pattern&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/web-resource-collection&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;user-data-constraint&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;transport-guarantee&gt;CONFIDENTIAL&lt;/transport-guarantee&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/user-data-constraint&gt;</div><div>&nbsp; &nbsp; &lt;/security-constraint&gt;</div><div><br></div><div>&nbsp; &nbsp; &lt;security-constraint&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;web-resource-collection&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;web-resource-name&gt;All&lt;/web-resource-name&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/web-resource-collection&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;auth-constraint&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;role-name&gt;myRole&lt;/role-name&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/auth-constraint&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;user-data-constraint&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;transport-guarantee&gt;CONFIDENTIAL&lt;/transport-guarantee&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/user-data-constraint&gt;</div><div>&nbsp; &nbsp; &lt;/security-constraint&gt;</div><div><br></div><div>&nbsp; &nbsp; &lt;login-config&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;auth-method&gt;KEYCLOAK&lt;/auth-method&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;realm-name&gt;myRealm&lt;/realm-name&gt;</div><div>&nbsp; &nbsp; &lt;/login-config&gt;</div><div><br></div><div>&nbsp; &nbsp; &lt;security-role&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;role-name&gt;myRole&lt;/role-name&gt;</div><div>&nbsp; &nbsp; &lt;/security-role&gt;</div></div><div><br></div><div><br></div><div><br></div></body></html>