Deal with spurious Share errors in last RC

This commit is contained in:
AFaust 2020-11-30 19:33:34 +01:00
parent a3e3d9cac9
commit 6f9578ca63
5 changed files with 30 additions and 5 deletions
pom.xml
repository
share
pom.xml
src/main
java/de/acosix/alfresco/keycloak/share/web
resources/META-INF

@ -26,7 +26,7 @@
<groupId>de.acosix.alfresco.keycloak</groupId>
<artifactId>de.acosix.alfresco.keycloak.parent</artifactId>
<version>1.1.0-rc5</version>
<version>1.1.0-rc6-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Acosix Alfresco Keycloak - Parent</name>

@ -21,7 +21,7 @@
<parent>
<groupId>de.acosix.alfresco.keycloak</groupId>
<artifactId>de.acosix.alfresco.keycloak.parent</artifactId>
<version>1.1.0-rc5</version>
<version>1.1.0-rc6-SNAPSHOT</version>
</parent>
<artifactId>de.acosix.alfresco.keycloak.repo</artifactId>

@ -21,7 +21,7 @@
<parent>
<groupId>de.acosix.alfresco.keycloak</groupId>
<artifactId>de.acosix.alfresco.keycloak.parent</artifactId>
<version>1.1.0-rc5</version>
<version>1.1.0-rc6-SNAPSHOT</version>
</parent>
<artifactId>de.acosix.alfresco.keycloak.share</artifactId>

@ -15,8 +15,11 @@
*/
package de.acosix.alfresco.keycloak.share.web;
import javax.servlet.http.HttpServletRequest;
import org.springframework.extensions.surf.RequestContext;
import org.springframework.extensions.surf.RequestContextUtil;
import org.springframework.extensions.surf.ServletUtil;
import org.springframework.extensions.surf.mvc.RequestContextInterceptor;
import org.springframework.extensions.surf.support.ThreadLocalRequestContext;
import org.springframework.web.context.request.ServletWebRequest;
@ -42,6 +45,15 @@ public class PopulatingRequestContextInterceptor extends RequestContextIntercept
super.preHandle(request);
final RequestContext context = ThreadLocalRequestContext.getRequestContext();
RequestContextUtil.populateRequestContext(context, ((ServletWebRequest) request).getRequest());
final HttpServletRequest servletRequest = ((ServletWebRequest) request).getRequest();
// just to be safe - can apparently not always be guaranteed
// (despite our call to RequestContextUtil.initRequestContext in KeycloakAuthenticationFilter#doFilter)
// without this, UserFactory may fail to obtain Connector due to missing session (indirectly retrieved via request)
if (ServletUtil.getRequest() == null)
{
ServletUtil.setRequest(servletRequest);
}
RequestContextUtil.populateRequestContext(context, servletRequest);
}
}

@ -37,8 +37,21 @@
</init-param>
</filter>
<!-- limited to any URLs in which access to user groups may be relevant for processing -->
<filter-mapping>
<filter-name>${moduleId}.UserGroupsLoadFilter</filter-name>
<url-pattern>/*</url-pattern>
<url-pattern>/page/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>${moduleId}.UserGroupsLoadFilter</filter-name>
<url-pattern>/p/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>${moduleId}.UserGroupsLoadFilter</filter-name>
<url-pattern>/proxy/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>${moduleId}.UserGroupsLoadFilter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
</web-fragment>