package no.niths.security; import java.util.Collection; import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.core.GrantedAuthority; /** * * Wrapper class for HTTP headers we want to authenticate * */ public class RequestAuthenticationInfo extends AbstractAuthenticationToken { private static final long serialVersionUID = 1192605098301148314L; private RequestHolderDetails principal; private String developerToken; private String sessionToken; private String appToken; private String appKey; private String developerKey; public RequestAuthenticationInfo(RequestHolderDetails principal) { super(null); this.principal = principal; setAuthenticated(false); } public RequestAuthenticationInfo(){ super(null); setAuthenticated(false); } public RequestAuthenticationInfo(RequestHolderDetails principal, Collection<? extends GrantedAuthority> authorities) { super(authorities); this.principal = principal; super.setAuthenticated(true); // must use super, as we override } public RequestHolderDetails getPrincipal() { return this.principal; } @Override public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { if (isAuthenticated) { throw new IllegalArgumentException( "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); } super.setAuthenticated(false); } public String getDeveloperToken() { return developerToken; } public void setDeveloperToken(String developerToken) { this.developerToken = developerToken; } public String getSessionToken() { return sessionToken; } public void setSessionToken(String sessionToken) { this.sessionToken = sessionToken; } @Override public void eraseCredentials() { super.eraseCredentials(); //credentials = null; } @Override public Object getCredentials() { // TODO Auto-generated method stub return null; } public String getAppToken() { return appToken; } public void setAppToken(String appToken) { this.appToken = appToken; } public String getDeveloperKey() { return developerKey; } public void setDeveloperKey(String developerKey) { this.developerKey = developerKey; } public String getAppKey() { return appKey; } public void setAppKey(String appKey) { this.appKey = appKey; } }