public AuthorizeController(IStoredGrantManager handleManager, IAuthorizationServerConfiguration config, TokenService tokenService, ISmiIdentity identityConfig)
 {
     _handleManager  = handleManager;
     _config         = config;
     _identityConfig = identityConfig;
     _tokenService   = tokenService;
 }
        public virtual TokenResponse CreateTokenResponseFromAuthorizationCode(StoredGrant handle, IStoredGrantManager handleManager)
        {
            var resourceOwner = Principal.Create(
                "OAuth2",
                handle.ResourceOwner.ToClaims().ToArray());

            var validatedRequest = new ValidatedRequest
            {
                Client = handle.Client,
                Application = handle.Application,
                Scopes = handle.Scopes
            };

            var response = CreateTokenResponse(validatedRequest, resourceOwner);

            if (handle.CreateRefreshToken)
            {
                var refreshTokenHandle = StoredGrant.CreateRefreshTokenHandle(
                    resourceOwner.GetSubject(),
                    handle.Client,
                    handle.Application,
                    resourceOwner.Claims,
                    handle.Scopes,
                    handle.RefreshTokenExpiration.Value,
                    validatedRequest.Client.AllowRefreshToken && validatedRequest.Application.AllowRefreshToken);

                handleManager.Add(refreshTokenHandle);
                response.RefreshToken = refreshTokenHandle.GrantId;
            }
                
            handleManager.Delete(handle.GrantId);

            return response;
        }
 public TokenController(IResourceOwnerCredentialValidation rocv, IAuthorizationServerConfiguration config,
                        IStoredGrantManager handleManager, IAssertionGrantValidation assertionGrantValidator)
 {
     _rocv = rocv;
     _config = config;
     _handleManager = handleManager;
     _assertionGrantValidator = assertionGrantValidator;
 }
 public TokenController(
     IResourceOwnerCredentialValidation rocv,
     IAuthorizationServerConfiguration config,
     IStoredGrantManager handleManager)
 {
     _rocv          = rocv;
     _config        = config;
     _handleManager = handleManager;
 }
        public void Init()
        {
            DataProtectection.Instance = new NoProtection();

            _testConfig = new TestAuthorizationServerConfiguration();
            _storedGrantManager = new TestTokenHandleManager("abc", "client", "https://validredirect");
            
            _clientManager = new TestClientManager() { Id = "client", Secret = "secret", OAuthFlow = OAuthFlow.Client, AllowRefreshTokens = false };
            _client = Principal.Create("Test", new Claim("client_id", "client"), new Claim("secret", "secret"));
        }
        public virtual TokenResponse CreateTokenResponse(StoredGrant handle, IStoredGrantManager handleManager)
        {
            if (handle.Type == StoredGrantType.AuthorizationCode)
            {
                return(CreateTokenResponseFromAuthorizationCode(handle, handleManager));
            }
            if (handle.Type == StoredGrantType.RefreshTokenIdentifier)
            {
                return(CreateTokenResponseFromRefreshToken(handle, handleManager));
            }

            throw new ArgumentException("handle.Type");
        }
        public virtual TokenResponse CreateTokenResponse(StoredGrant handle, IStoredGrantManager handleManager)
        {
            if (handle.Type == StoredGrantType.AuthorizationCode)
            {
                return CreateTokenResponseFromAuthorizationCode(handle, handleManager);
            }
            if (handle.Type == StoredGrantType.RefreshTokenIdentifier)
            {
                return CreateTokenResponseFromRefreshToken(handle, handleManager);
            }

            throw new ArgumentException("handle.Type");
        }
        public void Init()
        {
            DataProtectection.Instance = new NoProtection();

            _testConfig         = new TestAuthorizationServerConfiguration();
            _storedGrantManager = new TestTokenHandleManager("abc", "client", "https://validredirect");

            _clientManager = new TestClientManager()
            {
                Id = "client", Secret = "secret", OAuthFlow = OAuthFlow.Client, AllowRefreshTokens = false
            };
            _client = Principal.Create("Test", new Claim("client_id", "client"), new Claim("secret", "secret"));
        }
 public TokenController(
     IResourceOwnerCredentialValidation rocv,
     IAuthorizationServerConfiguration config,
     IStoredGrantManager handleManager,
     IAssertionGrantValidation assertionGrantValidator,
     TokenService tokenService)
 {
     _rocv                    = rocv;
     _config                  = config;
     _handleManager           = handleManager;
     _assertionGrantValidator = assertionGrantValidator;
     _tokenService            = tokenService;
 }
        public virtual TokenResponse CreateTokenResponseFromRefreshToken(StoredGrant handle, IStoredGrantManager handleManager)
        {
            var resourceOwner = Principal.Create(
                "OAuth2",
                handle.ResourceOwner.ToClaims().ToArray());

            if (DateTime.UtcNow > handle.Expiration)
            {
                throw new InvalidOperationException("Refresh token has expired.");
            }

            var validatedRequest = new ValidatedRequest
            {
                Client = handle.Client,
                Application = handle.Application,
                Scopes = handle.Scopes,
            };

            var response = CreateTokenResponse(validatedRequest, resourceOwner);
            response.RefreshToken = handle.GrantId;
            
            return response;
        }
 public TokenRequestValidator(IStoredGrantManager handleManager, IClientManager clientManager)
 {
     _handleManager = handleManager;
     _clientManager = clientManager;
 }
 public AuthorizeController(IStoredGrantManager handleManager, IAuthorizationServerConfiguration config, TokenService tokenService)
 {
     _handleManager = handleManager;
     _config = config;
     _tokenService = tokenService;
 }
 public TokenRequestValidator(IStoredGrantManager handleManager, IClientManager clientManager)
 {
     _handleManager = handleManager;
     _clientManager = clientManager;
 }
 public AuthorizeController(IStoredGrantManager handleManager, IAuthorizationServerConfiguration config)
 {
     _handleManager = handleManager;
     _config = config;
 }
        public virtual TokenResponse CreateTokenResponseFromRefreshToken(StoredGrant handle, IStoredGrantManager handleManager)
        {
            var resourceOwner = Principal.Create(
                "OAuth2",
                handle.ResourceOwner.ToClaims().ToArray());

            if (DateTime.UtcNow > handle.Expiration)
            {
                throw new InvalidOperationException("Refresh token has expired.");
            }

            var validatedRequest = new ValidatedRequest
            {
                Client = handle.Client,
                Application = handle.Application,
                Scopes = handle.Scopes,
            };

            var response = CreateTokenResponse(validatedRequest, resourceOwner);

            if (handle.CreateRefreshToken)
            {
                StoredGrant refreshTokenHandle;

                if (validatedRequest.Application.AllowSlidingRefreshTokenExpiration)
                {
                    var rememberTimeSpan = handle.Expiration.Subtract(handle.Created);
                    var newRefreshTokenExpiration = DateTime.UtcNow.Add(rememberTimeSpan);

                    refreshTokenHandle = StoredGrant.CreateRefreshTokenHandle(
                        resourceOwner.GetSubject(),
                        handle.Client,
                        handle.Application,
                        resourceOwner.Claims,
                        handle.Scopes,
                        newRefreshTokenExpiration,
                        createRefreshToken: validatedRequest.Client.AllowRefreshToken && validatedRequest.Application.AllowRefreshToken);
                }
                else
                {
                    refreshTokenHandle = StoredGrant.CreateRefreshTokenHandle(
                        resourceOwner.GetSubject(),
                        handle.Client,
                        handle.Application,
                        resourceOwner.Claims,
                        handle.Scopes,
                        handle.Expiration,
                        createRefreshToken: validatedRequest.Client.AllowRefreshToken && validatedRequest.Application.AllowRefreshToken);
                }

                response.RefreshToken = refreshTokenHandle.GrantId;

                handleManager.Add(refreshTokenHandle);
                handleManager.Delete(handle.GrantId);
            }
            else
            {
                response.RefreshToken = handle.GrantId;
            }    
            return response;
        }
 public AuthorizeController(IStoredGrantManager handleManager, IAuthorizationServerConfiguration config)
 {
     _handleManager = handleManager;
     _config        = config;
 }
 public TokenRequestValidator(IStoredGrantManager handleManager)
 {
     _handleManager = handleManager;
 }
