// check against constraints
Iterator checkConstraintsIter = checkConstraints.iterator();
while (checkConstraintsIter.hasNext())
{
SecurityConstraintImpl constraint = (SecurityConstraintImpl)checkConstraintsIter.next();
// if permissions specified, attempt to match constraint
if (constraint.getPermissions() != null)
{
// explicit actions permitted
anyActionsPermitted = true;
// test action permission match and user/role/group principal match
if (constraint.actionMatch(action) &&
constraint.principalsMatch(userPrincipals, rolePrincipals, groupPrincipals, true))
{
actionPermitted = true;
break;
}
}
else
{
// permissions not specified: not permitted if any principal matched
if (constraint.principalsMatch(userPrincipals, rolePrincipals, groupPrincipals, false))
{
actionNotPermitted = true;
break;
}
}