VladaZakharova commented on PR #36052:
URL: https://github.com/apache/airflow/pull/36052#issuecomment-1898612794

   > > Update init_api_auth_provider function.
   > > In  get_api_endpoints function we use connexion_app.add_api and expect 
FlaskApi as a return object, but add_api function always return None. 
Previously we use FlaskApi object for taking blueprints and then extend our 
base_paths here: 
https://github.com/apache/airflow/pull/36052/files#diff-a1cf5a1eea3231a292d789d82df7943bfe8fa89ca955404b2f9cdaa25e08fa80R309
   > > @vincbeck is it important to save this logic for fab_auth_manager or is 
it enough to register blueprints under connexion_app.add_api functionality?
   > 
   > I am not sure this is relevant anymore. The signature of 
`get_api_endpoints` changed. See 
[here](https://github.com/apache/airflow/blob/main/airflow/providers/fab/auth_manager/fab_auth_manager.py#L149).
 It should simplify the problem.
   
   Hi @vincbeck ! I think the question here was about the line where we are 
appending `base_paths` variable with new registered blueprint. With the new 
version of Connexion the way of registering blueprints will be changed to 
register in connexion_app. So the method `get_api_endpoints()` with new version 
of Connexion will return None instead of blueprint object. So, if we can't 
return blueprint from the `get_api_endpoints()` method, the `base_paths` 
variable couldn't be extended. Should we consider still updating `base_paths` 
with blueprint object? Is this variable used later somewhere? The if statement 
here shows that we still can continue without adding blueprint to this list of 
base_paths. If we need this variable later, is there other way to add blueprint 
not using value returned by `get_api_endpoints()` since now it will return None?
   ```
   def init_api_auth_provider(connexion_app: connexion.FlaskApp):
       """Initialize the API offered by the auth manager."""
       auth_mgr = get_auth_manager()
       blueprint = auth_mgr.get_api_endpoints(connexion_app)
       if blueprint:
           base_paths.append(blueprint.url_prefix if blueprint.url_prefix else 
"")
           flask_app = connexion_app.app
           flask_app.extensions["csrf"].exempt(blueprint)
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to