if (supportedClaims.isEmpty()) {
continue;
}
if (handler instanceof RealmSupport) {
RealmSupport handlerRealmSupport = (RealmSupport)handler;
// Check whether the handler supports the current realm
if (handlerRealmSupport.getSupportedRealms() != null
&& handlerRealmSupport.getSupportedRealms().size() > 0
&& handlerRealmSupport.getSupportedRealms().indexOf(parameters.getRealm()) == -1) {
if (LOG.isLoggable(Level.FINER)) {
LOG.finer("Handler '" + handler.getClass().getName() + "' doesn't support"
+ " realm '" + parameters.getRealm() + "'");
}
continue;
}
// If handler realm is configured and different from current realm
// do an identity mapping
if (handlerRealmSupport.getHandlerRealm() != null
&& !handlerRealmSupport.getHandlerRealm().equalsIgnoreCase(parameters.getRealm())) {
Principal targetPrincipal = null;
try {
if (LOG.isLoggable(Level.FINE)) {
LOG.fine("Mapping user '" + parameters.getPrincipal().getName()
+ "' [" + parameters.getRealm() + "] to realm '"
+ handlerRealmSupport.getHandlerRealm() + "'");
}
targetPrincipal = doMapping(parameters.getRealm(), parameters.getPrincipal(),
handlerRealmSupport.getHandlerRealm());
} catch (Exception ex) {
LOG.log(Level.WARNING, "Failed to map user '" + parameters.getPrincipal().getName()
+ "' [" + parameters.getRealm() + "] to realm '"
+ handlerRealmSupport.getHandlerRealm() + "'", ex);
throw new STSException("Failed to map user for claims handler",
STSException.REQUEST_FAILED);
}
if (targetPrincipal == null) {
LOG.log(Level.WARNING, "Null. Failed to map user '" + parameters.getPrincipal().getName()
+ "' [" + parameters.getRealm() + "] to realm '"
+ handlerRealmSupport.getHandlerRealm() + "'");
throw new STSException("Failed to map user for claims handler",
STSException.REQUEST_FAILED);
}
if (LOG.isLoggable(Level.INFO)) {
LOG.info("Principal '" + targetPrincipal.getName()