package org.jboss.seam.example.restbay.resteasy;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.log.Log;
import org.jboss.seam.security.Credentials;
import org.jboss.seam.security.Identity;
@Name("testAuthenticator")
@Scope(ScopeType.EVENT)
public class TestAuthenticator
{
@In
private Identity identity;
@In
private Credentials credentials;
@Logger
private Log log;
@Transactional
public boolean authenticate()
{
// Tests that the SFSB can be obtained in both ContextualHttpRequests (authentication and web service invocation)
TestEjbLocal ejb = (TestEjbLocal) Component.getInstance("securedEjb", ScopeType.EVENT);
ejb.foo();
log.debug("Authenticating username/password: " + credentials.getUsername() + "/" + credentials.getPassword());
if (credentials.getUsername().equals(credentials.getPassword())) {
log.info("Authenticated {0}", credentials.getUsername());
if (credentials.getUsername().equals("admin")) {
identity.addRole("admin");
log.info("Admin rights granted for {0}", credentials.getUsername());
}
log.debug("Authentication valid");
return true;
} else {
log.debug("Authentication invalid");
return false;
}
}
}