This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a change to branch UNOMI-986-oneshot-import-tenant-dir
in repository https://gitbox.apache.org/repos/asf/unomi.git
omit 59a98f19e UNOMI-986: Write a one-shot import CSV to the directory of
its tenant
add e995c2b75 UNOMI-981: deploy the distribution again (#862)
add c1fc6efdc UNOMI-987: List unomi-plugins-advanced-conditions in the BOM
(#869)
add a456a6a28 Stop the GraphQL WebSocket deadline scheduler when the
servlet is destroyed (#858)
add ab028177a UNOMI-982: Drop a condition whose optional parameter the
context does not supply (#864)
add aab6c9e5e Keep Jetty client types out of GraphQLWebSocketIT method
signatures (#882)
add 668a15fbf UNOMI-976: Restrict Groovy action upload to system
administrators (#852)
add ce3eff265 UNOMI-978: Gate cross-profile merge and systemProperties
writes on a trusted caller (#854)
add a51bf3c9e Write filtered personalization contents back onto the
request (#876)
add cf52160eb Deny public MVEL eval APIs from the scripting class loader
(#877)
add 60edd20c9 Drop credentialed CORS on the public tracker endpoints (#878)
add be15fd61a Bound diagnostic type tracking and the MVEL expression cache
(#879)
add 11edea0a3 UNOMI-977: Restrict router import/export configuration to
system administrators (#853)
add 4bbad657d Combine the profile scope with client event filters instead
of replacing it (#871)
add 58c7aebb6 Bound regular-expression evaluation in the matchesRegex
operator (#872)
add 5edd1e9b7 Authorize the executed GraphQL operation, not the first
definition (#874)
add 503a0d690 Check roles and tenant authority after a realm login (#875)
add b6e454521 Apply the restricted-event-type gate to events submitted
over GraphQL (#870)
add 7dab55a50 Simplify identifier validation patterns to a single
character class (#873)
add a561a00dd Refresh list indexes on each poll in GraphQLListIT (#884)
add e9c6439fe UNOMI-980: create the compatibility tenant, and name the
mode for what it does (#861)
add 76aa36858 UNOMI-984: Record how 3.1 answers a search condition with no
resolvable type (#866)
new fb64f22b5 UNOMI-986: Write a one-shot import CSV to the directory of
its tenant
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (59a98f19e)
\
N -- N -- N refs/heads/UNOMI-986-oneshot-import-tenant-dir
(fb64f22b5)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
THREAT_MODEL.md | 5 +-
.../apache/unomi/api/tenants/TenantService.java | 12 +
bom/artifacts/pom.xml | 5 +
.../karaf-kar/src/main/feature/feature.xml | 2 +
extensions/groovy-actions/rest/pom.xml | 10 +
.../groovy/actions/rest/GroovyActionsEndPoint.java | 5 +
.../rest/GroovyActionsEndPointRoleTest.java} | 28 +-
.../services/impl/GroovyActionsServiceImpl.java | 23 +-
.../impl/GroovyActionsServiceImplTest.java | 49 ++
...Action.groovy => fieldInitializerAction.groovy} | 22 +-
.../META-INF/cxs/schemas/events/event.json | 10 +-
.../resources/META-INF/cxs/schemas/items/item.json | 2 +-
.../unomi/schema/impl/SchemaPatternSafetyTest.java | 116 +++++
.../src/main/feature/feature.xml | 2 +
extensions/router/router-rest/pom.xml | 10 +
.../rest/ExportConfigurationServiceEndPoint.java | 3 +
.../rest/ImportConfigurationServiceEndPoint.java | 3 +
.../rest/RouterConfigurationEndPointRoleTest.java | 44 ++
.../graphql/commands/ProcessEventsCommand.java | 28 +-
.../ProfileAllEventsConnectionDataFetcher.java | 11 +-
.../unomi/graphql/servlet/GraphQLServlet.java | 22 +-
.../auth/GraphQLServletSecurityValidator.java | 244 +++++++---
.../servlet/websocket/SubscriptionWebSocket.java | 8 +-
.../websocket/SubscriptionWebSocketFactory.java | 20 +-
.../graphql/commands/ProcessEventsCommandTest.java | 82 ++++
.../unomi/graphql/servlet/GraphQLServletTest.java | 21 +
.../auth/GraphQLServletSecurityValidatorTest.java | 156 ++++++-
.../SubscriptionWebSocketFactoryTest.java | 11 +
.../websocket/SubscriptionWebSocketTest.java | 4 +-
.../test/java/org/apache/unomi/itests/AllITs.java | 7 +-
.../test/java/org/apache/unomi/itests/BaseIT.java | 17 +
.../test/java/org/apache/unomi/itests/BasicIT.java | 36 +-
.../unomi/itests/ConditionRegexSafetyIT.java | 110 +++++
.../org/apache/unomi/itests/ContextServletIT.java | 237 ++++++++++
.../apache/unomi/itests/CorePersistenceITs.java | 4 +-
.../GroovyActionsEndpointRoleSecurityIT.java | 113 +++++
.../org/apache/unomi/itests/InputValidationIT.java | 28 ++
.../org/apache/unomi/itests/ProfileMergeIT.java | 57 +++
.../unomi/itests/PropertiesUpdateActionIT.java | 101 +++++
.../unomi/itests/RouterEndpointRoleSecurityIT.java | 136 ++++++
.../unomi/itests/SchemaIdPatternSafetyIT.java | 104 +++++
...T.java => SingleTenantCompatibilityModeIT.java} | 164 +++----
.../apache/unomi/itests/graphql/GraphQLListIT.java | 16 +-
.../graphql/GraphQLProfileEventsScopeIT.java | 78 ++++
.../itests/graphql/GraphQLServletSecurityIT.java | 64 +++
.../unomi/itests/graphql/GraphQLWebSocketIT.java | 29 +-
.../security/bypass-ambiguous-multi-operation.json | 4 +
.../graphql/security/bypass-extra-root-field.json | 5 +
.../graphql/security/bypass-fragment-spread.json | 5 +
.../security/bypass-introspection-named.json | 5 +
.../graphql/security/bypass-leading-fragment.json | 5 +
.../security/bypass-operation-name-smuggle.json | 5 +
.../graphql/security/profile-events-scope.json | 8 +
.../mvel-payload-personalization-mixed.json | 32 ++
..._valid.json => eventcollector_noSessionId.json} | 3 +-
manual/src/main/asciidoc/builtin-event-types.adoc | 11 +-
manual/src/main/asciidoc/configuration.adoc | 29 +-
.../asciidoc/migrations/migrate-3.0-to-3.1.adoc | 62 ++-
.../asciidoc/migrations/v2-compatibility-mode.adoc | 84 ++--
manual/src/main/asciidoc/recipes.adoc | 6 +-
manual/src/main/asciidoc/samples/login-sample.adoc | 207 ++++++++-
manual/src/main/asciidoc/whats-new.adoc | 2 +-
package/pom.xml | 13 +-
.../main/resources/etc/custom.system.properties | 10 +-
package/src/main/resources/etc/mvel-forbid.json | 2 +-
.../ConditionESQueryBuilderDispatcher.java | 18 +-
.../ConditionOSQueryBuilderDispatcher.java | 18 +-
.../spi/conditions/ConditionContextHelper.java | 28 +-
.../impl/ConditionEvaluatorDispatcherImpl.java | 15 +-
.../spi/conditions/ConditionContextHelperTest.java | 33 +-
.../impl/ConditionEvaluatorDispatcherImplTest.java | 48 ++
.../plugins/baseplugin/actions/IdentityTrust.java | 44 ++
.../actions/MergeProfilesOnPropertyAction.java | 30 ++
.../baseplugin/actions/UpdatePropertiesAction.java | 81 +++-
.../conditions/PropertyConditionEvaluator.java | 98 +++-
.../resources/OSGI-INF/blueprint/blueprint.xml | 1 +
.../actions/ActionIdentityIntrusionTest.java | 271 +++++++++++
.../actions/MergeProfilesOnPropertyActionTest.java | 174 +++++++
.../actions/UpdatePropertiesActionTest.java | 281 ++++++++++++
.../conditions/PropertyConditionEvaluatorTest.java | 41 ++
.../request/actions/SetRemoteHostInfoAction.java | 110 ++++-
.../resources/OSGI-INF/blueprint/blueprint.xml | 3 +
.../resources/org.apache.unomi.plugins.request.cfg | 5 +
.../actions/SetRemoteHostInfoActionTest.java | 86 ++++
.../rest/authentication/AuthenticationFilter.java | 93 ++--
.../authentication/RestAuthenticationConfig.java | 13 +-
.../impl/DefaultRestAuthenticationConfig.java | 52 +--
.../unomi/rest/endpoints/ClientEndpoint.java | 2 +-
.../unomi/rest/endpoints/ContextJsonEndpoint.java | 3 +-
.../rest/endpoints/EventsCollectorEndpoint.java | 8 +-
.../rest/service/RequestIdentifierValidator.java | 50 ++
.../rest/service/impl/RestServiceUtilsImpl.java | 16 +-
.../META-INF/cxs/schemas/rest/requestIds.json | 6 +-
.../org.apache.unomi.rest.authentication.cfg | 7 +-
.../AuthenticationFilterBlankPasswordTest.java | 17 +-
.../rest/endpoints/ContextJsonEndpointTest.java | 28 ++
.../rest/endpoints/PublicTrackerCorsTest.java | 52 +++
.../service/RequestIdentifierValidatorTest.java | 57 +++
samples/login-integration/pom.xml | 44 +-
samples/login-integration/setup.sh | 297 ++++++++++++
.../unomi/samples/login/LoginSampleResources.java | 29 +-
.../apache/unomi/samples/login/LoginServlet.java | 399 ++++++++++++++++
.../src/main/resources/static/index.html | 75 +++
.../resources/static/javascript/login-example.js | 58 +++
.../src/main/webapp/WEB-INF/web.xml | 24 -
.../login-integration/src/main/webapp/index.html | 70 ---
.../src/main/webapp/javascript/login-example.js | 139 ------
.../unomi/samples/login/LoginServletTest.java | 502 +++++++++++++++++++++
.../apache/unomi/scripting/ExpressionFilter.java | 15 +-
.../apache/unomi/scripting/MvelScriptExecutor.java | 83 ++--
.../scripting/SecureFilteringClassLoader.java | 130 ++++--
.../internal/ExpressionFilterFactoryImpl.java | 19 +-
.../unomi/scripting/ExpressionFilterTest.java | 46 ++
.../unomi/scripting/MvelScriptExecutorTest.java | 146 +++++-
.../scripting/SecureFilteringClassLoaderTest.java | 118 +++++
.../internal/ExpressionFilterFactoryImplTest.java | 87 ++++
.../services/impl/TypeResolutionServiceImpl.java | 34 +-
.../services/impl/events/EventServiceImpl.java | 5 +-
.../services/impl/tenants/TenantServiceImpl.java | 19 +
.../unomi/services/impl/TestTenantService.java | 6 +
.../impl/TypeResolutionServiceImplTest.java | 22 +
121 files changed, 6055 insertions(+), 858 deletions(-)
copy
extensions/{json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationException.java
=>
groovy-actions/rest/src/test/java/org/apache/unomi/groovy/actions/rest/GroovyActionsEndPointRoleTest.java}
(51%)
copy
extensions/groovy-actions/services/src/test/resources/META-INF/cxs/actions/{testSaveAction.groovy
=> fieldInitializerAction.groovy} (64%)
create mode 100644
extensions/json-schema/services/src/test/java/org/apache/unomi/schema/impl/SchemaPatternSafetyTest.java
create mode 100644
extensions/router/router-rest/src/test/java/org/apache/unomi/router/rest/RouterConfigurationEndPointRoleTest.java
create mode 100644
graphql/cxs-impl/src/test/java/org/apache/unomi/graphql/commands/ProcessEventsCommandTest.java
create mode 100644
itests/src/test/java/org/apache/unomi/itests/ConditionRegexSafetyIT.java
create mode 100644
itests/src/test/java/org/apache/unomi/itests/GroovyActionsEndpointRoleSecurityIT.java
create mode 100644
itests/src/test/java/org/apache/unomi/itests/RouterEndpointRoleSecurityIT.java
create mode 100644
itests/src/test/java/org/apache/unomi/itests/SchemaIdPatternSafetyIT.java
rename
itests/src/test/java/org/apache/unomi/itests/{V2CompatibilityModeIT.java =>
SingleTenantCompatibilityModeIT.java} (76%)
create mode 100644
itests/src/test/java/org/apache/unomi/itests/graphql/GraphQLProfileEventsScopeIT.java
create mode 100644
itests/src/test/resources/graphql/security/bypass-ambiguous-multi-operation.json
create mode 100644
itests/src/test/resources/graphql/security/bypass-extra-root-field.json
create mode 100644
itests/src/test/resources/graphql/security/bypass-fragment-spread.json
create mode 100644
itests/src/test/resources/graphql/security/bypass-introspection-named.json
create mode 100644
itests/src/test/resources/graphql/security/bypass-leading-fragment.json
create mode 100644
itests/src/test/resources/graphql/security/bypass-operation-name-smuggle.json
create mode 100644
itests/src/test/resources/graphql/security/profile-events-scope.json
create mode 100644
itests/src/test/resources/security/mvel-payload-personalization-mixed.json
copy itests/src/test/resources/validation/{eventcollector_valid.json =>
eventcollector_noSessionId.json} (83%)
create mode 100644
plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/IdentityTrust.java
create mode 100644
plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/actions/ActionIdentityIntrusionTest.java
create mode 100644
plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/actions/MergeProfilesOnPropertyActionTest.java
create mode 100644
plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/actions/UpdatePropertiesActionTest.java
create mode 100644
plugins/request/src/test/java/org/apache/unomi/plugins/request/actions/SetRemoteHostInfoActionTest.java
create mode 100644
rest/src/main/java/org/apache/unomi/rest/service/RequestIdentifierValidator.java
create mode 100644
rest/src/test/java/org/apache/unomi/rest/endpoints/PublicTrackerCorsTest.java
create mode 100644
rest/src/test/java/org/apache/unomi/rest/service/RequestIdentifierValidatorTest.java
create mode 100755 samples/login-integration/setup.sh
copy rest/src/main/java/org/apache/unomi/rest/server/RestServerBus.java =>
samples/login-integration/src/main/java/org/apache/unomi/samples/login/LoginSampleResources.java
(59%)
create mode 100644
samples/login-integration/src/main/java/org/apache/unomi/samples/login/LoginServlet.java
create mode 100644
samples/login-integration/src/main/resources/static/index.html
create mode 100644
samples/login-integration/src/main/resources/static/javascript/login-example.js
delete mode 100644 samples/login-integration/src/main/webapp/WEB-INF/web.xml
delete mode 100644 samples/login-integration/src/main/webapp/index.html
delete mode 100644
samples/login-integration/src/main/webapp/javascript/login-example.js
create mode 100644
samples/login-integration/src/test/java/org/apache/unomi/samples/login/LoginServletTest.java
create mode 100644
scripting/src/test/java/org/apache/unomi/scripting/ExpressionFilterTest.java
create mode 100644
scripting/src/test/java/org/apache/unomi/scripting/SecureFilteringClassLoaderTest.java
create mode 100644
scripting/src/test/java/org/apache/unomi/scripting/internal/ExpressionFilterFactoryImplTest.java