Skip to content

stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs#11884

Merged
BeryJu merged 1 commit intomainfrom
update-fido-mds-client
Nov 4, 2024
Merged

stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs#11884
BeryJu merged 1 commit intomainfrom
update-fido-mds-client

Conversation

@authentik-automation
Copy link
Contributor

stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@authentik-automation authentik-automation bot requested a review from a team as a code owner November 1, 2024 02:09
@authentik-automation authentik-automation bot enabled auto-merge (squash) November 1, 2024 02:09
@netlify
Copy link

netlify bot commented Nov 1, 2024

Deploy Preview for authentik-docs canceled.

Name Link
🔨 Latest commit 004f438
🔍 Latest deploy log https://app.netlify.com/sites/authentik-docs/deploys/672438471868b60008e209aa

@netlify
Copy link

netlify bot commented Nov 1, 2024

Deploy Preview for authentik-storybook canceled.

Name Link
🔨 Latest commit 004f438
🔍 Latest deploy log https://app.netlify.com/sites/authentik-storybook/deploys/6724384779b78300088d569b

@codecov
Copy link

codecov bot commented Nov 1, 2024

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
1590 1 1589 1
View the top 1 failed tests by shortest run time
tests.e2e.test_source_scim.TestSourceSCIM test_scim_conformance
Stack Traces | 408s run time
self = &lt;unittest.case._Outcome object at 0x7fe27e789be0&gt;
test_case = &lt;tests.e2e.test_source_scim.TestSourceSCIM testMethod=test_scim_conformance&gt;
subTest = False

    @contextlib.contextmanager
    def testPartExecutor(self, test_case, subTest=False):
        old_success = self.success
        self.success = True
        try:
&gt;           yield

.../hostedtoolcache/Python/3.12.7........./x64/lib/python3.12/unittest/case.py:58: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;tests.e2e.test_source_scim.TestSourceSCIM testMethod=test_scim_conformance&gt;
result = &lt;TestCaseFunction test_scim_conformance&gt;

    def run(self, result=None):
        if result is None:
            result = self.defaultTestResult()
            startTestRun = getattr(result, 'startTestRun', None)
            stopTestRun = getattr(result, 'stopTestRun', None)
            if startTestRun is not None:
                startTestRun()
        else:
            stopTestRun = None
    
        result.startTest(self)
        try:
            testMethod = getattr(self, self._testMethodName)
            if (getattr(self.__class__, "__unittest_skip__", False) or
                getattr(testMethod, "__unittest_skip__", False)):
                # If the class or method was skipped.
                skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
                            or getattr(testMethod, '__unittest_skip_why__', ''))
                _addSkip(result, self, skip_why)
                return result
    
            expecting_failure = (
                getattr(self, "__unittest_expecting_failure__", False) or
                getattr(testMethod, "__unittest_expecting_failure__", False)
            )
            outcome = _Outcome(result)
            start_time = time.perf_counter()
            try:
                self._outcome = outcome
    
                with outcome.testPartExecutor(self):
                    self._callSetUp()
                if outcome.success:
                    outcome.expecting_failure = expecting_failure
                    with outcome.testPartExecutor(self):
                        self._callTestMethod(testMethod)
                    outcome.expecting_failure = False
                    with outcome.testPartExecutor(self):
&gt;                       self._callTearDown()

.../hostedtoolcache/Python/3.12.7........./x64/lib/python3.12/unittest/case.py:637: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;tests.e2e.test_source_scim.TestSourceSCIM testMethod=test_scim_conformance&gt;

    def _callTearDown(self):
&gt;       self.tearDown()

.../hostedtoolcache/Python/3.12.7........./x64/lib/python3.12/unittest/case.py:594: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;tests.e2e.test_source_scim.TestSourceSCIM testMethod=test_scim_conformance&gt;

    def tearDown(self):
        if IS_CI:
            print("::endgroup::", file=stderr)
        super().tearDown()
        if IS_CI:
            print("::group::Browser logs")
&gt;       for line in self.driver.get_log("browser"):

