You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2017/05/04 09:42:21 UTC

directory-kerby git commit: Make error handling more robust in case of a Throwable

Repository: directory-kerby
Updated Branches:
  refs/heads/trunk 03ef96629 -> e4046fdce


Make error handling more robust in case of a Throwable


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/e4046fdc
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/e4046fdc
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/e4046fdc

Branch: refs/heads/trunk
Commit: e4046fdce1ea4f434b4c3b276972bfefd6372b76
Parents: 03ef966
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Thu May 4 10:42:05 2017 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Thu May 4 10:42:05 2017 +0100

----------------------------------------------------------------------
 .../kerby/kerberos/kerb/server/KdcHandler.java       | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/e4046fdc/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcHandler.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcHandler.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcHandler.java
index d04a306..5f625ff 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcHandler.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/KdcHandler.java
@@ -14,7 +14,7 @@
  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  *  KIND, either express or implied.  See the License for the
  *  specific language governing permissions and limitations
- *  under the License. 
+ *  under the License.
  *
  */
 package org.apache.kerby.kerberos.kerb.server;
@@ -115,7 +115,7 @@ public class KdcHandler {
         try {
             kdcRequest.process();
             krbResponse = kdcRequest.getReply();
-        } catch (KrbException e) {
+        } catch (Throwable e) {
             if (e instanceof KdcRecoverableException) {
                 krbResponse = handleRecoverableException(
                         (KdcRecoverableException) e, kdcRequest);
@@ -123,11 +123,12 @@ public class KdcHandler {
                 KrbError krbError = new KrbError();
                 krbError.setStime(KerberosTime.now());
                 krbError.setSusec(100);
-                if (e.getKrbErrorCode() != null) {
-                    krbError.setErrorCode(e.getKrbErrorCode());
-                } else {
-                    krbError.setErrorCode(KrbErrorCode.UNKNOWN_ERR);
+
+                KrbErrorCode errorCode = KrbErrorCode.UNKNOWN_ERR;
+                if (e instanceof KrbException && ((KrbException) e).getKrbErrorCode() != null) {
+                    errorCode = ((KrbException) e).getKrbErrorCode();
                 }
+                krbError.setErrorCode(errorCode);
                 krbError.setCrealm(kdcContext.getKdcRealm());
                 if (kdcRequest.getClientPrincipal() != null) {
                     krbError.setCname(kdcRequest.getClientPrincipal());
@@ -140,7 +141,7 @@ public class KdcHandler {
                     serverPrincipal.setRealm(kdcRequest.getKdcReq().getReqBody().getRealm());
                     krbError.setSname(serverPrincipal);
                 }
-                if (KrbErrorCode.KRB_AP_ERR_BAD_INTEGRITY.equals(e.getKrbErrorCode())) {
+                if (KrbErrorCode.KRB_AP_ERR_BAD_INTEGRITY.equals(errorCode)) {
                     krbError.setEtext("PREAUTH_FAILED");
                 } else {
                     krbError.setEtext(e.getMessage());