Seam Identity through SOAP Web Services
phoenixknight88 Aug 27, 2009 6:57 PMHi,
I was wondering if anyone can help me. I am currently trying to create web services that tie into my seam set-up using the Java-WS framework. I am currently just trying to create a test ws service but I have run into an issue. When I login a user it works correctly but if I do another web service call after that the user has been logged out.
Here is my code:-
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceContext;
import org.jboss.seam.Component;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.security.Identity;
import org.jboss.wsf.spi.annotation.WebContext;
import uk.co.kraya.quark.admin.usermanagement.AdminUserHome;
import uk.co.kraya.quark.domain.AdminUser;
@Stateless
@Name("agentTestService")
@WebService(name = "AgentTestServiceWS", serviceName = "AgentTestService")
@WebContext(contextRoot="agent/services")
public class TestWS implements TestWSRemote {
@Resource
WebServiceContext wsCtxt;
@WebMethod
public String testMethod() {
Identity.instance().getCredentials().setUsername("admin");
Identity.instance().getCredentials().setPassword("Password1");
Identity.instance().login();
return Identity.instance().isLoggedIn() ? "success" : "fail";
}
@WebMethod
public String getMyInfo()
{
if(Identity.instance().isLoggedIn())
{
return Identity.instance().getCredentials().getUsername();
}
getAuctionAction().getInstance().getEmail();
return "None";
}
private AdminUserHome getAuctionAction()
{
// Get seam component named "auctionAction" from context
return (AdminUserHome) Component.getInstance(AdminUserHome.class, true);
}
}
Thanks in advance