[Igor Artamonov](https://jira.spring.io/secure/ViewProfile.jspa?name=iartamonov) (Migrated from [SEC-2342](https://jira.spring.io/browse/SEC-2342?redirect=false)) said: `DefaultPermissionGrantingStrategy.isGranted` uses direct comparison for the permission `mask`: ``` //line :68 if ((ace.getPermission().getMask() == p.getMask()) && ace.getSid().equals(sid)) { ``` So, for: - composite mask "_RW_" (`ace` mask is 3) - when we require "_R_" (`p` mask is 1) permission `isGranted` will return `false`. I believe there should be `&` used, instead of `==`