}
Map<String, Object> contextMap = new HashMap<String, Object>();
contextMap.put(SHARED_TOKEN, this.samlToken);
AssertionType assertion = null;
try {
assertion = SAMLUtil.fromElement(samlToken);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (principalMappingContext != null) {
principalMappingContext.performMapping(contextMap, null);
Principal principal = principalMappingContext.getMappingResult().getMappedObject();
subject.getPrincipals().add(principal);
// If the user has configured cache invalidation of subject based on saml token expiry
if (enableCacheInvalidation) {
TimeCacheExpiry cacheExpiry = JBossAuthCacheInvalidationFactory.getCacheExpiry();
XMLGregorianCalendar expiry = AssertionUtil.getExpiration(assertion);
if (expiry != null) {
cacheExpiry.register(securityDomain, expiry.toGregorianCalendar().getTime(), principal);
} else {
logger.samlAssertionWithoutExpiration(assertion.getID());
}
}
}
if (roleMappingContext != null) {