Package com.baasbox.service.sociallogin

Source Code of com.baasbox.service.sociallogin.SocialLoginServiceMock

package com.baasbox.service.sociallogin;

import org.scribe.builder.api.Api;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Response;
import org.scribe.model.Token;
import org.scribe.model.Verb;

import play.Logger;
import play.Play;
import play.mvc.Http.Request;
import play.mvc.Http.Session;

public class SocialLoginServiceMock extends SocialLoginService {
 
  private static String port = (Play.isTest())?System.getProperty("testserver.port", "3333"):System.getProperty("http.port", "9000");
  private static String mockUrl = "http://localhost"+port;
 
  public   String PREFIX = "";
  public   String SOCIAL = "";
 
  private String secret="";
  private String token="";
 
  public SocialLoginServiceMock(String socialNetworkName, String appcode) {
    super(socialNetworkName,appcode);
    this.SOCIAL=socialNetworkName;
    if(socialNetwork.equals("facebook")){
      this.PREFIX=FacebookLoginService.PREFIX;
    }else if(socialNetwork.equals("github")){
      this.PREFIX=GithubLoginService.PREFIX;
    }else if(socialNetwork.equals("google")){
      this.PREFIX=GooglePlusLoginService.PREFIX;
    }
    this.PREFIX=this.PREFIX + "_mock_";
  }
 
  @Override
  public Class<? extends Api> provider() {
    return MockApi.class;
  }

  @Override
  public Boolean needToken() {
    return false;
  }

  @Override
  public String userInfoUrl() {
    return mockUrl;
  }

  @Override
  public String getVerifierFromRequest(Request r) {
    return "mock_verifier";
  }

  @Override
  public Token getAccessTokenFromRequest(Request r, Session s) {
    return null;
  }

  @Override
  protected OAuthRequest buildOauthRequestForUserInfo(Token accessToken) {
    return new OAuthRequest(Verb.GET, userInfoUrl());
  }

  @Override
  public UserInfo extractUserInfo(Response r) throws BaasBoxSocialException {
    if (Logger.isDebugEnabled()) Logger.debug("FacebookLoginServiceMock.extractUserInfo: " + r.getCode() + ": " + r.getBody());
    UserInfo ui = new UserInfo();
    ui.setId("mockid_" + this.token);
    ui.setUsername("mockusername_" + this.token);
    ui.addData("email",ui.getUsername() + "@example.com");
    ui.addData("gender","male");
    ui.addData("personalUrl","http://www.example.com/" + ui.getUsername());   
    ui.addData("name","John Doe Mock " + System.currentTimeMillis());
    ui.setFrom(SOCIAL + "_mock");
    return ui;
  }

  @Override
  public String getPrefix() {
    return PREFIX + "_mock_";
  }

  @Override
  protected String getValidationURL(String token) {
    return mockUrl;
  }

  @Override
  protected boolean validate(Object response) {
    return true;
  }

  @Override
  public boolean validationRequest(String token) throws BaasBoxSocialTokenValidationException{
    return true;
  }
 
  @Override
  public UserInfo getUserInfo(Token accessToken) throws BaasBoxSocialException{
    this.secret=accessToken.getSecret();
    this.token=accessToken.getToken();
   
    OAuthRequest request = buildOauthRequestForUserInfo(accessToken);

    this.service.signRequest(accessToken, request);
    Response response = null;
    try {
      response = request.send();
    }catch(Exception e){
      //swallow
    }
    return extractUserInfo(response);
  }
}
TOP

Related Classes of com.baasbox.service.sociallogin.SocialLoginServiceMock

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.