I too recently discovered this is broken. I have created a fix that is currently being tested at a client, and which I will try to make available via the appstore soon.
If you don't mind doing the dirty work yourself, you can edit the following Java files. As I said, this is not confirmed to work 100% yet, so at your own risk :)
saml20/implementation/metadata/IdPMetadata.java, lines 136-151 (function findSupportedEntity()), replace with:
public Metadata findSupportedEntity(String entityId) {
if (this.metadataSet.containsKey(entityId)) {
return this.metadataSet.get(entityId);
}
if (this.AliasSet.containsKey(entityId)) {
if (this.metadataSet.containsKey(this.AliasSet.get(entityId))){
return this.metadataSet.get(this.AliasSet.get(entityId));
}
}
_logNode.debug("No supported Entity Ids found in set: " + entityId + " supported ids: " + this.metadataSet.keySet() + ", aliases: " + this.AliasSet.keySet());
return null;
}
And saml20/implementation/LoginHandler.java lines 57-59 (just before the if(metadata!=null), replace by
metadata = idpMetadata.findSupportedEntity(samlIdp);