package org.jboss.seam.security.externaltest.integration.openid.op; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.servlet.http.HttpServletResponse; import org.jboss.seam.security.external.api.ResponseHolder; import org.jboss.seam.security.external.dialogues.api.Dialogue; import org.jboss.seam.security.external.dialogues.api.DialogueManager; import org.jboss.seam.security.external.openid.api.OpenIdProviderApi; import org.jboss.seam.security.external.openid.api.OpenIdRequestedAttribute; import org.jboss.seam.security.external.spi.OpenIdProviderSpi; @ApplicationScoped public class OpenIdProviderApplicationMock implements OpenIdProviderSpi { @Inject private OpenIdProviderApi opApi; private String dialogueId; @Inject private Dialogue dialogue; @Inject private DialogueManager dialogueManager; public void handleLogin(String userName, HttpServletResponse response) { dialogueManager.attachDialogue(dialogueId); opApi.authenticationSucceeded(userName, response); dialogueManager.detachDialogue(); } public void setAttribute(String alias, String value, HttpServletResponse response) { dialogueManager.attachDialogue(dialogueId); Map<String, List<String>> attributes = new HashMap<String, List<String>>(); attributes.put(alias, new ArrayList<String>()); attributes.get(alias).add(value); opApi.setAttributes(attributes, response); dialogueManager.detachDialogue(); } public void authenticate(String realm, String userName, boolean immediate, ResponseHolder responseHolder) { if (userName == null) { writeMessageToResponse("Please login.", responseHolder); } else { writeMessageToResponse("Please provide the password for " + userName + ".", responseHolder); } dialogueId = dialogue.getId(); } private void writeMessageToResponse(String message, ResponseHolder responseHolder) { try { responseHolder.getResponse().getWriter().print(message); } catch (IOException e) { throw new RuntimeException(e); } } public boolean userExists(String userName) { return true; } public void fetchParameters(List<OpenIdRequestedAttribute> requestedAttributes, ResponseHolder responseHolder) { writeMessageToResponse("Please provide your " + requestedAttributes.get(0).getAlias() + ".", responseHolder); dialogueId = dialogue.getId(); } }