Hi Andrey,
Here it is:
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
This is the listener you need to replace, and you need to care about
the readWriteLock mechanism in place in the original version.
For the rest, your implementation looks ok, but it is harsh to clean the
whole cache, and it would be better to be more granular if possible (at
least per wiki, per user, per group, per space…, regarding the per group
case, be careful of the special case adding a user to a group introduce,
since you also need to drop that new user in addition to the group it
joins).
Regards,
On Mon, Apr 25, 2016 at 6:37 PM, abtv <andreybutov(a)mail.ru> wrote:
I haven't found
SecurityCacheRulesInvalidatorListener class/interface and
implemented it in the following (code below). Can I clean cache like this?
public class CleanCacheEvent extends AbstractWikiEvent {
public CleanCacheEvent(){
super();
}
}
@Component
@Named("SecurityCacheRulesInvalidatorListener")
@Singleton
public class CustomSecurityCacheRulesInvalidatorListener extends
AbstractEventListener {
@Inject
private SecurityCache securityCache;
@Inject
private SecurityReferenceFactory securityReferenceFactory;
public CustomSecurityCacheRulesInvalidatorListener() {
super("SecurityCacheRulesInvalidatorListener", new
CleanCacheEvent());
}
public void onEvent(Event event, Object source, Object data) {
System.out.println("on invalidator listener event");
SecurityReference root =
securityReferenceFactory.newEntityReference(null);
securityCache.remove(root);
System.out.println("cache was cleaned");
}
}
--
View this message in context:
http://xwiki.475771.n2.nabble.com/How-to-invalidate-security-cache-tp759913…
Sent from the XWiki- Dev mailing list archive at
Nabble.com.
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Denis Gervalle
SOFTEC sa - CEO