tests/e2e/utils.py:196: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;selenium.webdriver.remote.webdriver.WebDriver (session="7144b151e37465193c2a45304ffa58b5")&gt;
log_type = 'browser'

    def get_log(self, log_type):
        """Gets the log for a given log type.
    
        :Args:
         - log_type: type of log that which will be returned
    
        :Usage:
            ::
    
                driver.get_log('browser')
                driver.get_log('driver')
                driver.get_log('client')
                driver.get_log('server')
        """
&gt;       return self.execute(Command.GET_LOG, {"type": log_type})["value"]

../../../..../pypoetry/virtualenvs/authentik-xvtLQ9eE-py3.12/lib/python3.12.../webdriver/remote/webdriver.py:1035: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;selenium.webdriver.remote.webdriver.WebDriver (session="7144b151e37465193c2a45304ffa58b5")&gt;
driver_command = 'getLog', params = {'type': 'browser'}

    def execute(self, driver_command: str, params: dict = None) -&gt; dict:
        """Sends a command to be executed by a command.CommandExecutor.
    
        :Args:
         - driver_command: The name of the command to execute as a string.
         - params: A dictionary of named parameters to send with the command.
    
        :Returns:
          The command's JSON response loaded into a dictionary object.
        """
        params = self._wrap_value(params)
    
        if self.session_id:
            if not params:
                params = {"sessionId": self.session_id}
            elif "sessionId" not in params:
                params["sessionId"] = self.session_id
    
        response = self.command_executor.execute(driver_command, params)
        if response:
&gt;           self.error_handler.check_response(response)

../../../..../pypoetry/virtualenvs/authentik-xvtLQ9eE-py3.12/lib/python3.12.../webdriver/remote/webdriver.py:380: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7fe27ec4ddf0&gt;
response = {'status': 404, 'value': '{\n  "value": {\n    "error": "invalid session id",\n    "stacktrace": "org.openqa.selenium....'amd64\', os.version: \'6.5.0-1025-azure\', java.version: \'11.0.21\'\\nDriver info: driver.version: unknown"\n  }\n}'}

    def check_response(self, response: Dict[str, Any]) -&gt; None:
        """Checks that a JSON response from the WebDriver does not have an
        error.
    
        :Args:
         - response - The JSON response from the WebDriver server as a dictionary
           object.
    
        :Raises: If the response contains an error message.
        """
        status = response.get("status", None)
        if not status or status == ErrorCode.SUCCESS:
            return
        value = None
        message = response.get("message", "")
        screen: str = response.get("screen", "")
        stacktrace = None
        if isinstance(status, int):
            value_json = response.get("value", None)
            if value_json and isinstance(value_json, str):
                import json
    
                try:
                    value = json.loads(value_json)
                    if len(value) == 1:
                        value = value["value"]
                    status = value.get("error", None)
                    if not status:
                        status = value.get("status", ErrorCode.UNKNOWN_ERROR)
                        message = value.get("value") or value.get("message")
                        if not isinstance(message, str):
                            value = message
                            message = message.get("message")
                    else:
                        message = value.get("message", None)
                except ValueError:
                    pass
    
        exception_class: Type[WebDriverException]
        e = ErrorCode()
        error_codes = [item for item in dir(e) if not item.startswith("__")]
        for error_code in error_codes:
            error_info = getattr(ErrorCode, error_code)
            if isinstance(error_info, list) and status in error_info:
                exception_class = getattr(ExceptionMapping, error_code, WebDriverException)
                break
        else:
            exception_class = WebDriverException
    
        if not value:
            value = response["value"]
        if isinstance(value, str):
            raise exception_class(value)
        if message == "" and "message" in value:
            message = value["message"]
    
        screen = None  # type: ignore[assignment]
        if "screen" in value:
            screen = value["screen"]
    
        stacktrace = None
        st_value = value.get("stackTrace") or value.get("stacktrace")
        if st_value:
            if isinstance(st_value, str):
                stacktrace = st_value.split("\n")
            else:
                stacktrace = []
                try:
                    for frame in st_value:
                        line = frame.get("lineNumber", "")
                        file = frame.get("fileName", "&lt;anonymous&gt;")
                        if line:
                            file = f"{file}:{line}"
                        meth = frame.get("methodName", "&lt;anonymous&gt;")
                        if "className" in frame:
                            meth = f"{frame['className']}.{meth}"
                        msg = "    at %s (%s)"
                        msg = msg % (meth, file)
                        stacktrace.append(msg)
                except TypeError:
                    pass
        if exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if "data" in value:
                alert_text = value["data"].get("text")
            elif "alert" in value:
                alert_text = value["alert"].get("text")
            raise exception_class(message, screen, stacktrace, alert_text)  # type: ignore[call-arg]  # mypy is not smart enough here
