GUACAMOLE-611: Handle sublasses of Error in addition to RuntimeException.

Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/9d4aae18
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/9d4aae18
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/9d4aae18

Branch: refs/heads/master
Commit: 9d4aae187b71b9072764f322d25c48e11a4e1bdb
Parents: cc742f2
Author: Michael Jumper <mjum...@apache.org>
Authored: Sat Aug 25 13:52:41 2018 -0700
Committer: Michael Jumper <mjum...@apache.org>
Committed: Sat Aug 25 13:54:06 2018 -0700

----------------------------------------------------------------------
 .../extension/AuthenticationProviderFacade.java | 26 ++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/9d4aae18/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
----------------------------------------------------------------------
diff --git 
a/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
 
b/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
index 3b8fd62..2b4f99c 100644
--- 
a/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
+++ 
b/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
@@ -222,6 +222,19 @@ public class AuthenticationProviderFacade implements 
AuthenticationProvider {
             throw e;
 
         }
+        catch (Error e) {
+
+            // Skip using this authentication provider if configured to ignore
+            // internal failures during auth
+            if (isFailureTolerated()) {
+                warnAuthProviderSkipped(e);
+                return null;
+            }
+
+            warnAuthAborted();
+            throw e;
+
+        }
 
     }
 
@@ -289,6 +302,19 @@ public class AuthenticationProviderFacade implements 
AuthenticationProvider {
             throw e;
 
         }
+        catch (Error e) {
+
+            // Skip using this authentication provider if configured to ignore
+            // internal failures during auth
+            if (isFailureTolerated()) {
+                warnAuthProviderSkipped(e);
+                return null;
+            }
+
+            warnAuthAborted();
+            throw e;
+
+        }
 
     }
 

Reply via email to