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());