[ 
https://issues.apache.org/jira/browse/IGNITE-28944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18102473#comment-18102473
 ] 

Ilya Shishkov commented on IGNITE-28944:
----------------------------------------

[~PetrovMikhail], huge thanks for your review! Merged to master.

> Refactor SecurityBasicPermissionSet
> -----------------------------------
>
>                 Key: IGNITE-28944
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28944
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Ilya Shishkov
>            Assignee: Ilya Shishkov
>            Priority: Minor
>              Labels: IEP-132, ise
>             Fix For: 2.19
>
>         Attachments: SecurityBasicPermissionSetSerializationTest.java
>
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> 1) Currently {{#equals}} and {{#hashCode}} will be broken if you use 
> different collection types:
> {code:java}
> set.setCachePermissions(Map.of("cache", List.of(CACHE_PUT));
> {code}
> will have different hashCode with such permission set:
> {code:java}
> set.setCachePermissions(Map.of("cache", Set.of(CACHE_PUT));
> {code}
> 2) By default in message framework deserialization process of field of type 
> {{Collection}} is backed by {{ArrayList}}.  If we want to use {{Set}}, we 
> should change type parameter in {{SecurityBasicPermissionSet}} as shown below:
> {code:java}
> Map<String, Set<SecurityPermission>> taskPermissions;
> {code}
> ----
> Both 1) and 2) leads to situation, when local and remote (read from 
> `MessageReader`) `SecurityBasicPermissionSet` sets can be unequal and even 
> duplicated in collections.
> Easily reproduced in slightly modified  
> [^SecurityBasicPermissionSetSerializationTest.java] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to