/******************************************************************************* *******************************************************************************/ package at.gv.egiz.eaaf.modules.pvp2.impl.verification; import org.opensaml.saml2.core.AuthnRequest; import org.opensaml.saml2.core.NameID; import org.opensaml.saml2.core.NameIDPolicy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException; import at.gv.egiz.eaaf.modules.pvp2.exception.NameIDFormatNotSupportedException; /** * @author tlenz * */ public class AuthnRequestValidator { private static final Logger log = LoggerFactory.getLogger(AuthnRequestValidator.class); public static void validate(AuthnRequest req) throws AuthnRequestValidatorException{ //validate NameIDPolicy NameIDPolicy nameIDPolicy = req.getNameIDPolicy(); if (nameIDPolicy != null) { String nameIDFormat = nameIDPolicy.getFormat(); if (nameIDFormat != null) { if ( !(NameID.TRANSIENT.equals(nameIDFormat) || NameID.PERSISTENT.equals(nameIDFormat) || NameID.UNSPECIFIED.equals(nameIDFormat)) ) { throw new NameIDFormatNotSupportedException(nameIDFormat); } } else log.trace("Find NameIDPolicy, but NameIDFormat is 'null'"); } else log.trace("AuthnRequest includes no 'NameIDPolicy'"); } }