public boolean match ( Permission p ) { if ( p instanceof AAFPermission ) { AAFPermission ap = ( AAFPermission ) p ; // Note: In AAF > 1.0, Accepting "*" from name would violate multi-tenancy // Current solution is only allow direct match on Type. // 8/28/2014 - added REGEX ability if ( type . equals ( ap . getName ( ) ) ) if ( PermEval . evalInstance ( instance , ap . getInstance ( ) ) ) if ( PermEval . evalAction ( action , ap . getAction ( ) ) ) return true ; } else { // Permission is concatenated together: separated by | String [ ] aaf = p . getKey ( ) . split ( "[\\s]*\\|[\\s]*" , 3 ) ; if ( aaf . length > 0 && type . equals ( aaf [ 0 ] ) ) if ( PermEval . evalInstance ( instance , aaf . length > 1 ? aaf [ 1 ] : "*" ) ) if ( PermEval . evalAction ( action , aaf . length > 2 ? aaf [ 2 ] : "*" ) ) return true ; } return false ; }
Match a Permission if Permission is Fielded type Permission we use the fields otherwise we split the Permission with |