@Override
public Boolean tryCheckAuthorization(SecurityContextHolder context) {
if(!checkRoles(context, route.getRoles())) {
context.setDenyMessage("Roles [" + Strings.join(route.getRoles(), ',') + "] required");
return false;
}
if(!checkPermissions(context, route.getPermissions())) {
context.setDenyMessage("Permissions [" + Strings.join(route.getPermissions(), ',') + "] required");
return false;
}
SimpleSecurity[] securities = context.getSecurities();
if(null != securities && securities.length > 0) {
for(SimpleSecurity security : securities) {
if(checkPermissions(context, security.getPermissions()) &&
checkRoles(context, security.getRoles())) {
return true;
}
}
context.setDenyMessage(getAuthorizationDenyMessage(context.getAuthentication(), securities));
return false;
}
return null;
}