[security-dev] deleting a partition

Pedro Igor Silva psilva at redhat.com
Fri Jun 14 13:12:22 EDT 2013


I just don't think we should "automatically" do something like that. If you want to delete them, you can do it by yourself.

This is a critical thing. Not sure if we should do that internally, but just allow users to do it if they want.

You can query all u/r/g for a specific partition and delete them by yourself, using the Query API.

----- Original Message -----
From: "Bill Burke" <bburke at redhat.com>
To: "Pedro Igor Silva" <psilva at redhat.com>
Cc: security-dev at lists.jboss.org
Sent: Friday, June 14, 2013 2:02:32 PM
Subject: Re: [security-dev] deleting a partition

I don't agree. What's your reasoning?  At least in my case, because an 
Application is going to be a Partition, i'll need to have an operation 
somewhere that deletes the roles/role mappings somewhere.

On 6/14/2013 12:10 PM, Pedro Igor Silva wrote:
> IMO, we should not delete u/g/r and raise an exception instead. Telling the user that a partition can not be removed because of the associated data (u/r/g).
>
> If he wants to remove, he must remove first all related identity data.
>
> Btw, we were doing that before the last refactoring to the Partition API.
>
> ----- Original Message -----
> From: "Bill Burke" <bburke at redhat.com>
> To: security-dev at lists.jboss.org
> Sent: Friday, June 14, 2013 12:38:12 PM
> Subject: [security-dev] deleting a partition
>
> I'm looking at how to delete a partition and its not that simple.  Is
> this good enough?  First I delete all Agents, users, groups, and roles.
>    Relationships should be deleted too right?
>
>           List<AttributedType> toRemove = new ArrayList<AttributedType>();
>           {
>               IdentityQuery<IdentityType> query = new
> DefaultIdentityQuery(context, Agent.class, this);
>               List<IdentityType> resultSet = fetchQueryResults(context,
> query);
>               toRemove.addAll(resultSet);
>           }
>           {
>               IdentityQuery<IdentityType> query = new
> DefaultIdentityQuery(context, User.class, this);
>               List<IdentityType> resultSet = fetchQueryResults(context,
> query);
>               toRemove.addAll(resultSet);
>           }
>           {
>               IdentityQuery<IdentityType> query = new
> DefaultIdentityQuery(context, Group.class, this);
>               List<IdentityType> resultSet = fetchQueryResults(context,
> query);
>               toRemove.addAll(resultSet);
>           }
>           {
>               IdentityQuery<IdentityType> query = new
> DefaultIdentityQuery(context, Role.class, this);
>               List<IdentityType> resultSet = fetchQueryResults(context,
> query);
>               toRemove.addAll(resultSet);
>           }
>
> I do this all at the IdentityStore level, after this, I delete the
> partition entry using IdentityStore specific routines.
>
>

-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the security-dev mailing list