IBX-8356: Reworked Ibexa\Core\MVC\Symfony\Security\Authentication\AuthenticatorInterface usages to comply with Symfony-based authentication#101
Conversation
Ibexa\Core\MVC\Symfony\Security\Authentication\AuthenticatorInterface usages to comply with Symfony-based authentication
b0508ca to
a3b1471
Compare
d7547bf to
e73f707
Compare
9d185ea to
5c75500
Compare
bce578a to
02f4263
Compare
9c8f8c2 to
b23cde0
Compare
02f4263 to
37babd1
Compare
|
I would need to know why the matcher specifically is being dropped, and what will be the new expected user configuration. We used to use |
Can you please elaborate which matcher you have in mind? The configuration is tackled within https://github.com/ibexa/recipes-dev/pull/122/files. |
3173e5b to
50f9fbe
Compare
|
99e5fea to
c7df328
Compare
e94ba89 to
35307f0
Compare
|
micszo
left a comment
There was a problem hiding this comment.
Small suggestion for follow-up PR:
When using unsupported XML format error description could be more user friendly.
Now it states: "You must provide a ValueObject for visiting, "NULL" provided."
It's something we might address when swapping over to Symfony Serializer for request parsing. Our current Visitors are barely performing sanity checks at all, and that error sounds more like something PHP would spew on it's own. |
* development_security.md: Update JWT firewalls ibexa/recipes-dev#122 ibexa/recipes-dev#124 ibexa/recipes-dev#125 * rest_api_authentication.md: XML isn't supported for JWT ibexa/rest#101
…ed in Dev-doc (#3127) * Update JWT (#3108) * development_security.md: Update JWT firewalls ibexa/recipes-dev#122 ibexa/recipes-dev#124 ibexa/recipes-dev#125 * rest_api_authentication.md: XML isn't supported for JWT ibexa/rest#101 * render doc added * updates * img added, content added * mkdocs * fixes after rev * fix * fixes --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
* first batch added * content added * recommendations twig page added * updates * content moved, structure updated * guide added * guide content * fixes, content moved * fixes after review * Raptor integration - feature branch: fix links (#3123) * Add preview of linked PHP API Ref entries * Fix few links * new batch of fixes * updates * new blocks added * name fix * fix * new page added to cards on raptor_connector landing page * fixes - first batch * new fixes * PHP & JS CS Fixes * new fixes * block names fixed * code fixed * code fixed * links fixed * card fixed * IBX-11571: Rendering recommendations outside of Page Builder documented in Dev-doc (#3127) * Update JWT (#3108) * development_security.md: Update JWT firewalls ibexa/recipes-dev#122 ibexa/recipes-dev#124 ibexa/recipes-dev#125 * rest_api_authentication.md: XML isn't supported for JWT ibexa/rest#101 * render doc added * updates * img added, content added * mkdocs * fixes after rev * fix * fixes --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * php fix * composer.json fix - connector-raptor added * Raptor integration - feature branch: Fix PHP (#3130) * EventData.php: Wrap into a class * Event*.php: Format * language fixes * Raptor integration: Rework PHP (#3131) * tracking_php_api.md: Detail EventMapper, EventType, EventContext * tracking_php_api.md: caution about buy event --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * server description updated --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Co-authored-by: julitafalcondusza <julitafalcondusza@users.noreply.github.com> Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com>
* Raptor integration - feature branch (#3121) * first batch added * content added * recommendations twig page added * updates * content moved, structure updated * guide added * guide content * fixes, content moved * fixes after review * Raptor integration - feature branch: fix links (#3123) * Add preview of linked PHP API Ref entries * Fix few links * new batch of fixes * updates * new blocks added * name fix * fix * new page added to cards on raptor_connector landing page * fixes - first batch * new fixes * PHP & JS CS Fixes * new fixes * block names fixed * code fixed * code fixed * links fixed * card fixed * IBX-11571: Rendering recommendations outside of Page Builder documented in Dev-doc (#3127) * Update JWT (#3108) * development_security.md: Update JWT firewalls ibexa/recipes-dev#122 ibexa/recipes-dev#124 ibexa/recipes-dev#125 * rest_api_authentication.md: XML isn't supported for JWT ibexa/rest#101 * render doc added * updates * img added, content added * mkdocs * fixes after rev * fix * fixes --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * php fix * composer.json fix - connector-raptor added * Raptor integration - feature branch: Fix PHP (#3130) * EventData.php: Wrap into a class * Event*.php: Format * language fixes * Raptor integration: Rework PHP (#3131) * tracking_php_api.md: Detail EventMapper, EventType, EventContext * tracking_php_api.md: caution about buy event --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * server description updated --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Co-authored-by: julitafalcondusza <julitafalcondusza@users.noreply.github.com> Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Added translation-related Twig Component groups (#3091) * Doc for Quable (#3085) * Renaming - part one * Current status * Install doc ready? * Fixed build * Configuration doc * Removed Quable other * Added product guide skeleton * Guide * Current status * Customize product embeds * Added missing search doc * Attribute rendering * Provided a list of attributes * Fixed mkdocs build * Self review * Added product code limitatin * Fix typos * Removed asset mentions * Self review * Selfreview done * Apply suggestion from @mnocon * Fixed table rendering * Added Quable API * Removed Quable client package * Adrien's review * After review * Apply suggestions from code review Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Review changes * Update docs/product_catalog/quable/install_quable.md Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Update docs/product_catalog/add_remote_pim_support.md Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Update docs/product_catalog/customize_product_embed_templates.md Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Manual changes * Apply suggestions from code review Co-authored-by: Paweł Niedzielski <pawel.tadeusz.niedzielski@gmail.com> * Manual review feedback * Added doc for language configuration (#3128) * Added doc for language configuration * Apply suggestion from @mnocon --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> Co-authored-by: Paweł Niedzielski <pawel.tadeusz.niedzielski@gmail.com> * Added doc for TaxonomyNoEntries & TaxonomySubtree (#3082) * Added doc for TaxonomyNoEntries * Added doc for Taxonomy subtree * Fixed CS * Apply suggestions from code review Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Apply suggestion from @mnocon * Rebuild --------- Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * IBX-11485: Update doc for Symfony 7.4 (#3098) * Update doc for Symfny 7.4 * Added bundle entry * Apply suggestion from @mnocon * Added var/share mention * Review feedback * Apply suggestions from code review Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * Product tour (#3065) * Product tour doc skeleton * Review feedback * Vale * Review feedback - part 2 * Added doc for the new config * Review feedback * Adjusted includes * Wording * Specified button name * Removed TODO * Help Center and Product tour enabled by default * Added images and interactive demo * Apply suggestions from code review Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Manual changes * [TMP] Fix build * Fixed build * Reworded --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Documented try_catch (and sql: execute) in migrations (#3060) * Added doc for try_catch and sql in migrations * Vale suggestions * Vale suggestion * Added missing code block * Review feedback * Apply suggestions from code review Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> * Improved example and clarified migration and migratoin step usage * Removed RN enties --------- Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * IBX-10998: Document Gemini connector (#3025) * IBX-10998: Document Gemini connector * Update docs/ai_actions/extend_ai_actions.md Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Implement reviewer comments * Apply suggestions from code review Co-authored-by: Marek Nocoń <mnocon@users.noreply.github.com> * Add RN entry * IBX-11401: Describe Gemini embeddings provider (#3120) * IBX-11401: Describe Gemini embeddings provider * Remove the RN entry * Fied broken link * Fixed event page name --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Co-authored-by: Marek Nocoń <mnocon@users.noreply.github.com> * Added doc for additional parameter for ibexa_render (#3043) * Added doc for additional parameter for ibexa_render * Added update sections * Update docs/update_and_migration/from_5.0/update_from_5.0.md Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Reworked RN drafts * Update docs/release_notes/ibexa_dxp_v4.6.md Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Removed RN entries --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Product tour: Deptract+Rector fixes (#3136) * deptrac.baseline.yaml: Ignore NotificationScenarioSubscriber * NotificationScenarioSubscriber: Apply Rector suggestions * customize_product_tour.md: Update hl_lines * updated_at_criterion.md: Rm EOF blank lines * Release 5.0.7 follow up (#3137) * Added homepage mention * Applied update doc suggestion * Reworded Gemini connector * Fixed link? * search_api.md: Minor fixes * Raptor Add/Update buy event (#3141) * tracking_php_api.md: Rm caution w/ EventType::BUY * recommendations_twig_functions: Add buy event, sort events * tracking_php_api.md: More PHP API Ref links in mapping intro --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> * 5.0.7 update (#3143) * Added DB update scripts * Mention that ibexa:setup is deprecated * Reordered * Reworded * Apply suggestions from code review Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Release 5.0.7 fixes (#3140) * Highlight and wording fixes * Fixes * Apply suggestions from code review Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Co-authored-by: Marek Nocoń <mnocon@users.noreply.github.com> * Extracted to separate yaml file * Apply suggestion from @adriendupuis Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> --------- Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Release notes for v5.0.7 and v4.6.29 (#3133) * Init next release notes w/ postponed * mkdocs.yml: Increment latest_tag_* * Symfony 7.4 #3098 * Apply suggestion from @adriendupuis * Revert "Apply suggestion from @adriendupuis" This reverts commit 519103f. * ibexa_dxp_v5.0.md: Raptor connector LTS Update * ibexa_dxp_v5.0.md: Raptor connector LTS Update (Format) * Apply suggestion from vale * Apply suggestions from @julitafalcondusza Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * ibexa_dxp_v5.0.md: translation components, AI in PB * ibexa_dxp_v5.0.md: Narrowed link for Raptor connector * ibexa_dxp_v5.0.md: Sort editions and add Quable * ibexa_dxp_vX.Y.md: Taxonomy search criteria * ibexa_dxp_v4.6.md: Taxonomy search criteria: fix links * Comment include 'snippets/release_XY.md' * Use absolute links in snippets/release_XY.md * Add Quable to ibexa_dxp_v4.6.md * Add Integrated help's Product tour * Raptor connector isn't an LTS Update * Raptor connector isn't an LTS Update * Quable is an add-on * ibexa_dxp_v5.0.md: REST API request body examples * ibexa_dxp_v5.0.md: PHP API * ibexa_dxp_v5.0.md: PHP API * Quable PIM isn't for Commerce * Move Quable PIM up, rm badges * ibexa_dxp_v5.0.md: Fix link * Quable isn't for 4.6 * Add PHP API draft to release notes * Apply suggestion from @dabrt * remove blur, set versions and date * uncomment include_file * Apply suggestions from code review Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> * resync ibexa_dxp_v5.0.md and ibexa_dxp_v4.6.md * Apply suggestions from code review Co-authored-by: Marek Nocoń <mnocon@users.noreply.github.com> * resync ibexa_dxp_v5.0.md and ibexa_dxp_v4.6.md * Move AI Actions in blocks upper * TaxonomySubtree isn't new to these release * Update the next release date --------- Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> Co-authored-by: Marek Nocoń <mnocon@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Made Date and time/Symbol attribute links version aware * Update docs/release_notes/ibexa_dxp_v4.6.md Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Update docs/release_notes/ibexa_dxp_v4.6.md Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> * Fixed broken link * Added PHP API links * Added security note --------- Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> Co-authored-by: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Co-authored-by: julitafalcondusza <julitafalcondusza@users.noreply.github.com> Co-authored-by: Tomasz Dąbrowski <64841871+dabrt@users.noreply.github.com> Co-authored-by: Paweł Niedzielski <pawel.tadeusz.niedzielski@gmail.com>



Related PRs:
Ibexa\Core\MVC\Symfony\Security\Authentication\AuthenticatorInterfaceto be replaced with Symfony-based authentication core#375 (will be merged at the end, not blocking this part)Description:
Reimplemented JWT authentication. The need for that comes from the fact, that
Ibexa\Core\MVC\Symfony\Security\Authentication\AuthenticatorInterfacerelies on deprecated Symfony authorization mechanisms and will be dropped.Reworked to be compliant with https://symfony.com/bundles/LexikJWTAuthenticationBundle/current/index.html#symfony-5-3-and-higher. The third-party provider has already moved to Symfony
json_loginauthenticator so we are just adapting our implementation accordingly.Few important changes:
Content-Type: application/vnd.ibexa.api.JWT+jsonheader can still be used for keeping the whole solution BC safe, however the new authenticator should be referenced viaContent-Type: application/jsonheader instead,JsonLoginHeaderReplacingSubscriberwhich replaces mentioned header on the fly. I also left aTODOnote to remember it should be dropped once the new REST API version is released. I am open for suggestions how to improve such reminder,SecurityListenerand kind of replaced it withAuthenticationSuccessSubscriber- it sets current repository user on successful authentication and normalize the end response to be in-tact with the previous one (another BC-safe piece of code). The reason for that is thatjson_loginhandles the response outside and forms it similar to:Ibexa\Rest\Server\Controller\JWT::createToken- all the heavy lifting is done by thejson_loginauthenticator so it's not needed anymore. The whole controller was left though, as to my understanding it is needed for the route to be configured properly. If this is wrong, the whole class can just be dropped,src/lib/Security/AuthorizationHeaderRESTRequestMatcher.phpwas moved out of contracts and marked as@internalas we shouldn't allow manipulating with such vital part of the authentication process,For QA:
Documentation:
We need to mention changes to payload, response and headers described above as much as removed/moved classes.