...
Agreed API and SPI of Part 1
API
1. draft at: http://s.apache.org/Vyg
Identity
...
Code Block |
---|
public abstract class BaseAuthenticator implements Authenticator
{
private AuthenticationStatus status;
public AuthenticationStatus getStatus()
{
return status;
}
protected void setStatus(AuthenticationStatus status)
{
this.status = status;
}
public void postAuthenticate()
{
// No-op, override if any post-authentication processing is required.
}
}
|
Usage
Simple Login/Logout by Example (Java-SE)
Code Block |
---|
@ApplicationScoped
public class LoginBean
{
@Inject
private LoginCredential loginCredential;
@Inject
private Identity identity;
public boolean login(String userName, final String password)
{
this.loginCredential.setUserId(userName);
this.loginCredential.setCredential(new Credential<String>() {
@Override
public String getValue()
{
return password;
}
});
this.identity.login();
return this.identity.isLoggedIn();
}
public boolean logout()
{
this.identity.logout();
return !this.identity.isLoggedIn();
}
}
public class CustomBean
{
@Inject
private Identity identity;
@Inject
private LoginBean loginBean;
public void execute()
{
if(this.loginBean.login("spike", "apache"))
{
User user = this.identity.getUser();
//...
}
else
{
//...
}
}
}
|
API/SPI under discussion
...