По сути, ответ Сандера уже правильный (пожалуйста, примите его). Чтобы быть более точным, ваше определение в web.xml должно выглядеть следующим образом (опуская все остальные ServletFilters ранее):
<!-- other filter go here -->
<filter>
<filter-name>RequestContextServletFilter</filter-name>
<filter-class>com.sap.cloud.sdk.cloudplatform.servlet.RequestContextServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RequestContextServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Я попробовал ваш минимальный нерабочий пример с этим, и исключение исчезает. Используя переменную окружения ALLOW_MOCKED_AUTH_HEADER: true, возвращается пустой пользователь, что является достаточным доказательством того, что фильтр применяется перед фильтром Guice: