Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        /// <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);
            }
        }