@Nonnull @NotEmpty final String configName, @Nullable final Subject subject) { if (subject != null && requestedPrincipalCtx != null && requestedPrincipalCtx.getOperator() != null) { log.debug("{} Request contains principal requirements, evaluating JAAS config '{}' for compatibility", getLogPrefix(), configName); final PrincipalEvalPredicateFactory factory = requestedPrincipalCtx.getPrincipalEvalPredicateFactoryRegistry().lookup( p.getClass(), requestedPrincipalCtx.getOperator()); if (factory != null) { final PrincipalEvalPredicate predicate = factory.getPredicate(p); if (predicate.apply(wrapper)) { log.debug("{} JAAS config '{}' compatible with principal type '{}' and operator '{}'", getLogPrefix(), configName, p.getClass(), requestedPrincipalCtx.getOperator()); requestedPrincipalCtx.setMatchingPrincipal(predicate.getMatchingPrincipal()); return true; } else { log.debug("{} JAAS config '{}' not compatible with principal type '{}' and operator '{}'", getLogPrefix(), configName, p.getClass(), requestedPrincipalCtx.getOperator()); getLogPrefix(), p.getClass(), requestedPrincipalCtx.getOperator());
getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getName()); final PrincipalEvalPredicateFactory factory = requestedPrincipalCtx.getPrincipalEvalPredicateFactoryRegistry().lookup( p.getClass(), requestedPrincipalCtx.getOperator()); if (factory != null) { final PrincipalEvalPredicate predicate = factory.getPredicate(p); + "operator '{}' and type '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getClass());
if (rpCtx != null && rpCtx.getOperator() != null && !getSubject().getPrincipals().isEmpty()) { log.debug("{} Request contains principal requirements, evaluating for compatibility", getLogPrefix()); for (final Principal p : rpCtx.getRequestedPrincipals()) { final PrincipalEvalPredicateFactory factory = rpCtx.getPrincipalEvalPredicateFactoryRegistry().lookup(p.getClass(), rpCtx.getOperator()); if (factory != null) { final PrincipalEvalPredicate predicate = factory.getPredicate(p); if (predicate.apply(this)) { log.debug("{} Compatible with principal type '{}' and operator '{}'", getLogPrefix(), p.getClass(), rpCtx.getOperator()); rpCtx.setMatchingPrincipal(predicate.getMatchingPrincipal()); return true; } else { log.debug("{} Not compatible with principal type '{}' and operator '{}'", getLogPrefix(), p.getClass(), rpCtx.getOperator()); getLogPrefix(), p.getClass(), rpCtx.getOperator());
getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getName()); final PrincipalEvalPredicate predicate = requestedPrincipalCtx.getPredicate(p); if (predicate != null) { + "operator '{}' and type '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getClass());
if (requestedPrincipalCtx.getOperator() == null || requestedPrincipalCtx.getRequestedPrincipals().isEmpty()) { requestedPrincipalCtx = null;
getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getName()); final PrincipalEvalPredicate predicate = requestedPrincipalCtx.getPredicate(p); if (predicate != null) { + "operator '{}' and type '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getClass()); + "operator '{}' and principal '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getName()); final PrincipalEvalPredicate predicate = requestedPrincipalCtx.getPredicate(p); + "operator '{}' and type '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getClass());
requestedPrincipalCtx.getOperator(), requestedPrincipalCtx.getRequestedPrincipals());
getLogPrefix(), rpCtx.getOperator(), principals.size());
log.warn("{} Configuration does not support requested principal evaluation with " + "operator '{}' and type '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getClass()); + "operator '{}' and type '{}'", getLogPrefix(), requestedPrincipalCtx.getOperator(), p.getClass());