예제 #1
0
 def test_invalid_redirect_uri(self):
     """test missing/invalid redirect URI"""
     OAuth2Provider.objects.create(
         name="test",
         client_id="test",
         authorization_flow=create_test_flow(),
         redirect_uris="http://local.invalid",
     )
     with self.assertRaises(RedirectUriError):
         request = self.factory.get("/",
                                    data={
                                        "response_type": "code",
                                        "client_id": "test"
                                    })
         OAuthAuthorizationParams.from_request(request)
     with self.assertRaises(RedirectUriError):
         request = self.factory.get(
             "/",
             data={
                 "response_type": "code",
                 "client_id": "test",
                 "redirect_uri": "http://localhost",
             },
         )
         OAuthAuthorizationParams.from_request(request)
예제 #2
0
 def test_invalid_client_id(self):
     """Test invalid client ID"""
     with self.assertRaises(ClientIdError):
         request = self.factory.get(
             "/", data={"response_type": "code", "client_id": "invalid"}
         )
         OAuthAuthorizationParams.from_request(request)
예제 #3
0
 def test_request(self):
     """test request param"""
     OAuth2Provider.objects.create(
         name="test",
         client_id="test",
         authorization_flow=Flow.objects.first(),
         redirect_uris="http://local.invalid",
     )
     with self.assertRaises(AuthorizeError):
         request = self.factory.get(
             "/",
             data={
                 "response_type": "code",
                 "client_id": "test",
                 "redirect_uri": "http://local.invalid",
                 "request": "foo",
             },
         )
         OAuthAuthorizationParams.from_request(request)
예제 #4
0
 def test_empty_redirect_uri(self):
     """test empty redirect URI (configure in provider)"""
     OAuth2Provider.objects.create(
         name="test",
         client_id="test",
         authorization_flow=create_test_flow(),
     )
     with self.assertRaises(RedirectUriError):
         request = self.factory.get("/",
                                    data={
                                        "response_type": "code",
                                        "client_id": "test"
                                    })
         OAuthAuthorizationParams.from_request(request)
     request = self.factory.get(
         "/",
         data={
             "response_type": "code",
             "client_id": "test",
             "redirect_uri": "http://localhost",
         },
     )
     OAuthAuthorizationParams.from_request(request)
예제 #5
0
 def test_invalid_grant_type(self):
     """Test with invalid grant type"""
     with self.assertRaises(AuthorizeError):
         request = self.factory.get("/", data={"response_type": "invalid"})
         OAuthAuthorizationParams.from_request(request)
예제 #6
0
 def test_response_type(self):
     """test response_type"""
     OAuth2Provider.objects.create(
         name="test",
         client_id="test",
         authorization_flow=create_test_flow(),
         redirect_uris="http://local.invalid",
     )
     request = self.factory.get(
         "/",
         data={
             "response_type": "code",
             "client_id": "test",
             "redirect_uri": "http://local.invalid",
         },
     )
     self.assertEqual(
         OAuthAuthorizationParams.from_request(request).grant_type,
         GrantTypes.AUTHORIZATION_CODE,
     )
     request = self.factory.get(
         "/",
         data={
             "response_type": "id_token",
             "client_id": "test",
             "redirect_uri": "http://local.invalid",
             "scope": "openid",
             "state": "foo",
         },
     )
     self.assertEqual(
         OAuthAuthorizationParams.from_request(request).grant_type,
         GrantTypes.IMPLICIT,
     )
     # Implicit without openid scope
     with self.assertRaises(AuthorizeError):
         request = self.factory.get(
             "/",
             data={
                 "response_type": "id_token",
                 "client_id": "test",
                 "redirect_uri": "http://local.invalid",
                 "state": "foo",
             },
         )
         self.assertEqual(
             OAuthAuthorizationParams.from_request(request).grant_type,
             GrantTypes.IMPLICIT,
         )
     request = self.factory.get(
         "/",
         data={
             "response_type": "code token",
             "client_id": "test",
             "redirect_uri": "http://local.invalid",
             "scope": "openid",
             "state": "foo",
         },
     )
     self.assertEqual(
         OAuthAuthorizationParams.from_request(request).grant_type,
         GrantTypes.HYBRID)
     with self.assertRaises(AuthorizeError):
         request = self.factory.get(
             "/",
             data={
                 "response_type": "invalid",
                 "client_id": "test",
                 "redirect_uri": "http://local.invalid",
             },
         )
         OAuthAuthorizationParams.from_request(request)