package org.atricore.idbus.capabilities.sso.main.emitter.plans; import org.atricore.idbus.kernel.main.authn.SSONameValuePair; import org.atricore.idbus.kernel.main.authn.SSOUser; import javax.security.auth.Subject; import java.util.Set; /** * @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a> */ public abstract class AbstractSubjectNameIDBuilder implements SubjectNameIDBuilder { protected SSOUser getSsoUser(Subject s) { Set<SSOUser> ssoUsers = s.getPrincipals(SSOUser.class); if (ssoUsers == null || ssoUsers.size() != 1) throw new RuntimeException("Subject must contain a SSOUser principal"); return ssoUsers.iterator().next(); } protected SSONameValuePair getProperty(SSOUser ssoUser, String name) { for (int i = 0; i < ssoUser.getProperties().length; i++) { SSONameValuePair nv = ssoUser.getProperties()[i]; if (nv.getName().equals(name)) return nv; } return null; } protected String getPropertyValue(SSOUser ssoUser, String name) { SSONameValuePair nv = getProperty(ssoUser, name); if (nv != null) return nv.getValue(); return null; } }