Skip to content

Commit

Permalink
Merge pull request #140 from pehala/fix_user_info
Browse files Browse the repository at this point in the history
Fix user info test
  • Loading branch information
pehala authored Oct 31, 2022
2 parents 755b788 + 275fd4f commit 4301c16
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
2 changes: 1 addition & 1 deletion testsuite/oidc/rhsso/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def create_user(self, username, password, **kwargs):
"""Creates new user"""
kwargs["username"] = username
kwargs["enabled"] = True
kwargs["email"] = f"{username}@anything.invalid"
kwargs.setdefault("email", f"{username}@anything.invalid")
self.admin.create_user(kwargs)
user_id = self.admin.get_user_id(username)
self.admin.set_user_password(user_id, password, temporary=False)
Expand Down
15 changes: 11 additions & 4 deletions testsuite/tests/kuadrant/authorino/metadata/test_user_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,25 @@
"""
import pytest

from testsuite.httpx.auth import HttpxOidcClientAuth
from testsuite.openshift.objects.auth_config import Rule


@pytest.fixture(scope="module")
def user2(rhsso):
"""Second User which has incorrect email"""
return rhsso.realm.create_user("user2", "password", email="[email protected]")


@pytest.fixture(scope="module")
def authorization(authorization, rhsso):
"""
Adds auth metadata OIDC UserInfo which fetches OIDC UserInfo in request-time.
Adds a simple rule that accepts only when fetched UserInfo contains the email address of the default RHSSO user.
"""
user = rhsso.client.admin.get_user(rhsso.user)
authorization.add_user_info_metadata("user-info", "rhsso")
authorization.add_auth_rule("rule", Rule("auth.metadata.user-info.email", "eq", user["email"]))
authorization.add_auth_rule("rule",
Rule("auth.metadata.user-info.email", "eq", rhsso.user.properties["email"]))
return authorization


Expand All @@ -25,8 +32,8 @@ def test_correct_auth(client, auth):
assert response.status_code == 200


def test_incorrect_auth(client, auth, rhsso):
def test_incorrect_auth(client, rhsso, user2):
"""Updates RHSSO user email address and tests incorrect auth"""
rhsso.client.admin.update_user(rhsso.user, {"email": "[email protected]"})
auth = HttpxOidcClientAuth(rhsso.get_token(user2.username, user2.password), "authorization")
response = client.get("get", auth=auth)
assert response.status_code == 403

0 comments on commit 4301c16

Please sign in to comment.