Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Security Manager and Branches
[CDO] Security Manager and Branches [message #1610032] Tue, 10 February 2015 14:02 Go to next message
Samuel Leisering is currently offline Samuel LeiseringFriend
Messages: 34
Registered: July 2014
Member
Hi,
I have a CDO Repository set up including a security realm with a few permissions.
Branching the repository works, and the permissions are applied, even when working on branches.

As i understand the code, and a few related bugzillas, the security manager is supposed to work that way, ie. maintaing the realm on the Main branch.

However if i start to structurally change the model in a branch, i get occasional IllegalStateException with the Message "Security not supported with auditing or branching" in updatePermissions(CDOSessionImpl.java:1945), even though i did not change anything in the security realm. The change is successfully commited though. Afaik this happens only when moving items in the model to different locations, but creating and changing items works. Every subsequent commit (after this exception) is extremely slow, without any output whatsoever (~5 seconds instead of a few milliseconds), but still comes through.But commit operations that are that slow are not really viable. After reconnecting to the server everything works again (at least until it happens again)

I tried to debug what happens, and it seems that the Session gets an invalidation notification about the commit and it is tagged as IMPACT_PERMISSIONS by the server (That may be correct though, it is not really clear to see what that is supposed to do by just looking at the code).

I tried to remove the exception and return null instead, just to see what happens, and it seemed to work...

Is there something i did wrong?

Greetings,
Samuel
Re: [CDO] Security Manager and Branches [message #1610062 is a reply to message #1610032] Tue, 10 February 2015 14:26 Go to previous message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6444
Registered: July 2009
Senior Member
Hi Samuel,

I think the exception is not related to any particular operation that you apply to your model.

The problem is conceptual and quite tricky:

The computed permission of an object can depend not only on that object itself, but also on other reachable objects in
the object graph. The object graph is represented by a CDOView. The computed permission is stored in the CDORevision
that backs the object and that revision is shared among different objects (with the same CDOID) in different views. Now
it can happen that two such objects are structurally identical but have different neighbourhoods and that could result
in different permissions which would both have to be stored in the same CDORevision.

To address this problem the entire security infrastructure would have to be changed; probably a multi-week effort ;-(

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper



Am 10.02.2015 um 15:02 schrieb Samuel Leisering:
> Hi,
> I have a CDO Repository set up including a security realm with a few permissions.
> Branching the repository works, and the permissions are applied, even when working on branches.
>
> As i understand the code, and a few related bugzillas, the security manager is supposed to work that way, ie.
> maintaing the realm on the Main branch.
>
> However if i start to structurally change the model in a branch, i get occasional IllegalStateException with the
> Message "Security not supported with auditing or branching" in updatePermissions(CDOSessionImpl.java:1945), even
> though i did not change anything in the security realm. The change is successfully commited though. Afaik this
> happens only when moving items in the model to different locations, but creating and changing items works. Every
> subsequent commit (after this exception) is extremely slow, without any output whatsoever (~5 seconds instead of a few
> milliseconds), but still comes through.But commit operations that are that slow are not really viable. After
> reconnecting to the server everything works again (at least until it happens again)
>
> I tried to debug what happens, and it seems that the Session gets an invalidation notification about the commit and it
> is tagged as IMPACT_PERMISSIONS by the server (That may be correct though, it is not really clear to see what that is
> supposed to do by just looking at the code).
>
> I tried to remove the exception and return null instead, just to see what happens, and it seemed to work...
> Is there something i did wrong?
>
> Greetings,
> Samuel


Previous Topic:[CDO] How to import/apply CDOChangeSetData
Next Topic:Strange behaviour of eGet-function
Goto Forum:
  


Current Time: Wed Sep 18 05:24:02 GMT 2019

Powered by FUDForum. Page generated in 0.02187 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top