Exemple #18
0
 public TokenRequestValidator(IStoredGrantManager handleManager)
 {
     _handleManager = handleManager;
 }
        public virtual TokenResponse CreateTokenResponseFromAuthorizationCode(StoredGrant handle, IStoredGrantManager handleManager)
        {
            var resourceOwner = Principal.Create(
                "OAuth2",
                handle.ResourceOwner.ToClaims().ToArray());

            var validatedRequest = new ValidatedRequest
            {
                Client      = handle.Client,
                Application = handle.Application,
                Scopes      = handle.Scopes
            };

            var response = CreateTokenResponse(validatedRequest, resourceOwner);

            if (handle.CreateRefreshToken)
            {
                var refreshTokenHandle = StoredGrant.CreateRefreshTokenHandle(
                    resourceOwner.GetSubject(),
                    handle.Client,
                    handle.Application,
                    resourceOwner.Claims,
                    handle.Scopes,
                    handle.RefreshTokenExpiration.Value);

                handleManager.Add(refreshTokenHandle);
                response.RefreshToken = refreshTokenHandle.GrantId;
            }

            handleManager.Delete(handle.GrantId);

            return(response);
        }
        public virtual TokenResponse CreateTokenResponseFromRefreshToken(StoredGrant handle, IStoredGrantManager handleManager)
        {
            var resourceOwner = Principal.Create(
                "OAuth2",
                handle.ResourceOwner.ToClaims().ToArray());

            if (DateTime.UtcNow > handle.Expiration)
            {
                throw new InvalidOperationException("Refresh token has expired.");
            }

            var validatedRequest = new ValidatedRequest
            {
                Client      = handle.Client,
                Application = handle.Application,
                Scopes      = handle.Scopes,
            };

            var response = CreateTokenResponse(validatedRequest, resourceOwner);

            response.RefreshToken = handle.GrantId;

            return(response);
        }
        public virtual TokenResponse CreateTokenResponseFromRefreshToken(StoredGrant handle, IStoredGrantManager handleManager)
        {
            var resourceOwner = Principal.Create(
                "OAuth2",
                handle.ResourceOwner.ToClaims().ToArray());

            if (DateTime.UtcNow > handle.Expiration)
            {
                throw new InvalidOperationException("Refresh token has expired.");
            }

            var validatedRequest = new ValidatedRequest
            {
                Client      = handle.Client,
                Application = handle.Application,
                Scopes      = handle.Scopes,
            };

            var response = CreateTokenResponse(validatedRequest, resourceOwner);

            if (handle.CreateRefreshToken)
            {
                StoredGrant refreshTokenHandle;

                if (validatedRequest.Application.AllowSlidingRefreshTokenExpiration)
                {
                    var rememberTimeSpan          = handle.Expiration.Subtract(handle.Created);
                    var newRefreshTokenExpiration = DateTime.UtcNow.Add(rememberTimeSpan);

                    refreshTokenHandle = StoredGrant.CreateRefreshTokenHandle(
                        resourceOwner.GetSubject(),
                        handle.Client,
                        handle.Application,
                        resourceOwner.Claims,
                        handle.Scopes,
                        newRefreshTokenExpiration,
                        createRefreshToken: validatedRequest.Client.AllowRefreshToken && validatedRequest.Application.AllowRefreshToken);
                }
                else
                {
                    refreshTokenHandle = StoredGrant.CreateRefreshTokenHandle(
                        resourceOwner.GetSubject(),
                        handle.Client,
                        handle.Application,
                        resourceOwner.Claims,
                        handle.Scopes,
                        handle.Expiration,
                        createRefreshToken: validatedRequest.Client.AllowRefreshToken && validatedRequest.Application.AllowRefreshToken);
                }

                response.RefreshToken = refreshTokenHandle.GrantId;

                handleManager.Add(refreshTokenHandle);
                handleManager.Delete(handle.GrantId);
            }
            else
            {
                response.RefreshToken = handle.GrantId;
            }
            return(response);
        }