package org.opentides.social.security; import java.util.Collection; import java.util.List; import org.opentides.bean.user.BaseUser; import org.opentides.bean.user.SessionUser; import org.opentides.social.enums.SocialMediaType; import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.core.GrantedAuthority; /** * AuthenticationToken to hold user details that is going to be authenticated by the SocialAuthenticationProvider. * @author rabanes */ public class SocialAuthenticationToken extends AbstractAuthenticationToken { private static final long serialVersionUID = 8079278000065128059L; private BaseUser user; private String socialId; private SocialMediaType socialMediaType; private List<GrantedAuthority> authorities; public SocialAuthenticationToken(BaseUser user, String socialMediaId, SocialMediaType socialMediaType, List<GrantedAuthority> authorities) { super(authorities); this.user = user; this.socialId = socialMediaId; this.socialMediaType = socialMediaType; this.authorities = authorities; super.setAuthenticated(true); } public SocialAuthenticationToken(String socialMediaId, SocialMediaType socialMediaType) { this(null, socialMediaId, socialMediaType, null); } public SocialAuthenticationToken(BaseUser user, String socialMediaId, SocialMediaType socialMediaType) { this(user, socialMediaId, socialMediaType, null); } public SocialAuthenticationToken(Collection<? extends GrantedAuthority> authorities) { super(authorities); } @Override public Object getCredentials() { return new SessionUser(user, authorities); } @Override public Object getPrincipal() { return new SessionUser(user, authorities); } public BaseUser getUser() { return user; } public void setUser(BaseUser user) { this.user = user; } public String getSocialId() { return socialId; } public void setSocialId(String socialId) { this.socialId = socialId; } public SocialMediaType getSocialMediaType() { return socialMediaType; } public void setSocialMediaType(SocialMediaType socialMediaType) { this.socialMediaType = socialMediaType; } }