package org.jboss.seam.security.external.saml.sp; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.enterprise.context.SessionScoped; import org.jboss.seam.security.external.saml.api.SamlPrincipal; import org.jboss.seam.security.external.saml.api.SamlSpSession; /** * @author Marcel Kolsteren */ @SessionScoped public class SamlSpSessions implements Serializable { private static final long serialVersionUID = 6297278286428111620L; private Set<SamlSpSessionImpl> sessions = new HashSet<SamlSpSessionImpl>(); public void addSession(SamlSpSessionImpl session) { sessions.add(session); } public void removeSession(SamlSpSessionImpl session) { sessions.remove(session); } public Set<SamlSpSessionImpl> getSessions() { return sessions; } public SamlSpSession getSession(SamlPrincipal samlPrincipal, String idpEntityId, String sessionIndex) { for (SamlSpSessionImpl session : sessions) { if (session.getPrincipal().equals(samlPrincipal) && session.getIdentityProvider().getEntityId().equals(idpEntityId) && session.getSessionIndex().equals(sessionIndex)) { return session; } } return null; } }