/// <summary> /// oxd-web Get Access Token By Refresh Token /// </summary> /// <param name="oxdweburl">Oxd Web url</param> /// <param name="getAccessTokenByRefreshTokenParams">Input params for Get Access Token By Refresh Token command</param> /// <returns></returns> public GetAccessTokenByRefreshTokenResponse GetAccessTokenByRefreshToken(string oxdweburl, GetAccessTokenByRefreshTokenParams getAccessTokenByRefreshTokenParams) { Logger.Info("Verifying input parameters."); if (getAccessTokenByRefreshTokenParams == null) { throw new ArgumentNullException("The UMA RS Get Claims Gathering Url params should not be NULL."); } if (string.IsNullOrEmpty(getAccessTokenByRefreshTokenParams.OxdId)) { throw new MissingFieldException("Oxd ID is required for Get Claims Gathering Url "); } try { Logger.Info("Preparing and sending command."); var cmdgetAccessTokenByRefreshToken = new Command { CommandType = CommandType.get_access_token_by_refresh_token, CommandParams = getAccessTokenByRefreshTokenParams }; var commandClient = new CommandClient(oxdweburl); string commandResponse = commandClient.send(cmdgetAccessTokenByRefreshToken); var response = JsonConvert.DeserializeObject <GetAccessTokenByRefreshTokenResponse>(commandResponse); if (response.Status.ToLower().Equals("error")) { Logger.Info(string.Format("Got response status as {0} ", response.Status)); } return(response); } catch (Exception ex) { Logger.Log(NLog.LogLevel.Error, ex, "Exception when Getting UMA Claims Gathering URL."); return(null); } }
public ActionResult GetUserInfo() { string code = Request.Params["code"]; string state = Request.Params["state"]; if (code == null && state == null) { return(RedirectToAction("Index")); } OxdModel oxd = new OxdModel(); #region GetProtectionAccessToken string protectionAccessToken = ""; if (dynamic_registration) { //For OXD Server if (OXDType == "local") { //Get ProtectionAccessToken protectionAccessToken = GetProtectionAccessToken(oxdHost, oxdPort); } //For OXD Web if (OXDType == "web") { protectionAccessToken = GetProtectionAccessToken(httpresturl); } } #endregion #region Get Tokens by Code var getTokenByCodeInputParams = new GetTokensByCodeParams(); var getTokenByCodeClient = new GetTokensByCodeClient(); //prepare input params for Getting Tokens from a site getTokenByCodeInputParams.OxdId = oxd_id; getTokenByCodeInputParams.Code = code; getTokenByCodeInputParams.State = state; getTokenByCodeInputParams.ProtectionAccessToken = protectionAccessToken; var getTokensByCodeResponse = new GetTokensByCodeResponse(); //For OXD Server if (OXDType == "local") { getTokensByCodeResponse = getTokenByCodeClient.GetTokensByCode(oxdHost, oxdPort, getTokenByCodeInputParams); } //For OXD Web if (OXDType == "web") { getTokensByCodeResponse = getTokenByCodeClient.GetTokensByCode(httpresturl, getTokenByCodeInputParams); } var accessToken = getTokensByCodeResponse.Data.AccessToken; var refreshToken = getTokensByCodeResponse.Data.RefreshToken; #endregion #region Get Access Token By Refresh Token if (dynamic_registration) { var getAccessTokenByRefreshTokenInputParams = new GetAccessTokenByRefreshTokenParams(); var getAccessTokenByRefreshTokenClient = new GetAccessTokenByRefreshTokenClient(); //prepare input params for Getting Tokens from a site getAccessTokenByRefreshTokenInputParams.OxdId = oxd_id; getAccessTokenByRefreshTokenInputParams.RefreshToken = refreshToken; getAccessTokenByRefreshTokenInputParams.ProtectionAccessToken = protectionAccessToken; var getAccessTokenByRefreshTokenResponse = new GetAccessTokenByRefreshTokenResponse(); //For OXD Server if (OXDType == "local") { getAccessTokenByRefreshTokenResponse = getAccessTokenByRefreshTokenClient.GetAccessTokenByRefreshToken(oxdHost, oxdPort, getAccessTokenByRefreshTokenInputParams); } //For OXD Web if (OXDType == "web") { getAccessTokenByRefreshTokenResponse = getAccessTokenByRefreshTokenClient.GetAccessTokenByRefreshToken(httpresturl, getAccessTokenByRefreshTokenInputParams); } accessToken = getAccessTokenByRefreshTokenResponse.Data.AccessToken; refreshToken = getAccessTokenByRefreshTokenResponse.Data.RefreshToken; } #endregion #region Get User Info var getUserInfoInputParams = new GetUserInfoParams(); var getUserInfoClient = new GetUserInfoClient(); //prepare input params for Getting User Info from a site getUserInfoInputParams.OxdId = oxd_id; getUserInfoInputParams.AccessToken = accessToken; getUserInfoInputParams.ProtectionAccessToken = protectionAccessToken; var getUserInfoResponse = new GetUserInfoResponse(); //For OXD Server if (OXDType == "local") { getUserInfoResponse = getUserInfoClient.GetUserInfo(oxdHost, oxdPort, getUserInfoInputParams); } //For OXD Web if (OXDType == "web") { getUserInfoResponse = getUserInfoClient.GetUserInfo(httpresturl, getUserInfoInputParams); } //Process response Session["userName"] = getUserInfoResponse.Data.UserClaims["name"].FirstOrDefault(); Session["userEmail"] = getUserInfoResponse.Data.UserClaims["email"] == null ? string.Empty : getUserInfoResponse.Data.UserClaims["email"].FirstOrDefault(); #endregion return(RedirectToAction("UserInfo")); }
/// <summary> /// oxd-local Get Access Token By Refresh Token /// </summary> /// <param name="host">Oxd Host</param> /// <param name="port">Oxd Port</param> /// <param name="getAccessTokenByRefreshTokenParams">Input params for Get Access Token By Refresh Token command</param> /// <returns></returns> public GetAccessTokenByRefreshTokenResponse GetAccessTokenByRefreshToken(string host, int port, GetAccessTokenByRefreshTokenParams getAccessTokenByRefreshTokenParams) { Logger.Info("Verifying input parameters."); if (string.IsNullOrEmpty(host)) { throw new ArgumentNullException("Oxd Host should not be NULL."); } if (port <= 0) { throw new ArgumentNullException("Oxd Port should be a valid port number."); } if (getAccessTokenByRefreshTokenParams == null) { throw new ArgumentNullException("The UMA RS Check Access command params should not be NULL."); } if (string.IsNullOrEmpty(getAccessTokenByRefreshTokenParams.OxdId)) { throw new MissingFieldException("Oxd ID is required for checking access of UMA resources."); } try { Logger.Info("Preparing and sending command."); var cmdgetAccessTokenByRefreshToken = new Command { CommandType = CommandType.get_access_token_by_refresh_token, CommandParams = getAccessTokenByRefreshTokenParams }; var commandClient = new CommandClient(host, port); string commandResponse = commandClient.send(cmdgetAccessTokenByRefreshToken); var response = JsonConvert.DeserializeObject <GetAccessTokenByRefreshTokenResponse>(commandResponse); return(response); } catch (Exception ex) { Logger.Log(NLog.LogLevel.Error, ex, "Exception when Getting UMA Claims Gathering URL."); return(null); } }