You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by dr...@apache.org on 2016/07/06 14:07:44 UTC
incubator-unomi git commit: UNOMI-39 : handle anonymous browsing
Repository: incubator-unomi
Updated Branches:
refs/heads/master 4b68e2f74 -> f061241c5
UNOMI-39 : handle anonymous browsing
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/f061241c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/f061241c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/f061241c
Branch: refs/heads/master
Commit: f061241c50313e7740c9647be83809a5b2f208f8
Parents: 4b68e2f
Author: Thomas Draier <dr...@apache.org>
Authored: Wed Jul 6 16:07:35 2016 +0200
Committer: Thomas Draier <dr...@apache.org>
Committed: Wed Jul 6 16:07:35 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/unomi/api/Profile.java | 6 ++
.../unomi/api/services/PrivacyService.java | 7 ++-
.../privacy/rest/PrivacyServiceEndPoint.java | 6 +-
.../privacy/internal/PrivacyServiceImpl.java | 64 +++++++++++---------
.../AllEventToProfilePropertiesAction.java | 3 +
.../actions/EvaluateProfileSegmentsAction.java | 3 +
.../actions/EventToProfilePropertyAction.java | 3 +
.../actions/MergeProfilesOnPropertyAction.java | 2 +-
.../baseplugin/actions/SetPropertyAction.java | 7 ++-
.../BooleanConditionESQueryBuilder.java | 3 +-
.../org/apache/unomi/web/ContextServlet.java | 34 ++++++-----
.../unomi/web/EventsCollectorServlet.java | 26 +++-----
12 files changed, 96 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/api/src/main/java/org/apache/unomi/api/Profile.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/unomi/api/Profile.java b/api/src/main/java/org/apache/unomi/api/Profile.java
index 7163e00..4490bb1 100644
--- a/api/src/main/java/org/apache/unomi/api/Profile.java
+++ b/api/src/main/java/org/apache/unomi/api/Profile.java
@@ -194,6 +194,12 @@ public class Profile extends Item {
this.scores = scores;
}
+ @XmlTransient
+ public boolean isAnonymousProfile() {
+ Boolean anonymous = (Boolean) getSystemProperties().get("isAnonymousProfile");
+ return anonymous != null && anonymous;
+ }
+
@Override
public String toString() {
return new StringBuilder(512).append("{id: \"").append(getItemId()).append("\", segments: ")
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/api/src/main/java/org/apache/unomi/api/services/PrivacyService.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/unomi/api/services/PrivacyService.java b/api/src/main/java/org/apache/unomi/api/services/PrivacyService.java
index 999db48..6d22678 100644
--- a/api/src/main/java/org/apache/unomi/api/services/PrivacyService.java
+++ b/api/src/main/java/org/apache/unomi/api/services/PrivacyService.java
@@ -17,6 +17,7 @@
package org.apache.unomi.api.services;
+import org.apache.unomi.api.Profile;
import org.apache.unomi.api.ServerInfo;
import java.util.List;
@@ -36,9 +37,11 @@ public interface PrivacyService {
Boolean deleteProfileData(String profileId);
- Boolean setAnonymous(String profileId, boolean anonymous);
+ Boolean setRequireAnonymousBrowsing(String profileId, boolean anonymous);
- Boolean isAnonymous(String profileId);
+ Boolean isRequireAnonymousBrowsing(String profileId);
+
+ Profile getAnonymousProfile();
List<String> getFilteredEventTypes(String profileId);
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/extensions/privacy-extension/rest/src/main/java/org/apache/unomi/privacy/rest/PrivacyServiceEndPoint.java
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/rest/src/main/java/org/apache/unomi/privacy/rest/PrivacyServiceEndPoint.java b/extensions/privacy-extension/rest/src/main/java/org/apache/unomi/privacy/rest/PrivacyServiceEndPoint.java
index 45a6146..8310863 100644
--- a/extensions/privacy-extension/rest/src/main/java/org/apache/unomi/privacy/rest/PrivacyServiceEndPoint.java
+++ b/extensions/privacy-extension/rest/src/main/java/org/apache/unomi/privacy/rest/PrivacyServiceEndPoint.java
@@ -80,20 +80,20 @@ public class PrivacyServiceEndPoint {
@GET
@Path("/profiles/{profileId}/anonymous")
public Boolean isAnonymous(@PathParam("profileId") String profileId) {
- return privacyService.isAnonymous(profileId);
+ return privacyService.isRequireAnonymousBrowsing(profileId);
}
@POST
@Path("/profiles/{profileId}/anonymous")
public Response activateAnonymousSurfing(@PathParam("profileId") String profileId) {
- privacyService.setAnonymous(profileId, true);
+ privacyService.setRequireAnonymousBrowsing(profileId, true);
return Response.ok().build();
}
@DELETE
@Path("/profiles/{profileId}/anonymous")
public Response deactivateAnonymousSurfing(@PathParam("profileId") String profileId) {
- privacyService.setAnonymous(profileId, false);
+ privacyService.setRequireAnonymousBrowsing(profileId, false);
return Response.ok().build();
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java b/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
index 9ba5ddd..c885dc9 100644
--- a/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
+++ b/extensions/privacy-extension/services/src/main/java/org/apache/unomi/privacy/internal/PrivacyServiceImpl.java
@@ -89,28 +89,28 @@ public class PrivacyServiceImpl implements PrivacyService {
@Override
public String anonymizeBrowsingData(String profileId) {
- Profile profile = profileService.load(profileId);
- if (profile == null) {
- return profileId;
- }
- Profile newProfile = new Profile(UUID.randomUUID().toString());
- // first we copy all the profile data to the new Profile
- newProfile.setMergedWith(profile.getMergedWith());
- newProfile.setProperties(profile.getProperties());
- newProfile.setScores(profile.getScores());
- newProfile.setSegments(profile.getSegments());
- newProfile.setSystemProperties(profile.getSystemProperties());
- newProfile.setScope(profile.getScope());
- profileService.save(newProfile);
- // then we clear the old profile of all data
- profile.setMergedWith(null);
- profile.setProperties(new HashMap<String, Object>());
- profile.setScores(new HashMap<String, Integer>());
- profile.setSegments(new HashSet<String>());
- profile.setSystemProperties(new HashMap<String, Object>());
- profile.setScope(null);
- profileService.save(profile);
- return newProfile.getItemId();
+// Profile profile = profileService.load(profileId);
+// if (profile == null) {
+// return profileId;
+// }
+// Profile newProfile = new Profile(UUID.randomUUID().toString());
+// // first we copy all the profile data to the new Profile
+// newProfile.setMergedWith(profile.getMergedWith());
+// newProfile.setProperties(profile.getProperties());
+// newProfile.setScores(profile.getScores());
+// newProfile.setSegments(profile.getSegments());
+// newProfile.setSystemProperties(profile.getSystemProperties());
+// newProfile.setScope(profile.getScope());
+// profileService.save(newProfile);
+// // then we clear the old profile of all data
+// profile.setMergedWith(null);
+// profile.setProperties(new HashMap<String, Object>());
+// profile.setScores(new HashMap<String, Integer>());
+// profile.setSegments(new HashSet<String>());
+// profile.setSystemProperties(new HashMap<String, Object>());
+// profile.setScope(null);
+// profileService.save(profile);
+ return null;
}
@Override
@@ -132,23 +132,31 @@ public class PrivacyServiceImpl implements PrivacyService {
}
@Override
- public Boolean setAnonymous(String profileId, boolean anonymous) {
+ public Boolean setRequireAnonymousBrowsing(String profileId, boolean anonymous) {
Profile profile = profileService.load(profileId);
if (profile == null) {
return false;
}
- profile.setProperty("anonymous", anonymous);
+ profile.getSystemProperties().put("requireAnonymousProfile", anonymous);
profileService.save(profile);
return true;
}
- public Boolean isAnonymous(String profileId) {
+ public Boolean isRequireAnonymousBrowsing(String profileId) {
Profile profile = profileService.load(profileId);
if (profile == null) {
- return null;
+ return false;
}
- Boolean anonymous = (Boolean) profile.getProperty("anonymous");
- return anonymous;
+ Boolean anonymous = (Boolean) profile.getSystemProperties().get("requireAnonymousProfile");
+ return anonymous != null && anonymous;
+ }
+
+ public Profile getAnonymousProfile() {
+ String id = UUID.randomUUID().toString();
+ Profile anonymousProfile = new Profile(id);
+ anonymousProfile.getSystemProperties().put("isAnonymousProfile", true);
+ profileService.save(anonymousProfile);
+ return anonymousProfile;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/AllEventToProfilePropertiesAction.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/AllEventToProfilePropertiesAction.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/AllEventToProfilePropertiesAction.java
index 341db32..33b79e9 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/AllEventToProfilePropertiesAction.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/AllEventToProfilePropertiesAction.java
@@ -37,6 +37,9 @@ public class AllEventToProfilePropertiesAction implements ActionExecutor {
@SuppressWarnings({ "unchecked", "rawtypes" })
public int execute(Action action, Event event) {
+ if (event.getProfile().isAnonymousProfile()) {
+ return EventService.NO_CHANGE;
+ }
boolean changed = false;
Map<String, Object> properties = new HashMap<String,Object>();
if (event.getProperties() != null) {
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EvaluateProfileSegmentsAction.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EvaluateProfileSegmentsAction.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EvaluateProfileSegmentsAction.java
index cd7ac85..2002eff 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EvaluateProfileSegmentsAction.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EvaluateProfileSegmentsAction.java
@@ -41,6 +41,9 @@ public class EvaluateProfileSegmentsAction implements ActionExecutor {
@Override
public int execute(Action action, Event event) {
+ if (event.getProfile().isAnonymousProfile()) {
+ return EventService.NO_CHANGE;
+ }
boolean updated = false;
SegmentsAndScores segmentsAndScoringForProfile = segmentService.getSegmentsAndScoresForProfile(event.getProfile());
Set<String> segments = segmentsAndScoringForProfile.getSegments();
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EventToProfilePropertyAction.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EventToProfilePropertyAction.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EventToProfilePropertyAction.java
index 2e7617c..f8391d7 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EventToProfilePropertyAction.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/EventToProfilePropertyAction.java
@@ -28,6 +28,9 @@ import org.apache.unomi.api.services.EventService;
public class EventToProfilePropertyAction implements ActionExecutor {
public int execute(Action action, Event event) {
+ if (event.getProfile().isAnonymousProfile()) {
+ return EventService.NO_CHANGE;
+ }
String eventPropertyName = (String) action.getParameterValues().get("eventPropertyName");
String profilePropertyName = (String) action.getParameterValues().get("profilePropertyName");
if (event.getProfile().getProperty(profilePropertyName) == null || !event.getProfile().getProperty(profilePropertyName).equals(event.getProperty(eventPropertyName))) {
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/MergeProfilesOnPropertyAction.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/MergeProfilesOnPropertyAction.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/MergeProfilesOnPropertyAction.java
index 64ca3e9..2edc98b 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/MergeProfilesOnPropertyAction.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/MergeProfilesOnPropertyAction.java
@@ -95,7 +95,7 @@ public class MergeProfilesOnPropertyAction implements ActionExecutor {
public int execute(Action action, Event event) {
Profile profile = event.getProfile();
- if (profile instanceof Persona) {
+ if (profile instanceof Persona || profile.isAnonymousProfile()) {
return EventService.NO_CHANGE;
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
index 55c1210..0b1a877 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
@@ -36,6 +36,12 @@ public class SetPropertyAction implements ActionExecutor {
}
public int execute(Action action, Event event) {
+ boolean storeInSession = Boolean.TRUE.equals(action.getParameterValues().get("storeInSession"));
+
+ if (event.getProfile().isAnonymousProfile() && !storeInSession) {
+ return EventService.NO_CHANGE;
+ }
+
Object propertyValue = action.getParameterValues().get("setPropertyValue");
Object propertyValueInteger = action.getParameterValues().get("setPropertyValueInteger");
@@ -50,7 +56,6 @@ public class SetPropertyAction implements ActionExecutor {
}
String propertyName = (String) action.getParameterValues().get("setPropertyName");
- boolean storeInSession = Boolean.TRUE.equals(action.getParameterValues().get("storeInSession"));
Object target = storeInSession ? event.getSession() : event.getProfile();
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
index 919ce54..c41309b 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
@@ -23,6 +23,7 @@ import org.apache.unomi.persistence.elasticsearch.conditions.ConditionESQueryBui
import org.elasticsearch.index.query.FilterBuilder;
import org.elasticsearch.index.query.FilterBuilders;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -46,7 +47,7 @@ public class BooleanConditionESQueryBuilder implements ConditionESQueryBuilder {
FilterBuilder[] l = new FilterBuilder[conditionCount];
for (int i = 0; i < conditionCount; i++) {
- l[i] = dispatcher.buildFilter(conditions.get(i), context);
+ l[i] = dispatcher.buildFilter(conditions.get(i));
}
return isAndOperator ? FilterBuilders.andFilter(l) : FilterBuilders.orFilter(l);
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/wab/src/main/java/org/apache/unomi/web/ContextServlet.java
----------------------------------------------------------------------
diff --git a/wab/src/main/java/org/apache/unomi/web/ContextServlet.java b/wab/src/main/java/org/apache/unomi/web/ContextServlet.java
index 5b8b333..d45f263 100644
--- a/wab/src/main/java/org/apache/unomi/web/ContextServlet.java
+++ b/wab/src/main/java/org/apache/unomi/web/ContextServlet.java
@@ -58,7 +58,6 @@ public class ContextServlet extends HttpServlet {
private String profileIdCookieName = "context-profile-id";
private String profileIdCookieDomain;
-// private String personaIdCookieName = "context-persona-id";
@Override
@@ -86,7 +85,6 @@ public class ContextServlet extends HttpServlet {
Profile profile = null;
String cookieProfileId = null;
- String cookiePersonaId = null;
Cookie[] cookies = httpServletRequest.getCookies();
for (Cookie cookie : cookies) {
if (profileIdCookieName.equals(cookie.getName())) {
@@ -161,8 +159,7 @@ public class ContextServlet extends HttpServlet {
profile = checkMergedProfile(response, profile, session);
}
}
-
- } else if (cookieProfileId == null || !cookieProfileId.equals(profile.getItemId())) {
+ } else if ((cookieProfileId == null || !cookieProfileId.equals(profile.getItemId())) && !profile.isAnonymousProfile()) {
// profile if stored in session but not in cookie
HttpUtils.sendProfileCookie(profile, response, profileIdCookieName, profileIdCookieDomain);
}
@@ -193,6 +190,13 @@ public class ContextServlet extends HttpServlet {
}
ContextResponse data = new ContextResponse();
+ data.setProfileId(profile.isAnonymousProfile() ? cookieProfileId : profile.getItemId());
+
+ if (privacyService.isRequireAnonymousBrowsing(profile.getItemId())) {
+ profile = privacyService.getAnonymousProfile();
+ session.setProfile(profile);
+ changes = EventService.SESSION_UPDATED;
+ }
if(contextRequest != null){
changes |= handleRequest(contextRequest, profile, session, data, request, response, timestamp);
@@ -232,7 +236,7 @@ public class ContextServlet extends HttpServlet {
private Profile checkMergedProfile(ServletResponse response, Profile profile, Session session) {
String profileId;
- if (profile != null && profile.getMergedWith() != null) {
+ if (profile != null && profile.getMergedWith() != null && !profile.isAnonymousProfile()) {
profileId = profile.getMergedWith();
Profile profileToDelete = profile;
profile = profileService.load(profileId);
@@ -282,8 +286,6 @@ public class ContextServlet extends HttpServlet {
}
}
- data.setProfileId(profile.getItemId());
-
if (contextRequest.isRequireSegments()) {
data.setProfileSegments(profile.getSegments());
}
@@ -331,16 +333,18 @@ public class ContextServlet extends HttpServlet {
}
private void processOverrides(ContextRequest contextRequest, Profile profile, Session session) {
- if (contextRequest.getSegmentOverrides() != null) {
- profile.setSegments(contextRequest.getSegmentOverrides());
- }
+ if (profile instanceof Persona) {
+ if (contextRequest.getSegmentOverrides() != null) {
+ profile.setSegments(contextRequest.getSegmentOverrides());
+ }
- if (contextRequest.getProfilePropertiesOverrides() != null) {
- profile.setProperties(contextRequest.getProfilePropertiesOverrides());
- }
+ if (contextRequest.getProfilePropertiesOverrides() != null) {
+ profile.setProperties(contextRequest.getProfilePropertiesOverrides());
+ }
- if (contextRequest.getSessionPropertiesOverrides() != null) {
- session.setProperties(contextRequest.getSessionPropertiesOverrides()); // we do this just in case a cache is behind this
+ if (contextRequest.getSessionPropertiesOverrides() != null) {
+ session.setProperties(contextRequest.getSessionPropertiesOverrides()); // we do this just in case a cache is behind this
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f061241c/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java
----------------------------------------------------------------------
diff --git a/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java b/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java
index 24aa727..5e7f608 100644
--- a/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java
+++ b/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java
@@ -35,7 +35,6 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
-import java.util.Map;
public class EventsCollectorServlet extends HttpServlet {
private static final Logger logger = LoggerFactory.getLogger(EventsCollectorServlet.class.getName());
@@ -102,22 +101,6 @@ public class EventsCollectorServlet extends HttpServlet {
return;
}
- Profile realProfile = profile;
- Boolean profileIsAnonymous = privacyService.isAnonymous(profile.getItemId());
- if (profileIsAnonymous != null && profileIsAnonymous.booleanValue()) {
- // we are surfing anonymously, we must use the global anonymous profile if it exists, or create it if
- // it doesn't.
- Profile anonymousProfile = profileService.load(PrivacyService.GLOBAL_ANONYMOUS_PROFILE_ID);
- if (anonymousProfile == null) {
- anonymousProfile = new Profile(PrivacyService.GLOBAL_ANONYMOUS_PROFILE_ID);
- profileService.save(profile);
- }
- realProfile = profile;
- profile = anonymousProfile;
- }
-
- List<String> filteredEventTypes = privacyService.getFilteredEventTypes(profile.getItemId());
-
ObjectMapper mapper = CustomObjectMapper.getObjectMapper();
JsonFactory factory = mapper.getFactory();
EventsCollectorRequest events = null;
@@ -134,6 +117,15 @@ public class EventsCollectorServlet extends HttpServlet {
String thirdPartyId = eventService.authenticateThirdPartyServer(((HttpServletRequest)request).getHeader("X-Unomi-Peer"), request.getRemoteAddr());
int changes = 0;
+
+ if (privacyService.isRequireAnonymousBrowsing(profile.getItemId())) {
+ profile = privacyService.getAnonymousProfile();
+ session.setProfile(profile);
+ changes = EventService.SESSION_UPDATED;
+ }
+
+ List<String> filteredEventTypes = privacyService.getFilteredEventTypes(profile.getItemId());
+
for (Event event : events.getEvents()){
if(event.getEventType() != null){
Event eventToSend = new Event(event.getEventType(), session, profile, event.getScope(), event.getSource(), event.getTarget(), event.getProperties(), timestamp);