Exemplo n.º 1
0
        /// <summary>
        /// The ManageToken method.
        /// Applies business logic to a token coming from the Single Sign On client for registration.
        /// <para>
        /// @author: Jennifer Nguyen
        /// @updated: 03/22/2018
        /// </para>
        /// </summary>
        /// <returns>ResponseDto with a UserAccountDto</returns>
        public ResponseDto <UserAccountDto> ManageRegistrationToken()
        {
            // Map payload keys to SsoPayload model
            var mappingResult = MapRequestJwtPayloadToSsoJwtPayload();

            if (mappingResult.Error != null)
            {
                // Store invalid token into database
                StoreInvalidToken();

                return(new ResponseDto <UserAccountDto>()
                {
                    Error = mappingResult.Error
                });
            }

            _ssoToken.SsoTokenPayloadDto = mappingResult.Data;

            // Validate token after applying business logic
            var ssoTokenRegistrationValidationStrategy = new SsoTokenRegistrationValidationStrategy(_ssoToken);
            var result = ssoTokenRegistrationValidationStrategy.ExecuteStrategy();

            if (!result.Data)
            {
                // Store invalid token into database
                StoreInvalidToken();

                return(new ResponseDto <UserAccountDto>()
                {
                    Error = result.Error
                });
            }

            // Store valid token into database
            using (var ssoGateway = new SsoGateway())
            {
                var gatewayResult = ssoGateway.StoreValidSsoToken(new ValidSsoToken(_ssoToken.Token));
                if (gatewayResult.Error != null)
                {
                    return(new ResponseDto <UserAccountDto>()
                    {
                        Error = gatewayResult.Error
                    });
                }
            }

            // Send back a new UserAccountDto
            return(new ResponseDto <UserAccountDto>()
            {
                Data = new UserAccountDto(username: _ssoToken.SsoTokenPayloadDto.Username, password: _ssoToken.SsoTokenPayloadDto.Password, roleType: _ssoToken.SsoTokenPayloadDto.RoleType)
            });
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// This Method Checks the token coming from the Sso Service and  see if it is a valid token
        ///
        /// </summary>
        /// <returns>
        /// ResetPassword Dto with either an Error or Data to update the password with
        /// </returns>
        public ResponseDto <ResetPasswordDto> ManageResetPasswordToken()
        {
            var mappingResult = MapRequestJwtPayloadToSsoJwtPayload();

            if (mappingResult.Error != null)
            {
                // Store invalid token into database
                StoreInvalidToken();

                return(new ResponseDto <ResetPasswordDto>()
                {
                    Error = mappingResult.Error
                });
            }

            _ssoToken.SsoTokenPayloadDto = mappingResult.Data;

            // Validate the SsoToken
            var ssoTokenResetPasswordValidationStrategy = new SsoTokenRestPasswordValidationStrategy(_ssoToken);
            var result = ssoTokenResetPasswordValidationStrategy.ExecuteStrategy();

            if (!result.Data)
            {
                // Store invalid token into database
                StoreInvalidToken();

                return(new ResponseDto <ResetPasswordDto>()
                {
                    Error = result.Error
                });
            }

            // Store valid token
            using (var ssoGateway = new SsoGateway())
            {
                var gatewayResult = ssoGateway.StoreValidSsoToken(new ValidSsoToken(_ssoToken.Token));
                if (gatewayResult.Error != null)
                {
                    return(new ResponseDto <ResetPasswordDto>()
                    {
                        Error = gatewayResult.Error
                    });
                }
            }

            // Send back a new RestPasswordDto Object
            return(new ResponseDto <ResetPasswordDto>()
            {
                Data = new ResetPasswordDto(_ssoToken.SsoTokenPayloadDto.Username, _ssoToken.SsoTokenPayloadDto.Password)
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Stores a valid token from Sso.
        /// <para>
        /// @author: Jennifer Nguyen, Brian Fann
        /// @updated: 4/23/2018
        /// </para>
        /// </summary>
        /// <returns></returns>
        private ResponseDto <bool> StoreValidToken()
        {
            using (var gateway = new SsoGateway())
            {
                var getTokenResult = gateway.GetValidSsoToken(_ssoToken.Token);

                if (getTokenResult.Data == null)
                {
                    return(gateway.StoreValidSsoToken(new ValidSsoToken(_ssoToken.Token)));
                }

                return(new ResponseDto <bool>()
                {
                    Data = false,
                    Error = SsoErrorMessages.TOKEN_EXISTS_ERROR
                });
            }
        }