Kai,
Having not created a GIT patch before, I selected all projects, right
clicked to access the Team menu, selected Create Patch, and entered a file
name. Attached you'll find the resulting file.
Regards,
Richard
On Fri, Nov 10, 2017 at 3:45 AM, Zheng, Kai <[email protected]> wrote:
> Sounds good, Gerard.
>
>
>
> I’d like to see your patch and then have better idea. I understand the
> purpose and the proposed change.
>
>
>
> Regards,
>
> Kai
>
>
>
> *From:* Gerard Gagliano [mailto:[email protected]]
> *Sent:* Friday, November 10, 2017 6:12 AM
> *To:* [email protected]
> *Subject:* Needed changes to Kerby as a result of the introduction of the
> KdcClientRequest
>
>
>
> We've been working to make the changes necessitated by the introduction of
> the KdcClientRequest class and the associated calling parameter changes.
>
>
> Many data items needed by the authorization data backend code are not
> included in the KdcClientRequest class as defined in the 1.1.0-SNAPSHOT.
> Modification of this class to include the necessary data items includes a
> reference to the KrbIdentity class.
>
>
> This creates a circular dependency between the kerb-core project and the
> kerb-identity project. The circular dependency can be resolved by moving
> KrbIdentity from kerb-identity to kerb-core. Another suggestion is to more
> it to kerb-common. And another suggestion is to remove KdcClientRequest
> from package ….kerb.type.kdc as all other classes in that package are ASN1
> classes and this is not.
>
>
>
> Moving the classes as follows resolves the circular dependency:
>
> KdcClientRequest from kerb-core, and
>
> KrbIdentity from kerb-identity
>
> To kerb-common — package org.apache.kerby.kerberos.kerb.request
>
>
>
> In addition, a dependency on kerb-common will be added to kerb-identity.
>
>
>
> Without objection, we’ll move these classes. If there is a better way
> than this, please suggest.
>
>
>
> Thanks.
>
>
>
--
Richard M Feezel
[email protected]
diff --git a/benchmark/KrbClient.patch b/benchmark/KrbClient.patch
new file mode 100644
index 0000000..0160a68
--- /dev/null
+++ b/benchmark/KrbClient.patch
@@ -0,0 +1,578 @@
+diff --git a/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java b/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
+index 97bc84e..f6dc62d 100644
+--- a/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
++++ b/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
+@@ -29,7 +29,7 @@
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.identity.BatchTrans;
+ import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
+diff --git a/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java b/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
+index 4f600c7..d5b090b 100644
+--- a/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
++++ b/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
+@@ -37,7 +37,7 @@
+ import org.apache.kerby.config.Config;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+diff --git a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java
+index f1a16f4..b768fe5 100644
+--- a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java
++++ b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java
+@@ -21,7 +21,7 @@
+
+ import java.util.Comparator;
+
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+
+ /**
+ * Comparator for KrbIdentity
+diff --git a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java
+index 8a60143..8fb3a8c 100644
+--- a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java
++++ b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java
+@@ -24,7 +24,7 @@
+ import org.apache.directory.mavibot.btree.serializer.IntSerializer;
+ import org.apache.directory.mavibot.btree.serializer.LongSerializer;
+ import org.apache.directory.mavibot.btree.serializer.StringSerializer;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+diff --git a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java
+index ce1146d..9711a54 100644
+--- a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java
++++ b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java
+@@ -30,7 +30,7 @@
+ import org.apache.directory.mavibot.btree.serializer.StringSerializer;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+
+diff --git a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java
+index 2acd32b..6248355 100644
+--- a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java
++++ b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java
+@@ -19,7 +19,7 @@
+ */
+ package org.apache.kerby;
+
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+diff --git a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java
+index 1270397..14cf8df 100644
+--- a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java
++++ b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java
+@@ -24,7 +24,7 @@
+ import org.apache.kerby.kerberos.kerb.identity.backend.BackendTestBase;
+ import org.apache.kerby.kerberos.kerb.identity.backend.BackendTestUtil;
+ import org.apache.kerby.kerberos.kerb.identity.backend.IdentityBackend;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.junit.AfterClass;
+ import org.junit.BeforeClass;
+ import org.junit.rules.TemporaryFolder;
+diff --git a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
+index e7f50f5..6116317 100644
+--- a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
++++ b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
+@@ -22,7 +22,7 @@
+ import org.apache.kerby.config.Config;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.zookeeper.KeeperException;
+ import org.apache.zookeeper.WatchedEvent;
+ import org.apache.zookeeper.Watcher;
+diff --git a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java
+index 818b390..a0ca3b0 100644
+--- a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java
++++ b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java
+@@ -24,7 +24,7 @@
+ import org.apache.kerby.kerberos.kerb.admin.kadmin.KadminOption;
+ import org.apache.kerby.kerberos.kerb.keytab.Keytab;
+ import org.apache.kerby.kerberos.kerb.keytab.KeytabEntry;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+diff --git a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java
+index 1796b80..fd8aa34 100644
+--- a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java
++++ b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java
+@@ -23,7 +23,7 @@
+ import org.apache.kerby.kerberos.kerb.admin.kadmin.Kadmin;
+ import org.apache.kerby.kerberos.kerb.identity.backend.BackendConfig;
+ import org.apache.kerby.kerberos.kerb.identity.backend.IdentityBackend;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.server.KdcConfig;
+
+ /**
+diff --git a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java
+index 158ed7e..1f55345 100644
+--- a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java
++++ b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java
+@@ -23,7 +23,7 @@
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.identity.backend.IdentityBackend;
+ import org.apache.kerby.kerberos.kerb.keytab.Keytab;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.server.KdcConfig;
+ import org.apache.kerby.kerberos.kerb.server.KdcSetting;
+ import org.apache.kerby.kerberos.kerb.server.KdcUtil;
+diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java
+index 397d197..e155224 100644
+--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java
++++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java
+@@ -17,11 +17,10 @@
+ * under the License.
+ *
+ */
+-package org.apache.kerby.kerberos.kerb.type.kdc;
++package org.apache.kerby.kerberos.kerb.request;
+
+ import java.net.InetAddress;
+
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.base.AuthToken;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+@@ -40,18 +39,18 @@
+ private PrincipalName tgsName;
+ private EncryptionType tgsKeyType;
+ private EncryptionKey tgsKey;
+- private String kdcRealm;
+ private EncryptionKey tgsSessionKey;
+ private EncryptionKey tgsServerKey;
+- private KrbIdentity clientEntry;
+- private KrbIdentity serverEntry;
+
+ private boolean isPreAuthenticated;
+ private InetAddress clientAddress;
+ private EncryptionType encryptionType;
+ private EncryptionKey clientKey;
+ private PrincipalName clientPrincipal;
++ private KrbIdentity clientEntry;
+ private PrincipalName serverPrincipal;
++ private KrbIdentity serverEntry;
++ private String kdcRealm;
+ private AuthToken token;
+ private boolean isToken;
+ private boolean isPkinit;
+@@ -197,7 +196,7 @@
+ return isToken;
+ }
+
+- public void setToken(boolean isToken) {
++ public void setIsToken(boolean isToken) {
+ this.isToken = isToken;
+ }
+
+diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java
+index d0ad908..0272a3e 100644
+--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java
++++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java
+@@ -6,27 +6,28 @@
+ * 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.
+- *
++ * under the License.
++ *
+ */
+-package org.apache.kerby.kerberos.kerb.provider;
++package org.apache.kerby.kerberos.kerb.request;
++
++import java.util.HashMap;
++import java.util.List;
++import java.util.Map;
+
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+ import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
+
+-import java.util.HashMap;
+-import java.util.List;
+-import java.util.Map;
+
+ /**
+ *
+@@ -36,34 +37,37 @@
+ */
+ public class KrbIdentity {
+ /** the principal */
+- private PrincipalName principal;
++ private PrincipalName principal;
+
+ /** the key version */
+- private int keyVersion = 1;
++ private int keyVersion = 1;
+
+ /** KDC flags */
+- private int kdcFlags = 0;
++ private int kdcFlags = 0;
+
+ /** flag to indicate if this identity was disabled */
+- private boolean disabled;
++ private boolean disabled;
+
+ /** flag to indicate if this identity was locked */
+- private boolean locked;
++ private boolean locked;
+
+ /** the expiration time of the identity, default set to never expire */
+- private KerberosTime expireTime = KerberosTime.NEVER;
++ private KerberosTime expireTime = KerberosTime.NEVER;
+
+ /** the creation time of the identity */
+- private KerberosTime createdTime = KerberosTime.now();
++ private KerberosTime createdTime = KerberosTime.now();
+
+ /** the keys associated with this identity */
+- private Map<EncryptionType, EncryptionKey> keys =
+- new HashMap<EncryptionType, EncryptionKey>();
++ private final Map<EncryptionType, EncryptionKey> keys = new HashMap<>();
+
+ public KrbIdentity(String principalName) {
+ this.principal = new PrincipalName(principalName);
+ }
+
++ public KrbIdentity(PrincipalName principalName) {
++ this.principal = principalName;
++ }
++
+ public String getPrincipalName() {
+ return principal.getName();
+ }
+@@ -72,6 +76,10 @@
+ principal = new PrincipalName(newPrincipalName);
+ }
+
++ public void setPrincipalName(PrincipalName newPrincipalName) {
++ principal = newPrincipalName;
++ }
++
+ public PrincipalName getPrincipal() {
+ return principal;
+ }
+@@ -117,7 +125,7 @@
+ }
+
+ public void addKeys(List<EncryptionKey> encKeys) {
+- for (EncryptionKey key : encKeys) {
++ for (final EncryptionKey key : encKeys) {
+ keys.put(key.getKeyType(), key);
+ }
+ }
+@@ -157,7 +165,7 @@
+ }
+
+ if (obj instanceof KrbIdentity) {
+- KrbIdentity other = (KrbIdentity) obj;
++ final KrbIdentity other = (KrbIdentity) obj;
+ if (principal == null) {
+ if (other.principal != null) {
+ return false;
+@@ -174,8 +182,7 @@
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+- result = prime * result + ((principal == null) ? 0
+- : principal.hashCode());
++ result = prime * result + ((principal == null) ? 0 : principal.hashCode());
+ return result;
+ }
+ }
+diff --git a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
+index 47d62cc..f81e561 100644
+--- a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
++++ b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
+@@ -20,7 +20,7 @@
+ package org.apache.kerby.kerberos.kerb.identity.backend;
+
+ import org.apache.kerby.kerberos.kerb.KrbException;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+
+diff --git a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java
+index 1d0c84d..6e5c298 100644
+--- a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java
++++ b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java
+@@ -21,7 +21,7 @@
+
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+diff --git a/kerby-kerb/kerb-identity/pom.xml b/kerby-kerb/kerb-identity/pom.xml
+index f178848..b91ba78 100644
+--- a/kerby-kerb/kerb-identity/pom.xml
++++ b/kerby-kerb/kerb-identity/pom.xml
+@@ -34,6 +34,11 @@
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
++ <artifactId>kerb-common</artifactId>
++ <version>${project.version}</version>
++ </dependency>
++ <dependency>
++ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java
+index 0927dd0..d9f5ee4 100644
+--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java
++++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java
+@@ -20,7 +20,7 @@
+ package org.apache.kerby.kerberos.kerb.identity;
+
+ import org.apache.kerby.kerberos.kerb.KrbException;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+
+ /**
+ * Batch operations support to create/update/delete principal accounts
+diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java
+index c08bb6a..b506fe1 100644
+--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java
++++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java
+@@ -22,9 +22,9 @@
+ import org.apache.kerby.config.Config;
+ import org.apache.kerby.config.Configured;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationData;
+-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
+ import org.apache.kerby.kerberos.kerb.type.ticket.EncTicketPart;
+
+ import java.util.LinkedHashMap;
+diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java
+index 06cf735..4f91151 100644
+--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java
++++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java
+@@ -20,9 +20,9 @@
+ package org.apache.kerby.kerberos.kerb.identity;
+
+ import org.apache.kerby.kerberos.kerb.KrbException;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationData;
+-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
+ import org.apache.kerby.kerberos.kerb.type.ticket.EncTicketPart;
+
+ /**
+diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
+index 504aedf..753408a 100644
+--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
++++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
+@@ -25,14 +25,14 @@
+ import org.apache.kerby.config.Configured;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.identity.BatchTrans;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.ad.AdToken;
+ import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationData;
+ import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationDataEntry;
+ import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationType;
+ import org.apache.kerby.kerberos.kerb.type.base.KrbToken;
+ import org.apache.kerby.kerberos.kerb.type.base.TokenFormat;
+-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
+ import org.apache.kerby.kerberos.kerb.type.ticket.EncTicketPart;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
+index a2c29c1..26a1b1f 100644
+--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
++++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
+@@ -20,7 +20,7 @@
+ package org.apache.kerby.kerberos.kerb.identity.backend;
+
+ import org.apache.kerby.kerberos.kerb.KrbException;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+
+ import java.util.ArrayList;
+ import java.util.Collections;
+diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java
+index d6b3dc5..dd8877d 100644
+--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java
++++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java
+@@ -22,7 +22,7 @@
+ import org.apache.kerby.kerberos.kerb.KrbErrorCode;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.server.KdcContext;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptedData;
+diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java
+index 7b9a741..0ed3f0d 100644
+--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java
++++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java
+@@ -28,7 +28,7 @@
+ import org.apache.kerby.kerberos.kerb.crypto.CheckSumHandler;
+ import org.apache.kerby.kerberos.kerb.crypto.EncryptionHandler;
+ import org.apache.kerby.kerberos.kerb.crypto.fast.FastUtil;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.server.KdcContext;
+ import org.apache.kerby.kerberos.kerb.server.KdcRecoverableException;
+ import org.apache.kerby.kerberos.kerb.server.preauth.KdcFastContext;
+@@ -59,6 +59,7 @@
+ import org.apache.kerby.kerberos.kerb.type.kdc.KdcOptions;
+ import org.apache.kerby.kerberos.kerb.type.kdc.KdcRep;
+ import org.apache.kerby.kerberos.kerb.type.kdc.KdcReq;
++import org.apache.kerby.kerberos.kerb.type.kdc.KdcReqBody;
+ import org.apache.kerby.kerberos.kerb.type.pa.PaData;
+ import org.apache.kerby.kerberos.kerb.type.pa.PaDataEntry;
+ import org.apache.kerby.kerberos.kerb.type.pa.PaDataType;
+@@ -757,15 +758,17 @@
+ */
+ private void checkServer() throws KrbException {
+ KdcReq request = getKdcReq();
++ KdcReqBody body = request.getReqBody();
+
+- PrincipalName principal = request.getReqBody().getSname();
+- String serverRealm = request.getReqBody().getRealm();
++ PrincipalName principal = body.getSname();
++ String serverRealm = body.getRealm();
+ if (serverRealm == null || serverRealm.isEmpty()) {
+ LOG.info("Can't get the server realm from request, and try to get from kdcContext.");
+ serverRealm = kdcContext.getKdcRealm();
+ }
+ principal.setRealm(serverRealm);
+-
++ setServerPrincipal(principal);
++
+ KrbIdentity serverEntry = getEntry(principal.getName());
+ if (serverEntry == null) {
+ LOG.error("Principal: " + principal.getName() + " is not known");
+@@ -773,7 +776,7 @@
+ }
+
+ setServerEntry(serverEntry);
+- for (EncryptionType encType : request.getReqBody().getEtypes()) {
++ for (EncryptionType encType : body.getEtypes()) {
+ if (serverEntry.getKeys().containsKey(encType)) {
+ EncryptionKey serverKey = serverEntry.getKeys().get(encType);
+ setServerKey(serverKey);
+diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java
+index 993e269..6994958 100644
+--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java
++++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java
+@@ -24,7 +24,7 @@
+ import org.apache.kerby.kerberos.kerb.KrbErrorCode;
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.server.KdcContext;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+ import org.apache.kerby.kerberos.kerb.type.ap.ApOption;
+diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java
+index 30288b2..0bce64c 100644
+--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java
++++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java
+@@ -23,6 +23,7 @@
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
+ import org.apache.kerby.kerberos.kerb.crypto.EncryptionHandler;
++import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
+ import org.apache.kerby.kerberos.kerb.server.KdcConfig;
+ import org.apache.kerby.kerberos.kerb.server.KdcContext;
+ import org.apache.kerby.kerberos.kerb.type.KerberosTime;
+@@ -37,7 +38,6 @@
+ import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
+ import org.apache.kerby.kerberos.kerb.type.base.TransitedEncoding;
+ import org.apache.kerby.kerberos.kerb.type.base.TransitedEncodingType;
+-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
+ import org.apache.kerby.kerberos.kerb.type.kdc.KdcOption;
+ import org.apache.kerby.kerberos.kerb.type.kdc.KdcOptions;
+ import org.apache.kerby.kerberos.kerb.type.kdc.KdcReq;
+@@ -230,12 +230,15 @@
+ clientRequest.setClientAddress(kdcRequest.getClientAddress());
+ clientRequest.setClientKey(kdcRequest.getClientKey());
+ clientRequest.setClientPrincipal(kdcRequest.getClientPrincipal());
++ clientRequest.setClientEntry(kdcRequest.getClientEntry());
+ clientRequest.setServerPrincipal(kdcRequest.getServerPrincipal());
++ clientRequest.setServerEntry(kdcRequest.getServerEntry());
++ clientRequest.setKdcRealm(kdcRequest.getKdcContext().getKdcRealm());
+ clientRequest.setEncryptionType(kdcRequest.getEncryptionType());
+ clientRequest.setPkinit(kdcRequest.isPkinit());
+ clientRequest.setPreAuthenticated(kdcRequest.isPreAuthenticated());
+ clientRequest.setToken(kdcRequest.getToken());
+- clientRequest.setToken(kdcRequest.isToken());
++ clientRequest.setIsToken(kdcRequest.isToken());
+ KrbMessageType msgType = kdcRequest.getKdcReq().getMsgType();
+ clientRequest.setMsgType(msgType);
+ if (msgType == KrbMessageType.TGS_REQ) {
+@@ -244,11 +247,8 @@
+ clientRequest.setTgsName(tgsRequest.getTgsPrincipal());
+ clientRequest.setTgsKeyType(tgsRequest.getEncryptionType());
+ clientRequest.setTgsKey(tgsRequest.getTgsEntry().getKey(tgsRequest.getEncryptionType()));
+- clientRequest.setKdcRealm(tgsRequest.getKdcContext().getKdcRealm());
+ clientRequest.setTgsSessionKey(tgsRequest.getTgtSessionKey());
+ clientRequest.setTgsServerKey(tgsRequest.getServerKey());
+- clientRequest.setClientEntry(tgsRequest.getClientEntry());
+- clientRequest.setServerEntry(tgsRequest.getServerEntry());
+ }
+
+ return getKdcContext().getIdentityService()
+diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java
+index 3d52902..2d5a31c 100644
+--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java
++++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java
+@@ -21,7 +21,7 @@
+
+ import org.apache.kerby.kerberos.kerb.KrbException;
+ import org.apache.kerby.kerberos.kerb.admin.kadmin.local.LocalKadmin;
+-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
++import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
+ import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
+
diff --git a/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java b/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
index 97bc84e..f6dc62d 100644
--- a/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
+++ b/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
@@ -29,7 +29,7 @@
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.identity.BatchTrans;
import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
diff --git a/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java b/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
index 4f600c7..d5b090b 100644
--- a/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
+++ b/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
@@ -37,7 +37,7 @@
import org.apache.kerby.config.Config;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
diff --git a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java
index f1a16f4..b768fe5 100644
--- a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java
+++ b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentityComparator.java
@@ -21,7 +21,7 @@
import java.util.Comparator;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
/**
* Comparator for KrbIdentity
diff --git a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java
index 8a60143..8fb3a8c 100644
--- a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java
+++ b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/KrbIdentitySerializer.java
@@ -24,7 +24,7 @@
import org.apache.directory.mavibot.btree.serializer.IntSerializer;
import org.apache.directory.mavibot.btree.serializer.LongSerializer;
import org.apache.directory.mavibot.btree.serializer.StringSerializer;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
diff --git a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java
index ce1146d..9711a54 100644
--- a/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java
+++ b/kerby-backend/mavibot-backend/src/main/java/org/apache/kerby/MavibotBackend.java
@@ -30,7 +30,7 @@
import org.apache.directory.mavibot.btree.serializer.StringSerializer;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java
index 2acd32b..6248355 100644
--- a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java
+++ b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/KrbIdentitySerializerTest.java
@@ -19,7 +19,7 @@
*/
package org.apache.kerby;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
diff --git a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java
index 1270397..14cf8df 100644
--- a/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java
+++ b/kerby-backend/mavibot-backend/src/test/java/org/apache/kerby/MavibotBackendTest.java
@@ -24,7 +24,7 @@
import org.apache.kerby.kerberos.kerb.identity.backend.BackendTestBase;
import org.apache.kerby.kerberos.kerb.identity.backend.BackendTestUtil;
import org.apache.kerby.kerberos.kerb.identity.backend.IdentityBackend;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.rules.TemporaryFolder;
diff --git a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
index e7f50f5..6116317 100644
--- a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
+++ b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
@@ -22,7 +22,7 @@
import org.apache.kerby.config.Config;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
diff --git a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java
index 818b390..a0ca3b0 100644
--- a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java
+++ b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/AdminHelper.java
@@ -24,7 +24,7 @@
import org.apache.kerby.kerberos.kerb.admin.kadmin.KadminOption;
import org.apache.kerby.kerberos.kerb.keytab.Keytab;
import org.apache.kerby.kerberos.kerb.keytab.KeytabEntry;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
diff --git a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java
index 1796b80..fd8aa34 100644
--- a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java
+++ b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadmin.java
@@ -23,7 +23,7 @@
import org.apache.kerby.kerberos.kerb.admin.kadmin.Kadmin;
import org.apache.kerby.kerberos.kerb.identity.backend.BackendConfig;
import org.apache.kerby.kerberos.kerb.identity.backend.IdentityBackend;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.server.KdcConfig;
/**
diff --git a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java
index 158ed7e..1f55345 100644
--- a/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java
+++ b/kerby-kerb/kerb-admin/src/main/java/org/apache/kerby/kerberos/kerb/admin/kadmin/local/LocalKadminImpl.java
@@ -23,7 +23,7 @@
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.identity.backend.IdentityBackend;
import org.apache.kerby.kerberos.kerb.keytab.Keytab;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.server.KdcConfig;
import org.apache.kerby.kerberos.kerb.server.KdcSetting;
import org.apache.kerby.kerberos.kerb.server.KdcUtil;
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java
index 397d197..e155224 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KdcClientRequest.java
@@ -17,11 +17,10 @@
* under the License.
*
*/
-package org.apache.kerby.kerberos.kerb.type.kdc;
+package org.apache.kerby.kerberos.kerb.request;
import java.net.InetAddress;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.base.AuthToken;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
@@ -40,18 +39,18 @@
private PrincipalName tgsName;
private EncryptionType tgsKeyType;
private EncryptionKey tgsKey;
- private String kdcRealm;
private EncryptionKey tgsSessionKey;
private EncryptionKey tgsServerKey;
- private KrbIdentity clientEntry;
- private KrbIdentity serverEntry;
private boolean isPreAuthenticated;
private InetAddress clientAddress;
private EncryptionType encryptionType;
private EncryptionKey clientKey;
private PrincipalName clientPrincipal;
+ private KrbIdentity clientEntry;
private PrincipalName serverPrincipal;
+ private KrbIdentity serverEntry;
+ private String kdcRealm;
private AuthToken token;
private boolean isToken;
private boolean isPkinit;
@@ -197,7 +196,7 @@
return isToken;
}
- public void setToken(boolean isToken) {
+ public void setIsToken(boolean isToken) {
this.isToken = isToken;
}
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java
index d0ad908..0272a3e 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/KrbIdentity.java
@@ -6,27 +6,28 @@
* 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.
- *
+ * under the License.
+ *
*/
-package org.apache.kerby.kerberos.kerb.provider;
+package org.apache.kerby.kerberos.kerb.request;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
/**
*
@@ -36,34 +37,37 @@
*/
public class KrbIdentity {
/** the principal */
- private PrincipalName principal;
+ private PrincipalName principal;
/** the key version */
- private int keyVersion = 1;
+ private int keyVersion = 1;
/** KDC flags */
- private int kdcFlags = 0;
+ private int kdcFlags = 0;
/** flag to indicate if this identity was disabled */
- private boolean disabled;
+ private boolean disabled;
/** flag to indicate if this identity was locked */
- private boolean locked;
+ private boolean locked;
/** the expiration time of the identity, default set to never expire */
- private KerberosTime expireTime = KerberosTime.NEVER;
+ private KerberosTime expireTime = KerberosTime.NEVER;
/** the creation time of the identity */
- private KerberosTime createdTime = KerberosTime.now();
+ private KerberosTime createdTime = KerberosTime.now();
/** the keys associated with this identity */
- private Map<EncryptionType, EncryptionKey> keys =
- new HashMap<EncryptionType, EncryptionKey>();
+ private final Map<EncryptionType, EncryptionKey> keys = new HashMap<>();
public KrbIdentity(String principalName) {
this.principal = new PrincipalName(principalName);
}
+ public KrbIdentity(PrincipalName principalName) {
+ this.principal = principalName;
+ }
+
public String getPrincipalName() {
return principal.getName();
}
@@ -72,6 +76,10 @@
principal = new PrincipalName(newPrincipalName);
}
+ public void setPrincipalName(PrincipalName newPrincipalName) {
+ principal = newPrincipalName;
+ }
+
public PrincipalName getPrincipal() {
return principal;
}
@@ -117,7 +125,7 @@
}
public void addKeys(List<EncryptionKey> encKeys) {
- for (EncryptionKey key : encKeys) {
+ for (final EncryptionKey key : encKeys) {
keys.put(key.getKeyType(), key);
}
}
@@ -157,7 +165,7 @@
}
if (obj instanceof KrbIdentity) {
- KrbIdentity other = (KrbIdentity) obj;
+ final KrbIdentity other = (KrbIdentity) obj;
if (principal == null) {
if (other.principal != null) {
return false;
@@ -174,8 +182,7 @@
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((principal == null) ? 0
- : principal.hashCode());
+ result = prime * result + ((principal == null) ? 0 : principal.hashCode());
return result;
}
}
diff --git a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
index 47d62cc..f81e561 100644
--- a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
+++ b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
@@ -20,7 +20,7 @@
package org.apache.kerby.kerberos.kerb.identity.backend;
import org.apache.kerby.kerberos.kerb.KrbException;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
diff --git a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java
index 1d0c84d..6e5c298 100644
--- a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java
+++ b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTestUtil.java
@@ -21,7 +21,7 @@
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;
diff --git a/kerby-kerb/kerb-identity/pom.xml b/kerby-kerb/kerb-identity/pom.xml
index f178848..b91ba78 100644
--- a/kerby-kerb/kerb-identity/pom.xml
+++ b/kerby-kerb/kerb-identity/pom.xml
@@ -34,6 +34,11 @@
</dependency>
<dependency>
<groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
<artifactId>kerb-core</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java
index 0927dd0..d9f5ee4 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/BatchTrans.java
@@ -20,7 +20,7 @@
package org.apache.kerby.kerberos.kerb.identity;
import org.apache.kerby.kerberos.kerb.KrbException;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
/**
* Batch operations support to create/update/delete principal accounts
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java
index c08bb6a..b506fe1 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/CacheableIdentityService.java
@@ -22,9 +22,9 @@
import org.apache.kerby.config.Config;
import org.apache.kerby.config.Configured;
import org.apache.kerby.kerberos.kerb.KrbException;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationData;
-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
import org.apache.kerby.kerberos.kerb.type.ticket.EncTicketPart;
import java.util.LinkedHashMap;
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java
index 06cf735..4f91151 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/IdentityService.java
@@ -20,9 +20,9 @@
package org.apache.kerby.kerberos.kerb.identity;
import org.apache.kerby.kerberos.kerb.KrbException;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationData;
-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
import org.apache.kerby.kerberos.kerb.type.ticket.EncTicketPart;
/**
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
index 504aedf..753408a 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
@@ -25,14 +25,14 @@
import org.apache.kerby.config.Configured;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.identity.BatchTrans;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.ad.AdToken;
import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationData;
import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationDataEntry;
import org.apache.kerby.kerberos.kerb.type.ad.AuthorizationType;
import org.apache.kerby.kerberos.kerb.type.base.KrbToken;
import org.apache.kerby.kerberos.kerb.type.base.TokenFormat;
-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
import org.apache.kerby.kerberos.kerb.type.ticket.EncTicketPart;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
index a2c29c1..26a1b1f 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
@@ -20,7 +20,7 @@
package org.apache.kerby.kerberos.kerb.identity.backend;
import org.apache.kerby.kerberos.kerb.KrbException;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java
index d6b3dc5..dd8877d 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/AsRequest.java
@@ -22,7 +22,7 @@
import org.apache.kerby.kerberos.kerb.KrbErrorCode;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.server.KdcContext;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.base.EncryptedData;
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java
index 7b9a741..0ed3f0d 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/KdcRequest.java
@@ -28,7 +28,7 @@
import org.apache.kerby.kerberos.kerb.crypto.CheckSumHandler;
import org.apache.kerby.kerberos.kerb.crypto.EncryptionHandler;
import org.apache.kerby.kerberos.kerb.crypto.fast.FastUtil;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.server.KdcContext;
import org.apache.kerby.kerberos.kerb.server.KdcRecoverableException;
import org.apache.kerby.kerberos.kerb.server.preauth.KdcFastContext;
@@ -59,6 +59,7 @@
import org.apache.kerby.kerberos.kerb.type.kdc.KdcOptions;
import org.apache.kerby.kerberos.kerb.type.kdc.KdcRep;
import org.apache.kerby.kerberos.kerb.type.kdc.KdcReq;
+import org.apache.kerby.kerberos.kerb.type.kdc.KdcReqBody;
import org.apache.kerby.kerberos.kerb.type.pa.PaData;
import org.apache.kerby.kerberos.kerb.type.pa.PaDataEntry;
import org.apache.kerby.kerberos.kerb.type.pa.PaDataType;
@@ -757,15 +758,17 @@
*/
private void checkServer() throws KrbException {
KdcReq request = getKdcReq();
+ KdcReqBody body = request.getReqBody();
- PrincipalName principal = request.getReqBody().getSname();
- String serverRealm = request.getReqBody().getRealm();
+ PrincipalName principal = body.getSname();
+ String serverRealm = body.getRealm();
if (serverRealm == null || serverRealm.isEmpty()) {
LOG.info("Can't get the server realm from request, and try to get from kdcContext.");
serverRealm = kdcContext.getKdcRealm();
}
principal.setRealm(serverRealm);
-
+ setServerPrincipal(principal);
+
KrbIdentity serverEntry = getEntry(principal.getName());
if (serverEntry == null) {
LOG.error("Principal: " + principal.getName() + " is not known");
@@ -773,7 +776,7 @@
}
setServerEntry(serverEntry);
- for (EncryptionType encType : request.getReqBody().getEtypes()) {
+ for (EncryptionType encType : body.getEtypes()) {
if (serverEntry.getKeys().containsKey(encType)) {
EncryptionKey serverKey = serverEntry.getKeys().get(encType);
setServerKey(serverKey);
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java
index 993e269..6994958 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TgsRequest.java
@@ -24,7 +24,7 @@
import org.apache.kerby.kerberos.kerb.KrbErrorCode;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.server.KdcContext;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
import org.apache.kerby.kerberos.kerb.type.ap.ApOption;
diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java
index 30288b2..0bce64c 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/request/TicketIssuer.java
@@ -23,6 +23,7 @@
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
import org.apache.kerby.kerberos.kerb.crypto.EncryptionHandler;
+import org.apache.kerby.kerberos.kerb.request.KdcClientRequest;
import org.apache.kerby.kerberos.kerb.server.KdcConfig;
import org.apache.kerby.kerberos.kerb.server.KdcContext;
import org.apache.kerby.kerberos.kerb.type.KerberosTime;
@@ -37,7 +38,6 @@
import org.apache.kerby.kerberos.kerb.type.base.PrincipalName;
import org.apache.kerby.kerberos.kerb.type.base.TransitedEncoding;
import org.apache.kerby.kerberos.kerb.type.base.TransitedEncodingType;
-import org.apache.kerby.kerberos.kerb.type.kdc.KdcClientRequest;
import org.apache.kerby.kerberos.kerb.type.kdc.KdcOption;
import org.apache.kerby.kerberos.kerb.type.kdc.KdcOptions;
import org.apache.kerby.kerberos.kerb.type.kdc.KdcReq;
@@ -230,12 +230,15 @@
clientRequest.setClientAddress(kdcRequest.getClientAddress());
clientRequest.setClientKey(kdcRequest.getClientKey());
clientRequest.setClientPrincipal(kdcRequest.getClientPrincipal());
+ clientRequest.setClientEntry(kdcRequest.getClientEntry());
clientRequest.setServerPrincipal(kdcRequest.getServerPrincipal());
+ clientRequest.setServerEntry(kdcRequest.getServerEntry());
+ clientRequest.setKdcRealm(kdcRequest.getKdcContext().getKdcRealm());
clientRequest.setEncryptionType(kdcRequest.getEncryptionType());
clientRequest.setPkinit(kdcRequest.isPkinit());
clientRequest.setPreAuthenticated(kdcRequest.isPreAuthenticated());
clientRequest.setToken(kdcRequest.getToken());
- clientRequest.setToken(kdcRequest.isToken());
+ clientRequest.setIsToken(kdcRequest.isToken());
KrbMessageType msgType = kdcRequest.getKdcReq().getMsgType();
clientRequest.setMsgType(msgType);
if (msgType == KrbMessageType.TGS_REQ) {
@@ -244,11 +247,8 @@
clientRequest.setTgsName(tgsRequest.getTgsPrincipal());
clientRequest.setTgsKeyType(tgsRequest.getEncryptionType());
clientRequest.setTgsKey(tgsRequest.getTgsEntry().getKey(tgsRequest.getEncryptionType()));
- clientRequest.setKdcRealm(tgsRequest.getKdcContext().getKdcRealm());
clientRequest.setTgsSessionKey(tgsRequest.getTgtSessionKey());
clientRequest.setTgsServerKey(tgsRequest.getServerKey());
- clientRequest.setClientEntry(tgsRequest.getClientEntry());
- clientRequest.setServerEntry(tgsRequest.getServerEntry());
}
return getKdcContext().getIdentityService()
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java
index 3d52902..2d5a31c 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/GetPrincipalCommand.java
@@ -21,7 +21,7 @@
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.admin.kadmin.local.LocalKadmin;
-import org.apache.kerby.kerberos.kerb.provider.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.request.KrbIdentity;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionKey;
import org.apache.kerby.kerberos.kerb.type.base.EncryptionType;