package org.pac4j.vertx.client;
import com.fasterxml.jackson.databind.JsonNode;
import com.github.scribejava.core.builder.api.BaseApi;
import com.github.scribejava.core.model.OAuth1RequestToken;
import com.github.scribejava.core.model.OAuth1Token;
import com.github.scribejava.core.oauth.OAuth10aService;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.redirect.RedirectAction;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oauth.client.OAuth10Client;
import org.pac4j.oauth.profile.JsonHelper;
import org.pac4j.oauth.profile.twitter.TwitterProfileDefinition;
import org.pac4j.vertx.profile.TestOAuth1Profile;
/**
* Dumbed down OAuth2 client just to be used for testing purposes.
*
* @author Jeremy Prime
* @since 2.0.0
*/
public class TestOAuth1Client extends OAuth10Client<TestOAuth1Profile> {
public static final String TEST_REQUEST_TOKEN = "testRequestToken";
public static final String TEST_SECRET = "testSecret";
public static final String TEST_AUTHORIZATION_URL = "http://localhost:9292/authenticate";
@Override
protected void clientInit(final WebContext context) {
configuration.setApi(getApi());
configuration.setProfileDefinition(new TwitterProfileDefinition());
configuration.setHasBeenCancelledFactory(ctx -> {
final String denied = ctx.getRequestParameter("denied");
if (CommonHelper.isNotBlank(denied)) {
return true;
} else {
return false;
}
});
setConfiguration(configuration);
setLogoutActionBuilder((ctx, profile, targetUrl) -> RedirectAction.redirect("http://localhost:9292/logout"));
super.clientInit(context);
}
protected BaseApi<OAuth10aService> getApi() {
return new TestOAuthWrapperApi10();
}
// @Override
// protected String retrieveAuthorizationUrl(WebContext context) {
// // Intentional override of this since the test doesn't need to care about actually
// // getting a request token so let's not create an endpoint to do so
// OAuth1RequestToken token = new OAuth1RequestToken(TEST_REQUEST_TOKEN, TEST_SECRET);
// context.setSessionAttribute(getRequestTokenSessionAttributeName(), token);
// final String authorizationUrl = getAuthorizationUrl(token);
// logger.debug("authorizationUrl : {}", authorizationUrl);
// return authorizationUrl;
// }
//
private String getAuthorizationUrl(OAuth1RequestToken token) {
return TEST_AUTHORIZATION_URL + "?authToken=" + token.getToken();
}
}