WeChatAuthenticationToken.java

package org.oxerr.spring.security.wechat.authentication;

import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.userdetails.UserDetails;

public class WeChatAuthenticationToken
		extends AbstractAuthenticationToken {

	private static final long serialVersionUID = 2016100101L;

	private final UserDetails userDetails;
	private String code;

	public WeChatAuthenticationToken(String code) {
		super(null);
		this.userDetails = null;
		this.code = code;

		super.setAuthenticated(false);
	}

	public WeChatAuthenticationToken(UserDetails userDetails) {
		super(userDetails.getAuthorities());
		this.userDetails = userDetails;

		super.setAuthenticated(true);
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public String getCredentials() {
		return code;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Object getPrincipal() {
		return userDetails;
	}

}