You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2018/03/02 08:24:57 UTC
directory-kerby git commit: Parse the error message from https
response.
Repository: directory-kerby
Updated Branches:
refs/heads/trunk 439aeaed8 -> bec8f47a6
Parse the error message from https response.
Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/bec8f47a
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/bec8f47a
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/bec8f47a
Branch: refs/heads/trunk
Commit: bec8f47a6dac9c8409e3bab5265322fa6028d656
Parents: 439aeae
Author: plusplusjiajia <ji...@intel.com>
Authored: Fri Mar 2 16:21:54 2018 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Fri Mar 2 16:21:54 2018 +0800
----------------------------------------------------------------------
.../apache/kerby/has/client/HasInitClient.java | 41 +++++++++++++++-----
.../org/apache/kerby/has/server/HasServer.java | 8 ++--
.../kerby/has/server/web/rest/HadminApi.java | 5 +--
.../kerby/has/server/web/rest/InitApi.java | 15 ++-----
.../kerby/has/server/web/rest/KadminApi.java | 21 +++-------
kerby-dist/has-dist/conf/hadmin.conf | 2 +-
kerby-dist/has-dist/conf/has-server.conf | 4 +-
kerby-dist/has-dist/conf/kdc.conf | 2 +-
kerby-dist/has-dist/conf/krb5.conf | 29 ++++++++++++++
.../server/impl/AbstractInternalKdcServer.java | 2 +-
10 files changed, 79 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/has-project/has-client/src/main/java/org/apache/kerby/has/client/HasInitClient.java
----------------------------------------------------------------------
diff --git a/has-project/has-client/src/main/java/org/apache/kerby/has/client/HasInitClient.java b/has-project/has-client/src/main/java/org/apache/kerby/has/client/HasInitClient.java
index ff017cb..104f302 100644
--- a/has-project/has-client/src/main/java/org/apache/kerby/has/client/HasInitClient.java
+++ b/has-project/has-client/src/main/java/org/apache/kerby/has/client/HasInitClient.java
@@ -24,8 +24,7 @@ import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.client.urlconnection.HTTPSProperties;
import org.apache.kerby.has.common.HasConfig;
-import org.codehaus.jettison.json.JSONException;
-import org.codehaus.jettison.json.JSONObject;
+import org.apache.kerby.has.common.HasException;
import org.glassfish.jersey.SslConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -96,16 +95,17 @@ public class HasInitClient {
public void startKdc() {
WebResource webResource = getWebResource("init/kdcstart");
ClientResponse response = webResource.get(ClientResponse.class);
+ String message = null;
try {
- JSONObject result = new JSONObject(response.getEntity(String.class));
- if (result.getString("result").equals("success")) {
- System.out.println(result.getString("msg"));
- } else {
- System.err.println(result.getString("msg"));
- }
- } catch (JSONException e) {
+ message = getResponse(response);
+ } catch (HasException e) {
System.err.println(e.getMessage());
}
+ if (response.getStatus() == 200) {
+ System.out.println(message);
+ } else {
+ System.err.println(message);
+ }
}
public InputStream initKdc() {
@@ -113,7 +113,28 @@ public class HasInitClient {
ClientResponse response = webResource.get(ClientResponse.class);
if (response.getStatus() == 200) {
return response.getEntityInputStream();
+ } else {
+ try {
+ System.err.println(getResponse(response));
+ } catch (HasException e) {
+ System.err.println(e.getMessage());
+ }
+ return null;
+ }
+ }
+
+ private String getResponse(ClientResponse response) throws HasException {
+ InputStream is = response.getEntityInputStream();
+ final byte[] b = new byte[1024];
+ int read;
+ final StringBuilder msg = new StringBuilder();
+ try {
+ while ((read = is.read(b)) > 0) {
+ msg.append(new String(b, 0, read));
+ }
+ } catch (IOException e) {
+ throw new HasException(e.getMessage());
}
- return null;
+ return msg.toString();
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/has-project/has-server/src/main/java/org/apache/kerby/has/server/HasServer.java
----------------------------------------------------------------------
diff --git a/has-project/has-server/src/main/java/org/apache/kerby/has/server/HasServer.java b/has-project/has-server/src/main/java/org/apache/kerby/has/server/HasServer.java
index 4df8dfc..17cb8b4 100644
--- a/has-project/has-server/src/main/java/org/apache/kerby/has/server/HasServer.java
+++ b/has-project/has-server/src/main/java/org/apache/kerby/has/server/HasServer.java
@@ -106,7 +106,7 @@ public class HasServer {
try {
kdcServer = new KdcServer(confDir);
} catch (KrbException e) {
- throw new HasException("Failed to create KdcServer. " + e);
+ throw new HasException("Failed to create KdcServer. " + e.getMessage());
}
kdcServer.setWorkDir(workDir);
kdcServer.setInnerKdcImpl(new NettyKdcServerImpl(kdcServer.getKdcSetting()));
@@ -117,7 +117,7 @@ public class HasServer {
throw new HasException("Errors occurred when init has kdc server: " + e.getMessage());
}
- KrbConfig krbConfig = null;
+ KrbConfig krbConfig;
try {
krbConfig = ClientUtil.getConfig(confDir);
} catch (KrbException e) {
@@ -131,12 +131,12 @@ public class HasServer {
try {
kdcServer.start();
} catch (KrbException e) {
- throw new HasException("Failed to start kdc server. " + e);
+ throw new HasException("Failed to start kdc server. " + e.getMessage());
}
try {
HasUtil.setEnableConf(new File(confDir, "has-server.conf"), "false");
} catch (Exception e) {
- throw new HasException("Failed to enable conf. " + e);
+ throw new HasException("Failed to enable conf. " + e.getMessage());
}
setHttpFilter();
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/HadminApi.java
----------------------------------------------------------------------
diff --git a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/HadminApi.java b/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/HadminApi.java
index 7054a2a..c8c21f8 100644
--- a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/HadminApi.java
+++ b/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/HadminApi.java
@@ -94,7 +94,6 @@ public class HadminApi {
} catch (KrbException e) {
WebServer.LOG.info("Failed to create local hadmin." + e.getMessage());
}
- JSONObject result = new JSONObject();
StringBuilder msg = new StringBuilder();
try {
StringBuilder data = new StringBuilder();
@@ -112,9 +111,7 @@ public class HadminApi {
msg.append(hasAdmin.addPrincByRole(host.getString("name"), role.toUpperCase()));
}
}
- result.put("result", "success");
- result.put("msg", msg.toString());
- return Response.ok(result.toString()).build();
+ return Response.ok(msg).build();
} catch (Exception e) {
WebServer.LOG.error("Failed to create principals,because : " + e.getMessage());
String error = "Failed to create principals,because : " + e.getMessage();
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/InitApi.java
----------------------------------------------------------------------
diff --git a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/InitApi.java b/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/InitApi.java
index 6e1cc6e..b4b7648 100644
--- a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/InitApi.java
+++ b/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/InitApi.java
@@ -21,7 +21,6 @@ import org.apache.kerby.has.common.HasException;
import org.apache.kerby.has.server.HasServer;
import org.apache.kerby.has.server.web.WebServer;
import org.apache.kerby.kerberos.kerb.KrbException;
-import org.codehaus.jettison.json.JSONObject;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
@@ -71,21 +70,13 @@ public class InitApi {
public Response kdcStart() {
if (httpRequest.isSecure()) {
final HasServer hasServer = WebServer.getHasServerFromContext(context);
- JSONObject result = new JSONObject();
String msg;
try {
hasServer.startKdcServer();
- } catch (HasException e) {
- msg = "Failed to start kdc server, because: " + e.getMessage();
- WebServer.LOG.error(msg);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- try {
msg = "Succeed in starting KDC server.";
- result.put("result", "success");
- result.put("msg", msg);
- return Response.ok(result.toString()).build();
- } catch (Exception e) {
+ WebServer.LOG.info(msg);
+ return Response.ok(msg).build();
+ } catch (HasException e) {
msg = "Failed to start kdc server, because: " + e.getMessage();
WebServer.LOG.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/KadminApi.java
----------------------------------------------------------------------
diff --git a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/KadminApi.java b/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/KadminApi.java
index 6445156..61c9a25 100644
--- a/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/KadminApi.java
+++ b/has-project/has-server/src/main/java/org/apache/kerby/has/server/web/rest/KadminApi.java
@@ -112,7 +112,7 @@ public class KadminApi {
localKadmin = new LocalKadminImpl(serverSetting);
} catch (KrbException e) {
msg = "Failed to create local kadmin." + e.getMessage();
- WebServer.LOG.info(msg);
+ WebServer.LOG.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
try {
@@ -158,16 +158,13 @@ public class KadminApi {
localKadmin = new LocalKadminImpl(serverSetting);
} catch (KrbException e) {
msg = "Failed to create local kadmin." + e.getMessage();
- WebServer.LOG.info(msg);
+ WebServer.LOG.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
- JSONObject result = new JSONObject();
try {
localKadmin.addPrincipal(principal.getValue(), password.getValue());
msg = "Add principal successfully.";
- result.put("result", "success");
- result.put("msg", msg);
- return Response.ok(result.toString()).build();
+ return Response.ok(msg).build();
} catch (Exception e) {
msg = "Failed to add " + principal + " principal, because: " + e.getMessage();
WebServer.LOG.error(msg);
@@ -184,7 +181,6 @@ public class KadminApi {
@QueryParam("newprincipal") String newPrincipal) {
if (httpRequest.isSecure()) {
WebServer.LOG.info("Request to rename " + oldPrincipal + " to " + newPrincipal);
- JSONObject result = new JSONObject();
String msg;
if (oldPrincipal != null && newPrincipal != null) {
LocalKadminImpl localKadmin;
@@ -201,9 +197,7 @@ public class KadminApi {
try {
localKadmin.renamePrincipal(oldPrincipal, newPrincipal);
msg = "Rename principal successfully.";
- result.put("result", "success");
- result.put("msg", msg);
- return Response.ok(result.toString()).build();
+ return Response.ok(msg).build();
} catch (Exception e) {
msg = "Failed to rename principal " + oldPrincipal + " to "
+ newPrincipal + ",because: " + e.getMessage();
@@ -232,7 +226,6 @@ public class KadminApi {
final PrincipalParam principal) {
if (httpRequest.isSecure()) {
WebServer.LOG.info("Request to delete the principal named " + principal.getValue());
- JSONObject result = new JSONObject();
String msg;
LocalKadminImpl localKadmin;
HasServer hasServer = WebServer.getHasServerFromContext(context);
@@ -248,9 +241,7 @@ public class KadminApi {
try {
localKadmin.deletePrincipal(principal.getValue());
msg = "Delete principal successfully.";
- result.put("result", "success");
- result.put("msg", msg);
- return Response.ok(result.toString()).build();
+ return Response.ok(msg).build();
} catch (Exception e) {
msg = "Failed to delete the principal named " + principal.getValue()
+ ",because : " + e.getMessage();
@@ -258,6 +249,6 @@ public class KadminApi {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
}
- return Response.status(403).entity("HTTPS required.\n").build();
+ return Response.status(Response.Status.FORBIDDEN).entity("HTTPS required.\n").build();
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/kerby-dist/has-dist/conf/hadmin.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/hadmin.conf b/kerby-dist/has-dist/conf/hadmin.conf
index e950aea..125bdfc 100644
--- a/kerby-dist/has-dist/conf/hadmin.conf
+++ b/kerby-dist/has-dist/conf/hadmin.conf
@@ -1,5 +1,5 @@
[HAS]
- https_host = plusplus-desktop
+ https_host = hostname
https_port = 8092
admin_keytab = /etc/has/admin.keytab
admin_keytab_principal = kadmin/HADOOP.COM@HADOOP.COM
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/kerby-dist/has-dist/conf/has-server.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/has-server.conf b/kerby-dist/has-dist/conf/has-server.conf
index 57ef56e..93accaf 100644
--- a/kerby-dist/has-dist/conf/has-server.conf
+++ b/kerby-dist/has-dist/conf/has-server.conf
@@ -17,8 +17,8 @@
#
[HAS]
- https_host = localhost
+ https_host = plusplus-desktop
https_port = 8092
filter_auth_type = kerberos
- enable_conf = true
+ enable_conf = false
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/kerby-dist/has-dist/conf/kdc.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/kdc.conf b/kerby-dist/has-dist/conf/kdc.conf
index c9c7921..21ccdd1 100644
--- a/kerby-dist/has-dist/conf/kdc.conf
+++ b/kerby-dist/has-dist/conf/kdc.conf
@@ -17,7 +17,7 @@
#
[kdcdefaults]
- kdc_host = localhost
+ kdc_host = hostname
kdc_udp_port = 88
kdc_tcp_port = 88
kdc_realm = HADOOP.COM
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/kerby-dist/has-dist/conf/krb5.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/krb5.conf b/kerby-dist/has-dist/conf/krb5.conf
new file mode 100644
index 0000000..55ae355
--- /dev/null
+++ b/kerby-dist/has-dist/conf/krb5.conf
@@ -0,0 +1,29 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "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.
+#
+
+[libdefaults]
+ kdc_realm = HADOOP.COM
+ default_realm = HADOOP.COM
+ udp_preference_limit = 4096
+ kdc_tcp_port = 88
+ kdc_udp_port = 88
+ ticket_lifetime = 60
+[realms]
+ HADOOP.COM = {
+ kdc = hostname:88
+ }
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/bec8f47a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/AbstractInternalKdcServer.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/AbstractInternalKdcServer.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/AbstractInternalKdcServer.java
index 5e3e5a1..d5f2761 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/AbstractInternalKdcServer.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/impl/AbstractInternalKdcServer.java
@@ -81,7 +81,7 @@ public class AbstractInternalKdcServer implements InternalKdcServer {
try {
doStart();
} catch (Exception e) {
- throw new KrbException("Failed to start " + getServiceName(), e);
+ throw new KrbException("Failed to start " + getServiceName() + ". " + e.getMessage());
}
started = true;