AccessToken.java

package jasper.component;

import jasper.client.TokenClient;
import jasper.security.Auth;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.RequestScope;

import java.net.URI;
import java.net.URISyntaxException;

@Component
@RequestScope
public class AccessToken {

	@Autowired
	Auth auth;

	@Autowired
	TokenClient tokenClient;

	private String adminToken;

	public String getAdminToken() {
		if (adminToken == null) {
			adminToken = tokenClient.tokenService(baseUri(), getClientId(), getSecret(), "admin").getAccess_token();
		}
		return adminToken;
	}

	private URI baseUri() {
		try {
			return new URI(auth.security().getTokenEndpoint());
		} catch (URISyntaxException e) {
			throw new RuntimeException(e);
		}
	}

	private String getSecret() {
		return auth.security().getSecret();
	}

	private String getClientId() {
		return auth.security().getClientId();
	}
}