package net.sf.gazpachoquest.security.shiro;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.SimplePrincipalCollection;
public class AuthenticationInfoImpl implements AuthenticationInfo {
private static final long serialVersionUID = -395410491971643618L;
private String apiKey;
private Object principal;
@Override
public PrincipalCollection getPrincipals() {
SimplePrincipalCollection collection = new SimplePrincipalCollection();
collection.add(principal, "ApiKeyRealm");
return collection;
}
@Override
public Object getCredentials() {
return apiKey;
}
public static Builder with() {
return new Builder();
}
public static class Builder {
private String apiKey;
private Object principal;
public Builder apiKey(String apiKey) {
this.apiKey = apiKey;
return this;
}
public Builder principal(Object principal) {
this.principal = principal;
return this;
}
public AuthenticationInfoImpl build() {
AuthenticationInfoImpl authenticationInfoImpl = new AuthenticationInfoImpl();
authenticationInfoImpl.apiKey = apiKey;
authenticationInfoImpl.principal = principal;
return authenticationInfoImpl;
}
}
}