&gt;       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.InvalidSessionIdException: Message: Unable to find session with ID: 7144b151e37465193c2a45304ffa58b5
E       Build info: version: '4.18.1', revision: 'b1d3319b48'
E       System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.5.0-1025-azure', java.version: '11.0.21'
E       Driver info: driver.version: unknown
E       Stacktrace:
E       org.openqa.selenium.NoSuchSessionException: Unable to find session with ID: 7144b151e37465193c2a45304ffa58b5
E       Build info: version: '4.18.1', revision: 'b1d3319b48'
E       System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.5.0-1025-azure', java.version: '11.0.21'
E       Driver info: driver.version: unknown
E       	at org.openqa.selenium.grid.sessionmap.local.LocalSessionMap.get(LocalSessionMap.java:132)
E       	at org.openqa.selenium.grid.sessionmap.SessionMap.getUri(SessionMap.java:84)
E       	at org.openqa.selenium.grid.router.HandleSession.lambda$loadSessionId$4(HandleSession.java:223)
E       	at io.opentelemetry.context.Context.lambda$wrap$2(Context.java:224)
E       	at org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:180)
E       	at org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.grid.router.Router.execute(Router.java:87)
E       	at org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)
E       	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
E       	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
E       	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
E       	at org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)
E       	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
E       	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
E       	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
E       	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
E       	at org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)
E       	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
E       	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
E       	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
E       	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
E       	at java.base/java.lang.Thread.run(Thread.java:829)

../../../..../pypoetry/virtualenvs/authentik-xvtLQ9eE-py3.12/lib/python3.12.../webdriver/remote/errorhandler.py:229: InvalidSessionIdException

To view individual test run time comparison to the main branch, go to the Test Analytics Dashboard

@BeryJu BeryJu disabled auto-merge November 4, 2024 11:59
@BeryJu BeryJu merged commit f4a2795 into main Nov 4, 2024
@BeryJu BeryJu deleted the update-fido-mds-client branch November 4, 2024 11:59
kensternberg-authentik added a commit that referenced this pull request Nov 12, 2024
* main:
  core: add `None` check to a device's `extra_description` (#11904)
  providers/oauth2: fix size limited index for tokens (#11879)
  web: fix missing status code on failed build (#11903)
  website: bump docusaurus-theme-openapi-docs from 4.1.0 to 4.2.0 in /website (#11897)
  translate: Updates for file locale/en/LC_MESSAGES/django.po in de (#11891)
  stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#11884)
  translate: Updates for file web/xliff/en.xlf in tr (#11878)
  translate: Updates for file locale/en/LC_MESSAGES/django.po in tr (#11866)
  core: bump google-api-python-client from 2.149.0 to 2.151.0 (#11885)
  core: bump selenium from 4.26.0 to 4.26.1 (#11886)
  core, web: update translations (#11896)
  website: bump docusaurus-plugin-openapi-docs from 4.1.0 to 4.2.0 in /website (#11898)
  core: bump watchdog from 5.0.3 to 6.0.0 (#11899)
  core: bump ruff from 0.7.1 to 0.7.2 (#11900)
  core: bump django-pglock from 1.6.2 to 1.7.0 (#11901)
  website/docs: fix release notes to say Federation (#11889)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant