You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2020/05/11 15:36:41 UTC

[airavata-django-portal] 02/05: Merge branch 'AIRAVATA-3332' into develop

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit d4c2391801f577e67d07fac1727388c2d62babb6
Merge: e2f62c6 b23f2c3
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon May 11 11:15:07 2020 -0400

    Merge branch 'AIRAVATA-3332' into develop

 django_airavata/apps/api/views.py                  |    3 +
 django_airavata/apps/auth/backends.py              |   44 +-
 .../media/images/SARS-CoV-2.max-165x165.png        |  Bin 0 -> 56685 bytes
 .../media/images/SARS-CoV-2.max-800x600.png        |  Bin 0 -> 48306 bytes
 .../media/images/SARS-CoV-2.original.png           |  Bin 0 -> 48306 bytes
 .../media/images/SARS-CoV-2.width-800.png          |  Bin 0 -> 48306 bytes
 .../media/images/bg-header.max-165x165.jpg         |  Bin 0 -> 11402 bytes
 .../media/images/bg-header.max-800x600.jpg         |  Bin 0 -> 158955 bytes
 .../media/images/bg-header.original.jpg            |  Bin 0 -> 496849 bytes
 ...e-brasil-guys-avpaulista-109919.max-165x165.jpg |  Bin 0 -> 18423 bytes
 ...ople-brasil-guys-avpaulista-109919.original.jpg |  Bin 0 -> 153370 bytes
 ...ding-laboratory-flask-2280571_1.max-165x165.jpg |  Bin 0 -> 16783 bytes
 ...holding-laboratory-flask-2280571_1.original.jpg |  Bin 0 -> 249563 bytes
 ...g-laboratory-flask-2280571_1_Zd.max-165x165.jpg |  Bin 0 -> 16783 bytes
 .../media/images/physicell-logo-01.max-165x165.png |  Bin 0 -> 52343 bytes
 .../media/images/physicell-logo-01.max-800x600.png |  Bin 0 -> 52962 bytes
 .../media/images/physicell-logo-01.original.png    |  Bin 0 -> 52962 bytes
 .../media/images/physicell-logo-01.width-800.png   |  Bin 0 -> 52962 bytes
 .../media/images/snapshot00000240.max-165x165.jpg  |  Bin 0 -> 31904 bytes
 .../media/images/snapshot00000240.max-800x600.jpg  |  Bin 0 -> 76941 bytes
 .../media/images/snapshot00000240.width-800.jpg    |  Bin 0 -> 76941 bytes
 .../images/virus-1812092_1920.max-165x165.jpg      |  Bin 0 -> 11402 bytes
 .../images/virus-1812092_1920.max-800x600.jpg      |  Bin 0 -> 158955 bytes
 .../media/images/virus-1812092_1920.original.jpg   |  Bin 0 -> 496849 bytes
 django_airavata/media/images/virus.max-165x165.png |  Bin 0 -> 17297 bytes
 django_airavata/media/images/virus.original.png    |  Bin 0 -> 34360 bytes
 .../media/images/virus_1.max-165x165.png           |  Bin 0 -> 23232 bytes
 django_airavata/media/images/virus_1.original.png  |  Bin 0 -> 48171 bytes
 .../media/images/virus_2.max-165x165.png           |  Bin 0 -> 24997 bytes
 django_airavata/media/images/virus_2.original.png  |  Bin 0 -> 50386 bytes
 .../media/images/virus_3.max-165x165.png           |  Bin 0 -> 24997 bytes
 django_airavata/media/images/virus_3.original.png  |  Bin 0 -> 50386 bytes
 .../media/images/virus_3_8bogaM1.max-165x165.png   |  Bin 0 -> 24997 bytes
 .../static/common/js/components/Uppy.vue           |    3 +
 .../wagtailapps/base/fixtures/physicell.json       | 3527 ++++++++++++++++++++
 35 files changed, 3559 insertions(+), 18 deletions(-)

diff --cc django_airavata/apps/auth/backends.py
index 119a635,bca2881..98bf55a
--- a/django_airavata/apps/auth/backends.py
+++ b/django_airavata/apps/auth/backends.py
@@@ -59,27 -61,31 +61,33 @@@ class KeycloakBackend(object)
          except User.DoesNotExist:
              return None
  
 +    @sensitive_variables('client_secret')
      def _get_token_and_userinfo_password_flow(self, username, password):
-         client_id = settings.KEYCLOAK_CLIENT_ID
-         client_secret = settings.KEYCLOAK_CLIENT_SECRET
-         token_url = settings.KEYCLOAK_TOKEN_URL
-         userinfo_url = settings.KEYCLOAK_USERINFO_URL
-         verify_ssl = settings.KEYCLOAK_VERIFY_SSL
-         oauth2_session = OAuth2Session(client=LegacyApplicationClient(
-             client_id=client_id))
-         if hasattr(settings, 'KEYCLOAK_CA_CERTFILE'):
-             oauth2_session.verify = settings.KEYCLOAK_CA_CERTFILE
-         token = oauth2_session.fetch_token(token_url=token_url,
-                                            username=username,
-                                            password=password,
-                                            client_id=client_id,
-                                            client_secret=client_secret,
-                                            verify=verify_ssl)
-         userinfo = oauth2_session.get(userinfo_url).json()
-         return token, userinfo
+         try:
+             client_id = settings.KEYCLOAK_CLIENT_ID
+             client_secret = settings.KEYCLOAK_CLIENT_SECRET
+             token_url = settings.KEYCLOAK_TOKEN_URL
+             userinfo_url = settings.KEYCLOAK_USERINFO_URL
+             verify_ssl = settings.KEYCLOAK_VERIFY_SSL
+             oauth2_session = OAuth2Session(client=LegacyApplicationClient(
+                 client_id=client_id))
+             if hasattr(settings, 'KEYCLOAK_CA_CERTFILE'):
+                 oauth2_session.verify = settings.KEYCLOAK_CA_CERTFILE
+             token = oauth2_session.fetch_token(token_url=token_url,
+                                                username=username,
+                                                password=password,
+                                                client_id=client_id,
+                                                client_secret=client_secret,
+                                                verify=verify_ssl)
+             userinfo = oauth2_session.get(userinfo_url).json()
+             return token, userinfo
+         except InvalidGrantError as e:
+             # password wasn't valid, just log as a warning
+             logger.warning(f"Failed to log in user {username} with "
+                            f"password: {e}")
+             return None, None
  
 +    @sensitive_variables('client_secret')
      def _get_token_and_userinfo_redirect_flow(self, request):
          authorization_code_url = request.build_absolute_uri()
          client_id = settings.KEYCLOAK_CLIENT_ID