KI-66 intermediate changes

git-svn-id: https://svn.apache.org/repos/asf/incubator/jsecurity/trunk@752240 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/NOTICE.txt b/NOTICE.txt
index fbe4f1e..1871a54 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -4,7 +4,7 @@
 This product includes software developed at

 The Apache Software Foundation (http://www.apache.org/).

 

-This product includes a org.jsecurity.util.SoftHashMap

+This product includes a org.ki.util.SoftHashMap

 implementation based on initial ideas from Dr. Hienz Kabutz's

 public posted version found here:

     http://www.javaspecialists.eu/archive/Issue015.html)

diff --git a/build.xml b/build.xml
index 7f6f620..a51da58 100644
--- a/build.xml
+++ b/build.xml
@@ -231,16 +231,16 @@
             </bottom>
             <classpath refid="all.libs"/>
             <!-- <packageset dir="${base.dir}/core/src">
-                <include name="org/jsecurity/**"/>
+                <include name="org/ki/**"/>
             </packageset>
             <packageset dir="${root.base.dir}/support/ehcache/src">
-                <include name="org/jsecurity/**"/>
+                <include name="org/ki/**"/>
             </packageset>
             <packageset dir="${root.base.dir}/support/spring/src">
-                <include name="org/jsecurity/**"/>
+                <include name="org/ki/**"/>
             </packageset>
             <packageset dir="${root.base.dir}/support/quartz/src">
-                <include name="org/jsecurity/**"/>
+                <include name="org/ki/**"/>
             </packageset> -->
             <link href="http://java.sun.com/j2se/1.5/docs/api"/>
             <link href="http://java.sun.com/j2ee/1.4/docs/api"/>
diff --git a/changes.txt b/changes.txt
index 487b375..dcc6c5a 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,9 +1,9 @@
 [0.9 Final]

 

-* org.jsecurity.spring.SpringWebConfiguration renamed to org.jsecurity.spring.SpringIniWebConfiguration

-* org.jsecurity.util.ThreadContext fixed to correctly work in child/spawned threads from a parent thread (sometimes surfaced in Tomcat environments)

-* org.jsecurity.web.servlet.FilterChainWrapper renamed to org.jsecurity.web.servlet.ProxiedFilterChain to maintain parallel naming conventions with ProxiedSession.

-* org.jsecurity.web.attr.CookieAttribute#onRetrieveValue would return deleted cookies (maxAge of 0) on Tomcat.  It now only returns a value if the cookie is non null and maxAge != 0 (-1 or positive only).

+* org.ki.spring.SpringWebConfiguration renamed to org.ki.spring.SpringIniWebConfiguration

+* org.ki.util.ThreadContext fixed to correctly work in child/spawned threads from a parent thread (sometimes surfaced in Tomcat environments)

+* org.ki.web.servlet.FilterChainWrapper renamed to org.ki.web.servlet.ProxiedFilterChain to maintain parallel naming conventions with ProxiedSession.

+* org.ki.web.attr.CookieAttribute#onRetrieveValue would return deleted cookies (maxAge of 0) on Tomcat.  It now only returns a value if the cookie is non null and maxAge != 0 (-1 or positive only).

 * Added *AnnotationHandler implementations and refactored the AuthorizingAnnotationMethodInterceptor implementations

   to delegate to internal AnnotationHandler instances for performing authorization checks based on annotations.  This was

   done to ensure Annotations could be processed independently of where they are declared (method, class, etc).

diff --git a/common.ant.xml b/common.ant.xml
index 74fb5b8..7004c96 100644
--- a/common.ant.xml
+++ b/common.ant.xml
@@ -131,7 +131,7 @@
                 <attribute name="Implementation-Version" value="${version}"/>
                 <attribute name="${project.name}-Version" value="${version}"/>
                 <!-- Allow use of this JAR as a Java agent -->
-                <!-- <attribute name="Premain-Class" value="org.jsecurity.instrument.InstrumentationSavingAgent" /> -->
+                <!-- <attribute name="Premain-Class" value="org.kiment.InstrumentationSavingAgent" /> -->
             </manifest>
         </jar>
     </target>
diff --git a/core/pom.xml b/core/pom.xml
index 83ca59c..c1da6ba 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>jsecurity-core</artifactId>
-    <name>Apache JSecurity :: Core</name>
+    <artifactId>ki-core</artifactId>
+    <name>Apache Ki :: Core</name>
     <packaging>jar</packaging>
 
     <build/>
diff --git a/core/src/org/jsecurity/session/mgt/package-info.java b/core/src/org/jsecurity/session/mgt/package-info.java
deleted file mode 100644
index a8f099c..0000000
--- a/core/src/org/jsecurity/session/mgt/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*

- * 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.

- */

-/**

- * {@link org.jsecurity.session.mgt.SessionManager SessionManager} components supporting enterprise session management.

- */

-package org.jsecurity.session.mgt;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/JSecurityException.java b/core/src/org/ki/JSecurityException.java
similarity index 98%
rename from core/src/org/jsecurity/JSecurityException.java
rename to core/src/org/ki/JSecurityException.java
index 1d93b2f..41de6d9 100644
--- a/core/src/org/jsecurity/JSecurityException.java
+++ b/core/src/org/ki/JSecurityException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity;
+package org.ki;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/SecurityUtils.java b/core/src/org/ki/SecurityUtils.java
similarity index 92%
rename from core/src/org/jsecurity/SecurityUtils.java
rename to core/src/org/ki/SecurityUtils.java
index 7ffebc2..3bbbe2b 100644
--- a/core/src/org/jsecurity/SecurityUtils.java
+++ b/core/src/org/ki/SecurityUtils.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity;
+package org.ki;
 
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.ThreadContext;
+import org.ki.mgt.SecurityManager;
+import org.ki.subject.Subject;
+import org.ki.util.ThreadContext;
 
 /**
  * Accesses the currently accessible <tt>Subject</tt> for the calling code depending on runtime environment.
@@ -45,7 +45,7 @@
      * this method in the future depending on requirements/updates without affecting your code that uses it.
      * <p/>
      * <b>Implementation Note:</b> This implementation expects a
-     * {@link org.jsecurity.util.ThreadContext#getSecurityManager() thread-bound} or
+     * {@link org.ki.util.ThreadContext#getSecurityManager() thread-bound} or
      * {@link #setSecurityManager static VM singleton} {@code SecurityManager} to be accessible to this method at
      * runtime.  If not, an {@link IllegalStateException IllegalStateException} is thrown, indicating an incorrect
      * application configuration.
@@ -55,7 +55,7 @@
      * @throws IllegalStateException if no {@link SecurityManager SecurityManager} instance is available to this method
      * at runtime, which is considered an invalid application configuration - a Subject should _always_ be available
      * to the caller.  If you encounter an exception when calling this method, ensure that the application's
-     * {@code SecurityManager} is {@link org.jsecurity.util.ThreadContext#getSecurityManager() thread-bound} or a
+     * {@code SecurityManager} is {@link org.ki.util.ThreadContext#getSecurityManager() thread-bound} or a
      * {@link #setSecurityManager static VM singleton} prior to calling this method.
      */
     public static Subject getSubject() {
@@ -102,7 +102,7 @@
      *
      * <p>For example, in these environments, this will work:</p>
      *
-     * <code>DefaultSecurityManager securityManager = new {@link org.jsecurity.mgt.DefaultSecurityManager DefaultSecurityManager}();<br/>
+     * <code>DefaultSecurityManager securityManager = new {@link org.ki.mgt.DefaultSecurityManager DefaultSecurityManager}();<br/>
      * securityManager.setRealms( ... ); //one or more Realms<br/>
      * <b>SecurityUtils.setSecurityManager( securityManager );</b></code>
      *
@@ -110,7 +110,7 @@
      *
      * <p><code>Subject currentUser = SecurityUtils.getSubject()</code></p>
      *
-     * <p>by calling the VM static {@link org.jsecurity.mgt.SecurityManager#getSubject() securityManager.getSubject()}
+     * <p>by calling the VM static {@link org.ki.mgt.SecurityManager#getSubject() securityManager.getSubject()}
      * method.  Note that the underlying injected SecurityManager still needs to know how to acquire a Subject
      * instance for the calling code, which might mean from static memory, or a config file, or other
      * environment-specific means.</p>
diff --git a/core/src/org/jsecurity/aop/AnnotationHandler.java b/core/src/org/ki/aop/AnnotationHandler.java
similarity index 86%
rename from core/src/org/jsecurity/aop/AnnotationHandler.java
rename to core/src/org/ki/aop/AnnotationHandler.java
index 978c27e..152db42 100644
--- a/core/src/org/jsecurity/aop/AnnotationHandler.java
+++ b/core/src/org/ki/aop/AnnotationHandler.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.aop;
+package org.ki.aop;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.subject.Subject;
 
 import java.lang.annotation.Annotation;
 
@@ -47,11 +47,11 @@
     }
 
     /**
-     * Returns the {@link org.jsecurity.subject.Subject Subject} associated with the currently-executing code.
+     * Returns the {@link org.ki.subject.Subject Subject} associated with the currently-executing code.
      * <p/>
-     * This default implementation merely calls <code>{@link org.jsecurity.SecurityUtils#getSubject SecurityUtils.getSubject()}</code>.
+     * This default implementation merely calls <code>{@link org.ki.SecurityUtils#getSubject SecurityUtils.getSubject()}</code>.
      *
-     * @return the {@link org.jsecurity.subject.Subject Subject} associated with the currently-executing code.
+     * @return the {@link org.ki.subject.Subject Subject} associated with the currently-executing code.
      */
     protected Subject getSubject() {
         return SecurityUtils.getSubject();
diff --git a/core/src/org/jsecurity/aop/AnnotationMethodInterceptor.java b/core/src/org/ki/aop/AnnotationMethodInterceptor.java
similarity index 98%
rename from core/src/org/jsecurity/aop/AnnotationMethodInterceptor.java
rename to core/src/org/ki/aop/AnnotationMethodInterceptor.java
index 0acaeea..8516460 100644
--- a/core/src/org/jsecurity/aop/AnnotationMethodInterceptor.java
+++ b/core/src/org/ki/aop/AnnotationMethodInterceptor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.aop;
+package org.ki.aop;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
diff --git a/core/src/org/jsecurity/aop/MethodInterceptor.java b/core/src/org/ki/aop/MethodInterceptor.java
similarity index 98%
rename from core/src/org/jsecurity/aop/MethodInterceptor.java
rename to core/src/org/ki/aop/MethodInterceptor.java
index 4b3a028..c2fc17f 100644
--- a/core/src/org/jsecurity/aop/MethodInterceptor.java
+++ b/core/src/org/ki/aop/MethodInterceptor.java
@@ -35,7 +35,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.aop;
+package org.ki.aop;
 
 /**
  * A <tt>MethodInterceptor</tt> intercepts a <tt>MethodInvocation</tt> to perform before or after logic (aka 'advice').
diff --git a/core/src/org/jsecurity/aop/MethodInterceptorSupport.java b/core/src/org/ki/aop/MethodInterceptorSupport.java
similarity index 95%
rename from core/src/org/jsecurity/aop/MethodInterceptorSupport.java
rename to core/src/org/ki/aop/MethodInterceptorSupport.java
index 9ca97a7..980fe15 100644
--- a/core/src/org/jsecurity/aop/MethodInterceptorSupport.java
+++ b/core/src/org/ki/aop/MethodInterceptorSupport.java
@@ -35,10 +35,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.aop;
+package org.ki.aop;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.subject.Subject;
 
 /**
  * This class is an abstraction of AOP method interceptor behavior specific to JSecurity that
diff --git a/core/src/org/jsecurity/aop/MethodInvocation.java b/core/src/org/ki/aop/MethodInvocation.java
similarity index 98%
rename from core/src/org/jsecurity/aop/MethodInvocation.java
rename to core/src/org/ki/aop/MethodInvocation.java
index e358f6d..752ac79 100644
--- a/core/src/org/jsecurity/aop/MethodInvocation.java
+++ b/core/src/org/ki/aop/MethodInvocation.java
@@ -35,7 +35,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.aop;
+package org.ki.aop;
 
 import java.lang.reflect.Method;
 
diff --git a/core/src/org/jsecurity/aop/package-info.java b/core/src/org/ki/aop/package-info.java
similarity index 97%
rename from core/src/org/jsecurity/aop/package-info.java
rename to core/src/org/ki/aop/package-info.java
index bdf70e7..14476cf 100644
--- a/core/src/org/jsecurity/aop/package-info.java
+++ b/core/src/org/ki/aop/package-info.java
@@ -23,4 +23,4 @@
  * useful for any AOP environment and/or function. Feature-dependent AOP classes (e.g. authorization,

  * authentication, etc) will use these classes as their base in their respective packages.

  */

-package org.jsecurity.aop;
\ No newline at end of file
+package org.ki.aop;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authc/AbstractAuthenticator.java b/core/src/org/ki/authc/AbstractAuthenticator.java
similarity index 91%
rename from core/src/org/jsecurity/authc/AbstractAuthenticator.java
rename to core/src/org/ki/authc/AbstractAuthenticator.java
index f2f1810..11dd40d 100644
--- a/core/src/org/jsecurity/authc/AbstractAuthenticator.java
+++ b/core/src/org/ki/authc/AbstractAuthenticator.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.subject.PrincipalCollection;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -31,7 +31,7 @@
  *
  * <p>This class delegates the actual authentication attempt to subclasses but supports notification for
  * successful and failed logins as well as logouts. Notification is sent to one or more registered
- * {@link org.jsecurity.authc.AuthenticationListener AuthenticationListener}s to allow for custom processing logic
+ * {@link org.ki.authc.AuthenticationListener AuthenticationListener}s to allow for custom processing logic
  * when these conditions occur.
  *
  * <p>In most cases, the only thing a subclass needs to do (via its {@link #doAuthenticate} implementation)
@@ -89,10 +89,10 @@
     |               M E T H O D S               |
     ============================================*/
     /**
-     * Notifies any registered {@link org.jsecurity.authc.AuthenticationListener AuthenticationListener}s that
+     * Notifies any registered {@link org.ki.authc.AuthenticationListener AuthenticationListener}s that
      * authentication was successful for the specified <code>token</code> which resulted in the specified
      * <code>info</code>.  This implementation merely iterates over the internal <code>listeners</code> collection and
-     * calls {@link org.jsecurity.authc.AuthenticationListener#onSuccess(AuthenticationToken, AuthenticationInfo) onSuccess}
+     * calls {@link org.ki.authc.AuthenticationListener#onSuccess(AuthenticationToken, AuthenticationInfo) onSuccess}
      * for each.
      * @param token the submitted <code>AuthenticationToken</code> that resulted in a successful authentication.
      * @param info the returned <code>AuthenticationInfo</code> resulting from the successful authentication.
@@ -104,11 +104,11 @@
     }
 
     /**
-     * Notifies any registered {@link org.jsecurity.authc.AuthenticationListener AuthenticationListener}s that
+     * Notifies any registered {@link org.ki.authc.AuthenticationListener AuthenticationListener}s that
      * authentication failed for the
      * specified <code>token</code> which resulted in the specified <code>ae</code> exception.  This implementation merely
      * iterates over the internal <code>listeners</code> collection and calls
-     * {@link org.jsecurity.authc.AuthenticationListener#onFailure(AuthenticationToken, AuthenticationException) onFailure}
+     * {@link org.ki.authc.AuthenticationListener#onFailure(AuthenticationToken, AuthenticationException) onFailure}
      * for each.
      * @param token the submitted <code>AuthenticationToken</code> that resulted in a failed authentication.
      * @param ae the resulting <code>AuthenticationException<code> that caused the authentication to fail.
@@ -120,10 +120,10 @@
     }
 
     /**
-     * Notifies any registered {@link org.jsecurity.authc.AuthenticationListener AuthenticationListener}s that a
+     * Notifies any registered {@link org.ki.authc.AuthenticationListener AuthenticationListener}s that a
      * <code>Subject</code> has logged-out.  This implementation merely
      * iterates over the internal <code>listeners</code> collection and calls
-     * {@link org.jsecurity.authc.AuthenticationListener#onLogout(org.jsecurity.subject.PrincipalCollection) onLogout}
+     * {@link org.ki.authc.AuthenticationListener#onLogout(org.ki.subject.PrincipalCollection) onLogout}
      * for each.
      * @param principals the identifying principals of the <code>Subject</code>/account logging out.
      */
@@ -135,7 +135,7 @@
 
     /**
      * This implementation merely calls
-     * {@link #notifyLogout(org.jsecurity.subject.PrincipalCollection) notifyLogout} to allow any registered listeners
+     * {@link #notifyLogout(org.ki.subject.PrincipalCollection) notifyLogout} to allow any registered listeners
      * to react to the logout.
      * @param principals the identifying principals of the <code>Subject</code>/account logging out.
      */
diff --git a/core/src/org/jsecurity/authc/Account.java b/core/src/org/ki/authc/Account.java
similarity index 96%
rename from core/src/org/jsecurity/authc/Account.java
rename to core/src/org/ki/authc/Account.java
index 77dd477..68a0e28 100644
--- a/core/src/org/jsecurity/authc/Account.java
+++ b/core/src/org/ki/authc/Account.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.authz.AuthorizationInfo;
+import org.ki.authz.AuthorizationInfo;
 
 /**
  * An <tt>Account</tt> is a convenience interface that extends both {@link AuthenticationInfo} and
diff --git a/core/src/org/jsecurity/authc/AccountException.java b/core/src/org/ki/authc/AccountException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/AccountException.java
rename to core/src/org/ki/authc/AccountException.java
index 68a3cce..f78b462 100644
--- a/core/src/org/jsecurity/authc/AccountException.java
+++ b/core/src/org/ki/authc/AccountException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Exception thrown due to a problem with the account
diff --git a/core/src/org/jsecurity/authc/AuthenticationException.java b/core/src/org/ki/authc/AuthenticationException.java
similarity index 96%
rename from core/src/org/jsecurity/authc/AuthenticationException.java
rename to core/src/org/ki/authc/AuthenticationException.java
index 68aa3f8..2f5d9b3 100644
--- a/core/src/org/jsecurity/authc/AuthenticationException.java
+++ b/core/src/org/ki/authc/AuthenticationException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * General exception thrown due to an error during the Authentication process.
diff --git a/core/src/org/jsecurity/authc/AuthenticationInfo.java b/core/src/org/ki/authc/AuthenticationInfo.java
similarity index 92%
rename from core/src/org/jsecurity/authc/AuthenticationInfo.java
rename to core/src/org/ki/authc/AuthenticationInfo.java
index ab2e3b0..4f1aa46 100644
--- a/core/src/org/jsecurity/authc/AuthenticationInfo.java
+++ b/core/src/org/ki/authc/AuthenticationInfo.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.subject.PrincipalCollection;
 
 import java.io.Serializable;
 
@@ -35,10 +35,10 @@
  * <p/>
  * Because the act of authentication (log-in) is orthoganal to authorization (access control), this interface is
  * intended to represent only the account data needed by JSecurity during an authentication attempt.  JSecurity also
- * has a parallel {@link org.jsecurity.authz.AuthorizationInfo AuthorizationInfo} interface for use during the
+ * has a parallel {@link org.ki.authz.AuthorizationInfo AuthorizationInfo} interface for use during the
  * authorization process that references access control data such as roles and permissions.
  * <p/>
- * But because many if not most {@link org.jsecurity.realm.Realm Realm}s store both sets of data for a Subject, it might be
+ * But because many if not most {@link org.ki.realm.Realm Realm}s store both sets of data for a Subject, it might be
  * convenient for a <code>Realm</code> implementation to utilize an implementation of the {@link Account Account}
  * interface instead, which is a convenience interface that combines both <code>AuthenticationInfo</code> and
  * <code>AuthorizationInfo</code>.  Whether you choose to implement these two interfaces separately or implement the one
@@ -53,7 +53,7 @@
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see org.jsecurity.authz.AuthorizationInfo AuthorizationInfo
+ * @see org.ki.authz.AuthorizationInfo AuthorizationInfo
  * @see Account
  * @since 0.9
  */
diff --git a/core/src/org/jsecurity/authc/AuthenticationListener.java b/core/src/org/ki/authc/AuthenticationListener.java
similarity index 92%
rename from core/src/org/jsecurity/authc/AuthenticationListener.java
rename to core/src/org/ki/authc/AuthenticationListener.java
index b1f96aa..695ae89 100644
--- a/core/src/org/jsecurity/authc/AuthenticationListener.java
+++ b/core/src/org/ki/authc/AuthenticationListener.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authc;

+package org.ki.authc;

 

-import org.jsecurity.subject.PrincipalCollection;

+import org.ki.subject.PrincipalCollection;

 

 /**

  * An <code>AuthenticationListener</code> listens for notifications while

- * {@link org.jsecurity.subject.Subject Subject}s authenticate with the system.

+ * {@link org.ki.subject.Subject Subject}s authenticate with the system.

  *

  * @author Les Hazlewood

  * @since 0.9

diff --git a/core/src/org/jsecurity/authc/AuthenticationListenerRegistrar.java b/core/src/org/ki/authc/AuthenticationListenerRegistrar.java
similarity index 98%
rename from core/src/org/jsecurity/authc/AuthenticationListenerRegistrar.java
rename to core/src/org/ki/authc/AuthenticationListenerRegistrar.java
index 9bb8a83..ee02d62 100644
--- a/core/src/org/jsecurity/authc/AuthenticationListenerRegistrar.java
+++ b/core/src/org/ki/authc/AuthenticationListenerRegistrar.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authc;

+package org.ki.authc;

 

 import java.util.Collection;

 

diff --git a/core/src/org/jsecurity/authc/AuthenticationToken.java b/core/src/org/ki/authc/AuthenticationToken.java
similarity index 99%
rename from core/src/org/jsecurity/authc/AuthenticationToken.java
rename to core/src/org/ki/authc/AuthenticationToken.java
index ef0f0e1..e511c4f 100644
--- a/core/src/org/jsecurity/authc/AuthenticationToken.java
+++ b/core/src/org/ki/authc/AuthenticationToken.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/authc/Authenticator.java b/core/src/org/ki/authc/Authenticator.java
similarity index 94%
rename from core/src/org/jsecurity/authc/Authenticator.java
rename to core/src/org/ki/authc/Authenticator.java
index ca9e38d..031b018 100644
--- a/core/src/org/jsecurity/authc/Authenticator.java
+++ b/core/src/org/ki/authc/Authenticator.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * An Authenticator is responsible for authenticating accounts in an application.  It
@@ -25,7 +25,7 @@
  * Although not a requirement, there is usually a single 'master' Authenticator configured for
  * an application.  Enabling Pluggable Authentication Module (PAM) behavior
  * (Two Phase Commit, etc.) is usually achieved by the single {@code Authenticator} coordinating
- * and interacting with an application-configured set of {@link org.jsecurity.realm.Realm Realm}s.
+ * and interacting with an application-configured set of {@link org.ki.realm.Realm Realm}s.
  * <p/>
  * Note that most JSecurity users will not interact with an {@code Authenticator} instance directly.
  * JSecurity's default architecture is based on an overall {@code SecurityManager} which typically
@@ -33,9 +33,9 @@
  *
  * @author Les Hazlewood
  * @author Jeremy Haile
- * @see org.jsecurity.mgt.SecurityManager
+ * @see org.ki.mgt.SecurityManager
  * @see AbstractAuthenticator AbstractAuthenticator
- * @see org.jsecurity.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator
+ * @see org.ki.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator
  * @since 0.1
  */
 public interface Authenticator {
diff --git a/core/src/org/jsecurity/authc/ConcurrentAccessException.java b/core/src/org/ki/authc/ConcurrentAccessException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/ConcurrentAccessException.java
rename to core/src/org/ki/authc/ConcurrentAccessException.java
index 8fb5014..1a17623 100644
--- a/core/src/org/jsecurity/authc/ConcurrentAccessException.java
+++ b/core/src/org/ki/authc/ConcurrentAccessException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Thrown when an authentication attempt has been received for an account that has already been
diff --git a/core/src/org/jsecurity/authc/CredentialsException.java b/core/src/org/ki/authc/CredentialsException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/CredentialsException.java
rename to core/src/org/ki/authc/CredentialsException.java
index dd37d78..771b203 100644
--- a/core/src/org/jsecurity/authc/CredentialsException.java
+++ b/core/src/org/ki/authc/CredentialsException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Exception thrown due to a problem with the credential(s) submitted for an
diff --git a/core/src/org/jsecurity/authc/DisabledAccountException.java b/core/src/org/ki/authc/DisabledAccountException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/DisabledAccountException.java
rename to core/src/org/ki/authc/DisabledAccountException.java
index 4a693c5..74ced80 100644
--- a/core/src/org/jsecurity/authc/DisabledAccountException.java
+++ b/core/src/org/ki/authc/DisabledAccountException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Thrown when attempting to authenticate and the corresponding account has been disabled for
diff --git a/core/src/org/jsecurity/authc/ExcessiveAttemptsException.java b/core/src/org/ki/authc/ExcessiveAttemptsException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/ExcessiveAttemptsException.java
rename to core/src/org/ki/authc/ExcessiveAttemptsException.java
index 62865bc..7b119bf 100644
--- a/core/src/org/jsecurity/authc/ExcessiveAttemptsException.java
+++ b/core/src/org/ki/authc/ExcessiveAttemptsException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Thrown when a system is configured to only allow a certain number of authentication attempts
diff --git a/core/src/org/jsecurity/authc/ExpiredCredentialsException.java b/core/src/org/ki/authc/ExpiredCredentialsException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/ExpiredCredentialsException.java
rename to core/src/org/ki/authc/ExpiredCredentialsException.java
index f4fd676..3424e68 100644
--- a/core/src/org/jsecurity/authc/ExpiredCredentialsException.java
+++ b/core/src/org/ki/authc/ExpiredCredentialsException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Thrown during the authentication process when the system determines the submitted credential(s)
diff --git a/core/src/org/jsecurity/authc/IncorrectCredentialsException.java b/core/src/org/ki/authc/IncorrectCredentialsException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/IncorrectCredentialsException.java
rename to core/src/org/ki/authc/IncorrectCredentialsException.java
index b189114..2c9cdfd 100644
--- a/core/src/org/jsecurity/authc/IncorrectCredentialsException.java
+++ b/core/src/org/ki/authc/IncorrectCredentialsException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Thrown when attempting to authenticate with credential(s) that do not match the actual
diff --git a/core/src/org/jsecurity/authc/InetAuthenticationToken.java b/core/src/org/ki/authc/InetAuthenticationToken.java
similarity index 97%
rename from core/src/org/jsecurity/authc/InetAuthenticationToken.java
rename to core/src/org/ki/authc/InetAuthenticationToken.java
index 4677162..9a5930f 100644
--- a/core/src/org/jsecurity/authc/InetAuthenticationToken.java
+++ b/core/src/org/ki/authc/InetAuthenticationToken.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 import java.net.InetAddress;
 
diff --git a/core/src/org/jsecurity/authc/LockedAccountException.java b/core/src/org/ki/authc/LockedAccountException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/LockedAccountException.java
rename to core/src/org/ki/authc/LockedAccountException.java
index 3a14a37..d538337 100644
--- a/core/src/org/jsecurity/authc/LockedAccountException.java
+++ b/core/src/org/ki/authc/LockedAccountException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * A special kind of <tt>DisabledAccountException</tt>, this exception is thrown when attempting
diff --git a/core/src/org/jsecurity/authc/LogoutAware.java b/core/src/org/ki/authc/LogoutAware.java
similarity index 94%
rename from core/src/org/jsecurity/authc/LogoutAware.java
rename to core/src/org/ki/authc/LogoutAware.java
index 3ccec2f..5b6b7cb 100644
--- a/core/src/org/jsecurity/authc/LogoutAware.java
+++ b/core/src/org/ki/authc/LogoutAware.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.subject.PrincipalCollection;
 
 /**
  * An SPI interface allowing cleanup logic to be executed during logout of a previously authenticated Subject/user.
diff --git a/core/src/org/jsecurity/authc/MergableAuthenticationInfo.java b/core/src/org/ki/authc/MergableAuthenticationInfo.java
similarity index 98%
rename from core/src/org/jsecurity/authc/MergableAuthenticationInfo.java
rename to core/src/org/ki/authc/MergableAuthenticationInfo.java
index 220f83c..07d4981 100644
--- a/core/src/org/jsecurity/authc/MergableAuthenticationInfo.java
+++ b/core/src/org/ki/authc/MergableAuthenticationInfo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * <p>An extension of the {@link AuthenticationInfo} interface to be implemented by
diff --git a/core/src/org/jsecurity/authc/RememberMeAuthenticationToken.java b/core/src/org/ki/authc/RememberMeAuthenticationToken.java
similarity index 98%
rename from core/src/org/jsecurity/authc/RememberMeAuthenticationToken.java
rename to core/src/org/ki/authc/RememberMeAuthenticationToken.java
index df71f93..3ec5d5d 100644
--- a/core/src/org/jsecurity/authc/RememberMeAuthenticationToken.java
+++ b/core/src/org/ki/authc/RememberMeAuthenticationToken.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * An <tt>AuthenticationToken</tt> that indicates if the user wishes their identity to be remembered across sessions.
diff --git a/core/src/org/jsecurity/authc/SimpleAccount.java b/core/src/org/ki/authc/SimpleAccount.java
similarity index 97%
rename from core/src/org/jsecurity/authc/SimpleAccount.java
rename to core/src/org/ki/authc/SimpleAccount.java
index a9d2202..98ea56d 100644
--- a/core/src/org/jsecurity/authc/SimpleAccount.java
+++ b/core/src/org/ki/authc/SimpleAccount.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.authz.Permission;
-import org.jsecurity.authz.SimpleAuthorizationInfo;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.SimplePrincipalCollection;
+import org.ki.authz.Permission;
+import org.ki.authz.SimpleAuthorizationInfo;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.SimplePrincipalCollection;
 
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.Set;
 
 /**
- * Simple implementation of the {@link org.jsecurity.authc.Account} interface that
+ * Simple implementation of the {@link org.ki.authc.Account} interface that
  * contains principal and credential and authorization information (roles and permissions) as instance variables and
  * exposes them via getters and setters using standard JavaBean notation.
  *
@@ -53,13 +53,13 @@
 
     /**
      * Indicates this account is locked.  This isn't honored by all <tt>Realms</tt> but is honored by
-     * {@link org.jsecurity.realm.SimpleAccountRealm}.
+     * {@link org.ki.realm.SimpleAccountRealm}.
      */
     private boolean locked;
 
     /**
      * Indicates credentials on this account are expired.  This isn't honored by all <tt>Realms</tt> but is honored by
-     * {@link org.jsecurity.realm.SimpleAccountRealm}.
+     * {@link org.ki.realm.SimpleAccountRealm}.
      */
     private boolean credentialsExpired;
 
diff --git a/core/src/org/jsecurity/authc/SimpleAuthenticationInfo.java b/core/src/org/ki/authc/SimpleAuthenticationInfo.java
similarity index 96%
rename from core/src/org/jsecurity/authc/SimpleAuthenticationInfo.java
rename to core/src/org/ki/authc/SimpleAuthenticationInfo.java
index 9106ab7..a10db1f 100644
--- a/core/src/org/jsecurity/authc/SimpleAuthenticationInfo.java
+++ b/core/src/org/ki/authc/SimpleAuthenticationInfo.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.subject.MutablePrincipalCollection;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.SimplePrincipalCollection;
+import org.ki.subject.MutablePrincipalCollection;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.SimplePrincipalCollection;
 
 import java.util.Collection;
 import java.util.HashSet;
@@ -30,7 +30,7 @@
  * Simple implementation of the {@link MergableAuthenticationInfo} interface that holds the principals and
  * credentials.
  *
- * @see org.jsecurity.realm.AuthenticatingRealm
+ * @see org.ki.realm.AuthenticatingRealm
  * @since 0.9
  * @author Jeremy Haile
  * @author Les Hazlewood
diff --git a/core/src/org/jsecurity/authc/UnknownAccountException.java b/core/src/org/ki/authc/UnknownAccountException.java
similarity index 98%
rename from core/src/org/jsecurity/authc/UnknownAccountException.java
rename to core/src/org/ki/authc/UnknownAccountException.java
index 35869bb..da65141 100644
--- a/core/src/org/jsecurity/authc/UnknownAccountException.java
+++ b/core/src/org/ki/authc/UnknownAccountException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 /**
  * Thrown when attempting to authenticate with a principal that doesn't exist in the system (e.g.
diff --git a/core/src/org/jsecurity/authc/UsernamePasswordToken.java b/core/src/org/ki/authc/UsernamePasswordToken.java
similarity index 98%
rename from core/src/org/jsecurity/authc/UsernamePasswordToken.java
rename to core/src/org/ki/authc/UsernamePasswordToken.java
index 20bb241..2bf286c 100644
--- a/core/src/org/jsecurity/authc/UsernamePasswordToken.java
+++ b/core/src/org/ki/authc/UsernamePasswordToken.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
 import java.net.InetAddress;
 
@@ -254,7 +254,7 @@
      * Simply returns {@link #getUsername() getUsername()}.
      *
      * @return the {@link #getUsername() username}.
-     * @see org.jsecurity.authc.AuthenticationToken#getPrincipal()
+     * @see org.ki.authc.AuthenticationToken#getPrincipal()
      */
     public Object getPrincipal() {
         return getUsername();
@@ -264,7 +264,7 @@
      * Returns the {@link #getPassword() password} char array.
      *
      * @return the {@link #getPassword() password} char array.
-     * @see org.jsecurity.authc.AuthenticationToken#getCredentials()
+     * @see org.ki.authc.AuthenticationToken#getCredentials()
      */
     public Object getCredentials() {
         return getPassword();
diff --git a/core/src/org/jsecurity/authc/credential/AllowAllCredentialsMatcher.java b/core/src/org/ki/authc/credential/AllowAllCredentialsMatcher.java
similarity index 89%
rename from core/src/org/jsecurity/authc/credential/AllowAllCredentialsMatcher.java
rename to core/src/org/ki/authc/credential/AllowAllCredentialsMatcher.java
index 2b2c3ed..51371db 100644
--- a/core/src/org/jsecurity/authc/credential/AllowAllCredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/AllowAllCredentialsMatcher.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authc.credential;

+package org.ki.authc.credential;

 

-import org.jsecurity.authc.AuthenticationInfo;

-import org.jsecurity.authc.AuthenticationToken;

+import org.ki.authc.AuthenticationInfo;

+import org.ki.authc.AuthenticationToken;

 

 /**

  * A credentials matcher that always returns <tt>true</tt> when matching credentials no matter what arguments

  * are passed in.  This can be used for testing or when credentials are implicitly trusted for a particular

- * {@link org.jsecurity.realm.Realm Realm}.

+ * {@link org.ki.realm.Realm Realm}.

  *

  * @author Jeremy Haile

  * @author Les Hazlewood

diff --git a/core/src/org/jsecurity/authc/credential/CredentialsMatcher.java b/core/src/org/ki/authc/credential/CredentialsMatcher.java
similarity index 84%
rename from core/src/org/jsecurity/authc/credential/CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/CredentialsMatcher.java
index 9eb5486..fb497a3 100644
--- a/core/src/org/jsecurity/authc/credential/CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/CredentialsMatcher.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
 
 /**
  * Interface implemented by classes that can determine if an AuthenticationToken's provided
  * credentials matches a corresponding account's credentials stored in the system.
  *
  * <p>Simple direct comparisons are handled well by the
- * {@link org.jsecurity.authc.credential.SimpleCredentialsMatcher SimpleCredentialsMatcher}.  If you
+ * {@link org.ki.authc.credential.SimpleCredentialsMatcher SimpleCredentialsMatcher}.  If you
  * hash user's credentials before storing them in a realm (a common practice), look at the
- * {@link org.jsecurity.authc.credential.HashedCredentialsMatcher HashedCredentialsMatcher} implementations,
+ * {@link org.ki.authc.credential.HashedCredentialsMatcher HashedCredentialsMatcher} implementations,
  * as they support this scenario.
  *
  * @author Jeremy Haile
diff --git a/core/src/org/jsecurity/authc/credential/HashedCredentialsMatcher.java b/core/src/org/ki/authc/credential/HashedCredentialsMatcher.java
similarity index 94%
rename from core/src/org/jsecurity/authc/credential/HashedCredentialsMatcher.java
rename to core/src/org/ki/authc/credential/HashedCredentialsMatcher.java
index c9d1209..8109cfe 100644
--- a/core/src/org/jsecurity/authc/credential/HashedCredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/HashedCredentialsMatcher.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
 
 /**
  * A <tt>HashedCredentialMatcher</tt> provides support for hashing of supplied <tt>AuthenticationToken</tt> credentials
@@ -49,7 +49,7 @@
  * &quot;Why add salt?&quot; and 6 "Hardening against the attacker's attack").
  *
  * <p>We should also note here that all of JSecurity's Hash implementations (for example,
- * {@link org.jsecurity.crypto.hash.Md5Hash Md5Hash}, {@link org.jsecurity.crypto.hash.Sha1Hash Sha1Hash}, etc)
+ * {@link org.ki.crypto.hash.Md5Hash Md5Hash}, {@link org.ki.crypto.hash.Sha1Hash Sha1Hash}, etc)
  * support salting and multiple hash iterations via overloaded constructors.</p>
  *
  * <h4>Salting</h4>
@@ -76,9 +76,9 @@
  * supporting <code>CredentialsMatcher</code> implementations.</p>
  *
  * @author Les Hazlewood
- * @see org.jsecurity.crypto.hash.Md5Hash
- * @see org.jsecurity.crypto.hash.Sha1Hash
- * @see org.jsecurity.crypto.hash.Sha256Hash
+ * @see org.ki.crypto.hash.Md5Hash
+ * @see org.ki.crypto.hash.Sha1Hash
+ * @see org.ki.crypto.hash.Sha256Hash
  * @since 0.9
  */
 public abstract class HashedCredentialsMatcher extends SimpleCredentialsMatcher {
@@ -263,7 +263,7 @@
 
     /**
      * Returns a new, <em>uninitialized</em> instance, without its byte array set.  Used as a utility method in the
-     * {@link SimpleCredentialsMatcher#getCredentials(org.jsecurity.authc.AuthenticationInfo) getCredentials(AuthenticationInfo)} implementation.
+     * {@link SimpleCredentialsMatcher#getCredentials(org.ki.authc.AuthenticationInfo) getCredentials(AuthenticationInfo)} implementation.
      *
      * @return a new, <em>uninitialized</em> instance, without its byte array set.
      */
diff --git a/core/src/org/jsecurity/authc/credential/Md2CredentialsMatcher.java b/core/src/org/ki/authc/credential/Md2CredentialsMatcher.java
similarity index 92%
rename from core/src/org/jsecurity/authc/credential/Md2CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/Md2CredentialsMatcher.java
index f12f629..88f0d18 100644
--- a/core/src/org/jsecurity/authc/credential/Md2CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/Md2CredentialsMatcher.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
-import org.jsecurity.crypto.hash.Md2Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
+import org.ki.crypto.hash.Md2Hash;
 
 /**
  * <tt>HashedCredentialsMatcher</tt> implementation that expects the stored <tt>AuthenticationInfo</tt> credentials to be
diff --git a/core/src/org/jsecurity/authc/credential/Md5CredentialsMatcher.java b/core/src/org/ki/authc/credential/Md5CredentialsMatcher.java
similarity index 92%
rename from core/src/org/jsecurity/authc/credential/Md5CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/Md5CredentialsMatcher.java
index bc2fdb2..5410e62 100644
--- a/core/src/org/jsecurity/authc/credential/Md5CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/Md5CredentialsMatcher.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
-import org.jsecurity.crypto.hash.Md5Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
+import org.ki.crypto.hash.Md5Hash;
 
 /**
  * <tt>HashedCredentialsMatcher</tt> implementation that expects the stored <tt>AuthenticationInfo</tt> credentials to be
diff --git a/core/src/org/jsecurity/authc/credential/Sha1CredentialsMatcher.java b/core/src/org/ki/authc/credential/Sha1CredentialsMatcher.java
similarity index 92%
rename from core/src/org/jsecurity/authc/credential/Sha1CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/Sha1CredentialsMatcher.java
index d7c7b84..3e1910a 100644
--- a/core/src/org/jsecurity/authc/credential/Sha1CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/Sha1CredentialsMatcher.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
-import org.jsecurity.crypto.hash.Sha1Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
+import org.ki.crypto.hash.Sha1Hash;
 
 /**
  * <tt>HashedCredentialsMatcher</tt> implementation that expects the stored <tt>AuthenticationInfo</tt> credentials to be
diff --git a/core/src/org/jsecurity/authc/credential/Sha256CredentialsMatcher.java b/core/src/org/ki/authc/credential/Sha256CredentialsMatcher.java
similarity index 90%
rename from core/src/org/jsecurity/authc/credential/Sha256CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/Sha256CredentialsMatcher.java
index 4cb1df8..cc57328 100644
--- a/core/src/org/jsecurity/authc/credential/Sha256CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/Sha256CredentialsMatcher.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
-import org.jsecurity.crypto.hash.Sha256Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
+import org.ki.crypto.hash.Sha256Hash;
 
 /**
  * <tt>HashedCredentialsMatcher</tt> implementation that expects the stored <tt>AuthenticationInfo</tt> credentials to be
diff --git a/core/src/org/jsecurity/authc/credential/Sha384CredentialsMatcher.java b/core/src/org/ki/authc/credential/Sha384CredentialsMatcher.java
similarity index 90%
rename from core/src/org/jsecurity/authc/credential/Sha384CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/Sha384CredentialsMatcher.java
index 40ea703..c5ab9cd 100644
--- a/core/src/org/jsecurity/authc/credential/Sha384CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/Sha384CredentialsMatcher.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
-import org.jsecurity.crypto.hash.Sha384Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
+import org.ki.crypto.hash.Sha384Hash;
 
 /**
  * <tt>HashedCredentialsMatcher</tt> implementation that expects the stored <tt>AuthenticationInfo</tt> credentials to be
diff --git a/core/src/org/jsecurity/authc/credential/Sha512CredentialsMatcher.java b/core/src/org/ki/authc/credential/Sha512CredentialsMatcher.java
similarity index 90%
rename from core/src/org/jsecurity/authc/credential/Sha512CredentialsMatcher.java
rename to core/src/org/ki/authc/credential/Sha512CredentialsMatcher.java
index 0205386..1ce4a90 100644
--- a/core/src/org/jsecurity/authc/credential/Sha512CredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/Sha512CredentialsMatcher.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Hash;
-import org.jsecurity.crypto.hash.Sha512Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Hash;
+import org.ki.crypto.hash.Sha512Hash;
 
 /**
  * <tt>HashedCredentialsMatcher</tt> implementation that expects the stored <tt>AuthenticationInfo</tt> credentials to be
diff --git a/core/src/org/jsecurity/authc/credential/SimpleCredentialsMatcher.java b/core/src/org/ki/authc/credential/SimpleCredentialsMatcher.java
similarity index 95%
rename from core/src/org/jsecurity/authc/credential/SimpleCredentialsMatcher.java
rename to core/src/org/ki/authc/credential/SimpleCredentialsMatcher.java
index 196fb1b..27285c8 100644
--- a/core/src/org/jsecurity/authc/credential/SimpleCredentialsMatcher.java
+++ b/core/src/org/ki/authc/credential/SimpleCredentialsMatcher.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.codec.CodecSupport;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.codec.CodecSupport;
 
 import java.util.Arrays;
 
@@ -116,7 +116,7 @@
      * This implementation acquires the <tt>token</tt>'s credentials
      * (via {@link #getCredentials(AuthenticationToken) getCredentials(token)})
      * and then the <tt>account</tt>'s credentials
-     * (via {@link #getCredentials(org.jsecurity.authc.AuthenticationInfo) getCredentials(account)}) and then passes both of
+     * (via {@link #getCredentials(org.ki.authc.AuthenticationInfo) getCredentials(account)}) and then passes both of
      * them to the {@link #equals(Object,Object) equals(tokenCredentials, accountCredentials)} method for equality
      * comparison.
      *
diff --git a/core/src/org/jsecurity/authc/credential/package-info.java b/core/src/org/ki/authc/credential/package-info.java
similarity index 86%
rename from core/src/org/jsecurity/authc/credential/package-info.java
rename to core/src/org/ki/authc/credential/package-info.java
index 514be3f..4f75fe1 100644
--- a/core/src/org/jsecurity/authc/credential/package-info.java
+++ b/core/src/org/ki/authc/credential/package-info.java
@@ -18,7 +18,7 @@
  */
 /**
  * Support for validating <em>credentials</em> (such as passwords or X509 certificates) during
- * authentication via the {@link org.jsecurity.authc.credential.CredentialsMatcher CredentialsMatcher}
+ * authentication via the {@link org.ki.authc.credential.CredentialsMatcher CredentialsMatcher}
  * interface and its supporting implementations.
  */
-package org.jsecurity.authc.credential;
\ No newline at end of file
+package org.ki.authc.credential;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authc/package-info.java b/core/src/org/ki/authc/package-info.java
similarity index 97%
rename from core/src/org/jsecurity/authc/package-info.java
rename to core/src/org/ki/authc/package-info.java
index 6cd4dd8..ed76fa5 100644
--- a/core/src/org/jsecurity/authc/package-info.java
+++ b/core/src/org/ki/authc/package-info.java
@@ -26,4 +26,4 @@
  * entry point (facade) to all other other authentication components. Other components, interfaces and

  * exceptions are here to support <tt>Authenticator</tt> implementations.

  */

-package org.jsecurity.authc;
\ No newline at end of file
+package org.ki.authc;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java b/core/src/org/ki/authc/pam/AbstractAuthenticationStrategy.java
similarity index 92%
rename from core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java
rename to core/src/org/ki/authc/pam/AbstractAuthenticationStrategy.java
index adf2baa..5c5ed34 100644
--- a/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java
+++ b/core/src/org/ki/authc/pam/AbstractAuthenticationStrategy.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authc.pam;

+package org.ki.authc.pam;

 

-import org.jsecurity.authc.*;

-import org.jsecurity.realm.Realm;

+import org.ki.authc.*;

+import org.ki.realm.Realm;

 

 import java.util.Collection;

 

@@ -72,11 +72,11 @@
      * aggregate for continued use throughout the login process.

      * <p/>

      * This implementation merely checks to see if the specified <code>aggregate</code> argument is an instance of

-     * {@link org.jsecurity.authc.MergableAuthenticationInfo MergableAuthenticationInfo}, and if so, calls

+     * {@link org.ki.authc.MergableAuthenticationInfo MergableAuthenticationInfo}, and if so, calls

      * <code>aggregate.merge(info)</code>  If it is <em>not</em> an instance of

      * <code>MergableAuthenticationInfo</code>, an {@link IllegalArgumentException IllegalArgumentException} is thrown.

      * Can be overridden by subclasses for custom merging behavior if implementing the

-     * {@link org.jsecurity.authc.MergableAuthenticationInfo MergableAuthenticationInfo} is not desired for some reason.

+     * {@link org.ki.authc.MergableAuthenticationInfo MergableAuthenticationInfo} is not desired for some reason.

      */

     protected AuthenticationInfo merge(AuthenticationInfo info, AuthenticationInfo aggregate) {

         if( aggregate instanceof MergableAuthenticationInfo ) {

diff --git a/core/src/org/jsecurity/authc/pam/AllSuccessfulStrategy.java b/core/src/org/ki/authc/pam/AllSuccessfulStrategy.java
similarity index 90%
rename from core/src/org/jsecurity/authc/pam/AllSuccessfulStrategy.java
rename to core/src/org/ki/authc/pam/AllSuccessfulStrategy.java
index 29f1407..2a987ad 100644
--- a/core/src/org/jsecurity/authc/pam/AllSuccessfulStrategy.java
+++ b/core/src/org/ki/authc/pam/AllSuccessfulStrategy.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.pam;
+package org.ki.authc.pam;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.UnknownAccountException;
-import org.jsecurity.realm.Realm;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.UnknownAccountException;
+import org.ki.realm.Realm;
 
 /**
  * <tt>AuthenticationStrategy</tt> implementation that requires <em>all</em> configured realms to
@@ -44,9 +44,9 @@
 
     /**
      * Because all realms in this strategy must complete successfully, this implementation ensures that the given
-     * <code>Realm</code> {@link Realm#supports(org.jsecurity.authc.AuthenticationToken) supports} the given
+     * <code>Realm</code> {@link Realm#supports(org.ki.authc.AuthenticationToken) supports} the given
      * <code>token</code> argument.  If it does not, this method throws an
-     * {@link org.jsecurity.authc.pam.UnsupportedTokenException UnsupportedTokenException} to end the authentication
+     * {@link org.ki.authc.pam.UnsupportedTokenException UnsupportedTokenException} to end the authentication
      * process immediately. If the realm does support the token, the <code>info</code> argument is returned immediately.
      */
     public AuthenticationInfo beforeAttempt(Realm realm, AuthenticationToken token, AuthenticationInfo info) throws AuthenticationException {
diff --git a/core/src/org/jsecurity/authc/pam/AtLeastOneSuccessfulStrategy.java b/core/src/org/ki/authc/pam/AtLeastOneSuccessfulStrategy.java
similarity index 90%
rename from core/src/org/jsecurity/authc/pam/AtLeastOneSuccessfulStrategy.java
rename to core/src/org/ki/authc/pam/AtLeastOneSuccessfulStrategy.java
index 7a23069..680d2da 100644
--- a/core/src/org/jsecurity/authc/pam/AtLeastOneSuccessfulStrategy.java
+++ b/core/src/org/ki/authc/pam/AtLeastOneSuccessfulStrategy.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.pam;
+package org.ki.authc.pam;
 
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
 
 /**
  * <tt>AuthenticationStrategy</tt> implementation that requires <em>at least one</em> configured realm to
@@ -43,7 +43,7 @@
 
     /**
      * Ensures that the <code>aggregate</code> method argument is not <code>null</code> and
-     * <code>aggregate.{@link org.jsecurity.authc.AuthenticationInfo#getPrincipals() getPrincipals()}</code>
+     * <code>aggregate.{@link org.ki.authc.AuthenticationInfo#getPrincipals() getPrincipals()}</code>
      * is not <code>null</code>, and if either is <code>null</code>, throws an AuthenticationException to indicate
      * that none of the realms authenticated successfully.
      */
diff --git a/core/src/org/jsecurity/authc/pam/AuthenticationStrategy.java b/core/src/org/ki/authc/pam/AuthenticationStrategy.java
similarity index 96%
rename from core/src/org/jsecurity/authc/pam/AuthenticationStrategy.java
rename to core/src/org/ki/authc/pam/AuthenticationStrategy.java
index 707f8e6..9df2aad 100644
--- a/core/src/org/jsecurity/authc/pam/AuthenticationStrategy.java
+++ b/core/src/org/ki/authc/pam/AuthenticationStrategy.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.pam;
+package org.ki.authc.pam;
 
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.realm.Realm;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.realm.Realm;
 
 import java.util.Collection;
 
diff --git a/core/src/org/jsecurity/authc/pam/FirstSuccessfulStrategy.java b/core/src/org/ki/authc/pam/FirstSuccessfulStrategy.java
similarity index 92%
rename from core/src/org/jsecurity/authc/pam/FirstSuccessfulStrategy.java
rename to core/src/org/ki/authc/pam/FirstSuccessfulStrategy.java
index c8637a5..6f39a98 100644
--- a/core/src/org/jsecurity/authc/pam/FirstSuccessfulStrategy.java
+++ b/core/src/org/ki/authc/pam/FirstSuccessfulStrategy.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authc.pam;

+package org.ki.authc.pam;

 

-import org.jsecurity.authc.AuthenticationException;

-import org.jsecurity.authc.AuthenticationInfo;

-import org.jsecurity.authc.AuthenticationToken;

-import org.jsecurity.realm.Realm;

+import org.ki.authc.AuthenticationException;

+import org.ki.authc.AuthenticationInfo;

+import org.ki.authc.AuthenticationToken;

+import org.ki.realm.Realm;

 

 import java.util.Collection;

 

diff --git a/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java b/core/src/org/ki/authc/pam/ModularRealmAuthenticator.java
similarity index 97%
rename from core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java
rename to core/src/org/ki/authc/pam/ModularRealmAuthenticator.java
index 3bda973..b1e6bc1 100644
--- a/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java
+++ b/core/src/org/ki/authc/pam/ModularRealmAuthenticator.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.pam;
+package org.ki.authc.pam;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.*;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.*;
+import org.ki.realm.Realm;
+import org.ki.subject.PrincipalCollection;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -39,7 +39,7 @@
  *
  * <p>If only one realm is configured (this is often the case for most applications), authentication success is naturally
  * only dependent upon invoking this one Realm's
- * {@link Realm#getAuthenticationInfo(org.jsecurity.authc.AuthenticationToken)} method.
+ * {@link Realm#getAuthenticationInfo(org.ki.authc.AuthenticationToken)} method.
  *
  * <p>But if two or more realms are configured, PAM behavior is implemented by iterating over the collection of realms
  * and interacting with each over the course of the authentication attempt.  As this is more complicated, this
@@ -280,11 +280,11 @@
 
     /**
      * <p>Attempts to authenticate the given token by iterating over the internal collection of
-     * {@link Realm}s.  For each realm, first the {@link Realm#supports(org.jsecurity.authc.AuthenticationToken)}
+     * {@link Realm}s.  For each realm, first the {@link Realm#supports(org.ki.authc.AuthenticationToken)}
      * method will be called to determine if the realm supports the <tt>authenticationToken</tt> method argument.
      *
      * If a realm does support
-     * the token, its {@link Realm#getAuthenticationInfo(org.jsecurity.authc.AuthenticationToken)}
+     * the token, its {@link Realm#getAuthenticationInfo(org.ki.authc.AuthenticationToken)}
      * method will be called.  If the realm returns a non-null account, the token will be
      * considered authenticated for that realm and the account data recorded.  If the realm returns <tt>null</tt>,
      * the next realm will be consulted.  If no realms support the token or all supporting realms return null,
diff --git a/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java b/core/src/org/ki/authc/pam/UnsupportedTokenException.java
similarity index 87%
rename from core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java
rename to core/src/org/ki/authc/pam/UnsupportedTokenException.java
index 070e756..a39d35b 100644
--- a/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java
+++ b/core/src/org/ki/authc/pam/UnsupportedTokenException.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.pam;
+package org.ki.authc.pam;
 
-import org.jsecurity.authc.AuthenticationException;
+import org.ki.authc.AuthenticationException;
 
 /**
  * Exception thrown during the authentication process when an
- * {@link org.jsecurity.authc.AuthenticationToken AuthenticationToken} implementation is encountered that is not
- * supported by one or more configured {@link org.jsecurity.realm.Realm Realm}s.
+ * {@link org.ki.authc.AuthenticationToken AuthenticationToken} implementation is encountered that is not
+ * supported by one or more configured {@link org.ki.realm.Realm Realm}s.
  *
  * @author Les Hazlewood
  * @see AuthenticationStrategy
diff --git a/core/src/org/jsecurity/authc/pam/package-info.java b/core/src/org/ki/authc/pam/package-info.java
similarity index 86%
rename from core/src/org/jsecurity/authc/pam/package-info.java
rename to core/src/org/ki/authc/pam/package-info.java
index 4a4a7d5..446c735 100644
--- a/core/src/org/jsecurity/authc/pam/package-info.java
+++ b/core/src/org/ki/authc/pam/package-info.java
@@ -19,9 +19,9 @@
 /**

  * Support for <em>PAM</em>, or <b>P</b>luggable <b>A</b>uthentication <b>M</b>odules, which is

  * the capability to authenticate a user against multiple configurable (pluggable) <em>modules</em> (JSecurity

- * calls these {@link org.jsecurity.realm.Realm Realm}s).

+ * calls these {@link org.ki.realm.Realm Realm}s).

  * <p/>

- * The primary class of interest here is the {@link org.jsecurity.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}

+ * The primary class of interest here is the {@link org.ki.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}

  * which is an <code>Authenticator</code> implementation that coordinates authentication attempts across

  * one or more Realm instances.

  * <p/>

@@ -29,4 +29,4 @@
  * application's needs using an injectible

  * {@link AuthenticationStrategy}.

  */

-package org.jsecurity.authc.pam;
\ No newline at end of file
+package org.ki.authc.pam;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authz/AuthorizationException.java b/core/src/org/ki/authz/AuthorizationException.java
similarity index 96%
rename from core/src/org/jsecurity/authz/AuthorizationException.java
rename to core/src/org/ki/authz/AuthorizationException.java
index 902be58..75f73a5 100644
--- a/core/src/org/jsecurity/authz/AuthorizationException.java
+++ b/core/src/org/ki/authz/AuthorizationException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Exception thrown if there is a problem during authorization (access control check).
diff --git a/core/src/org/jsecurity/authz/AuthorizationInfo.java b/core/src/org/ki/authz/AuthorizationInfo.java
similarity index 86%
rename from core/src/org/jsecurity/authz/AuthorizationInfo.java
rename to core/src/org/ki/authz/AuthorizationInfo.java
index 7811306..e11290a 100644
--- a/core/src/org/jsecurity/authz/AuthorizationInfo.java
+++ b/core/src/org/ki/authz/AuthorizationInfo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 import java.io.Serializable;
 import java.util.Collection;
@@ -32,7 +32,7 @@
  * <ul>
  * <li>A <code>Collection</code> of Strings, where each String can usually be converted into <code>Permission</code>
  * objects by a <code>Realm</code>'s
- * {@link org.jsecurity.authz.permission.PermissionResolver PermissionResolver}</li>
+ * {@link org.ki.authz.permission.PermissionResolver PermissionResolver}</li>
  * <li>A <code>Collection</code> of {@link Permission Permission} objects</li>
  * </ul>
  * Both permission collections together represent the total aggregate collection of permissions.  You may use one
@@ -41,20 +41,20 @@
  * Because the act of authorization (access control) is orthoganal to authentication (log-in), this interface is
  * intended to represent only the account data needed by JSecurity during an access control check
  * (role, permission, etc).  JSecurity also has a parallel
- * {@link org.jsecurity.authc.AuthenticationInfo AuthenticationInfo} interface for use during the authentication
+ * {@link org.ki.authc.AuthenticationInfo AuthenticationInfo} interface for use during the authentication
  * process that represents identity data such as principals and credentials.
  * <p/>
- * Because many if not most {@link org.jsecurity.realm.Realm Realm}s store both sets of data for a Subject, it might be
+ * Because many if not most {@link org.ki.realm.Realm Realm}s store both sets of data for a Subject, it might be
  * convenient for a <code>Realm</code> implementation to utilize an implementation of the
- * {@link org.jsecurity.authc.Account Account} interface instead, which is a convenience interface that combines both
+ * {@link org.ki.authc.Account Account} interface instead, which is a convenience interface that combines both
  * <code>AuthenticationInfo</code> and <code>AuthorizationInfo</code>.  Whether you choose to implement these two
  * interfaces separately or implement the one <code>Account</code> interface for a given <code>Realm</code> is
  * entirely based on your application's needs or your preferences.
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see org.jsecurity.authc.AuthenticationInfo AuthenticationInfo
- * @see org.jsecurity.authc.Account
+ * @see org.ki.authc.AuthenticationInfo AuthenticationInfo
+ * @see org.ki.authc.Account
  * @since 0.9
  */
 public interface AuthorizationInfo extends Serializable {
@@ -74,7 +74,7 @@
      * This method is a convenience mechanism that allows Realms to represent permissions as Strings if they choose.
      * When performing a security check, a <code>Realm</code> usually converts these strings to object
      * {@link Permission Permission}s via an internal
-     * {@link org.jsecurity.authz.permission.PermissionResolver PermissionResolver}
+     * {@link org.ki.authz.permission.PermissionResolver PermissionResolver}
      * in order to perform the actual permission check.  This is not a requirement of course, since <code>Realm</code>s
      * can perform security checks in whatever manner deemed necessary, but this explains the conversion mechanism that
      * most JSecurity Realms execute for string-based permission checks.
diff --git a/core/src/org/jsecurity/authz/Authorizer.java b/core/src/org/ki/authz/Authorizer.java
similarity index 90%
rename from core/src/org/jsecurity/authz/Authorizer.java
rename to core/src/org/ki/authz/Authorizer.java
index 11086a6..b8b91ce 100644
--- a/core/src/org/jsecurity/authz/Authorizer.java
+++ b/core/src/org/ki/authz/Authorizer.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.subject.PrincipalCollection;
 
 import java.util.Collection;
 import java.util.List;
@@ -38,7 +38,7 @@
  * a {@link Permission Permission} if desired.  Most implementations of this interface will simply convert these
  * String values to {@link Permission Permission} instances and then just call the corresponding type-safe method.
  * (JSecurity's default implementations do String-to-Permission conversion for these methods using
- * {@link org.jsecurity.authz.permission.PermissionResolver PermissionResolver}s.)
+ * {@link org.ki.authz.permission.PermissionResolver PermissionResolver}s.)
  *
  * <p>These overloaded *Permission methods <em>do</em> forego type-saftey for the benefit of convenience and simplicity,
  * so you should choose which ones to use based on your preferences and needs.
@@ -146,14 +146,14 @@
      * Ensures the corresponding Subject/user implies the specified permission String.
      *
      * <p>If the subject's existing associated permissions do not {@link Permission#implies(Permission)} imply}
-     * the given permission, an {@link org.jsecurity.authz.AuthorizationException} will be thrown.
+     * the given permission, an {@link org.ki.authz.AuthorizationException} will be thrown.
      *
      * <p>This is an overloaded method for the corresponding type-safe {@link Permission Permission} variant.
      * Please see the class-level JavaDoc for more information on these String-based permission methods.
      *
      * @param subjectPrincipal the application-specific subject/user identifier.
      * @param permission       the String representation of the Permission to check.
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *          if the user does not have the permission.
      * @since 0.9
      */
@@ -162,23 +162,23 @@
     /**
      * Ensures a subject/user {@link Permission#implies(Permission)} implies} the specified <tt>Permission</tt>.
      * If the subject's exisiting associated permissions do not {@link Permission#implies(Permission)} imply}
-     * the given permission, an {@link org.jsecurity.authz.AuthorizationException} will be thrown.
+     * the given permission, an {@link org.ki.authz.AuthorizationException} will be thrown.
      *
      * @param subjectPrincipal the application-specific subject/user identifier.
      * @param permission       the Permission to check.
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *          if the user does not have the permission.
      */
     void checkPermission(PrincipalCollection subjectPrincipal, Permission permission) throws AuthorizationException;
 
     /**
      * Ensures the corresponding Subject/user
-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) implies} all of the
+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) implies} all of the
      * specified permission strings.
      *
      * If the subject's exisiting associated permissions do not
-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) imply} all of the given permissions,
-     * an {@link org.jsecurity.authz.AuthorizationException} will be thrown.
+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) imply} all of the given permissions,
+     * an {@link org.ki.authz.AuthorizationException} will be thrown.
      *
      * <p>This is an overloaded method for the corresponding type-safe {@link Permission Permission} variant.
      * Please see the class-level JavaDoc for more information on these String-based permission methods.
@@ -192,12 +192,12 @@
 
     /**
      * Ensures the corresponding Subject/user
-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) implies} all of the
+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) implies} all of the
      * specified permission strings.
      *
      * If the subject's exisiting associated permissions do not
-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) imply} all of the given permissions,
-     * an {@link org.jsecurity.authz.AuthorizationException} will be thrown.
+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) imply} all of the given permissions,
+     * an {@link org.ki.authz.AuthorizationException} will be thrown.
      *
      * @param subjectPrincipal the application-specific subject/user identifier.
      * @param permissions      the Permissions to check.
@@ -240,22 +240,22 @@
 
     /**
      * Asserts the corresponding Subject/user has the specified role by returning quietly if they do or throwing an
-     * {@link org.jsecurity.authz.AuthorizationException} if they do not.
+     * {@link org.ki.authz.AuthorizationException} if they do not.
      *
      * @param subjectPrincipal the application-specific subject/user identifier.
      * @param roleIdentifier   the application-specific role identifier (usually a role id or role name ).
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *          if the user does not have the role.
      */
     void checkRole(PrincipalCollection subjectPrincipal, String roleIdentifier) throws AuthorizationException;
 
     /**
      * Asserts the corresponding Subject/user has all of the specified roles by returning quietly if they do or
-     * throwing an {@link org.jsecurity.authz.AuthorizationException} if they do not.
+     * throwing an {@link org.ki.authz.AuthorizationException} if they do not.
      *
      * @param subjectPrincipal the application-specific subject/user identifier.
      * @param roleIdentifiers  the application-specific role identifiers to check (usually role ids or role names).
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *          if the user does not have all of the specified roles.
      */
     void checkRoles(PrincipalCollection subjectPrincipal, Collection<String> roleIdentifiers) throws AuthorizationException;
diff --git a/core/src/org/jsecurity/authz/AuthorizingAccount.java b/core/src/org/ki/authz/AuthorizingAccount.java
similarity index 75%
rename from core/src/org/jsecurity/authz/AuthorizingAccount.java
rename to core/src/org/ki/authz/AuthorizingAccount.java
index b435cc4..ffc087c 100644
--- a/core/src/org/jsecurity/authz/AuthorizingAccount.java
+++ b/core/src/org/ki/authz/AuthorizingAccount.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
-import org.jsecurity.authc.Account;
+import org.ki.authc.Account;
 
 import java.util.Collection;
 import java.util.List;
@@ -32,71 +32,71 @@
  * Of course, an <tt>AuthorizingAccount</tt> concept is only a convenience mechansim if JSecurity account caching
  * is enabled.  Realm implementations are free to ignore this interface entirely and implement/override any of their
  * <tt>Realm</tt>'s {@link Authorizer Authorizer} methods to execute the authorization checks as they see fit.
- * ({@link org.jsecurity.realm.Realm Realm} is a sub-interface of {@link Authorizer Authorizer} and therefore must
+ * ({@link org.ki.realm.Realm Realm} is a sub-interface of {@link Authorizer Authorizer} and therefore must
  * implement those methods as well).
  * <p/>
  * <b>DEPRECATION NOTE</b>: This interface and its default {@link SimpleAuthorizingAccount SimpleAuthorizingAccount}
  * implementation is deprecated and will be removed prior to 1.0 being released.  Instead, either just
  * return an {@link Account} instance, or if you want fine-grained control over authorization behavior, extend
- * a subclass of {@link org.jsecurity.realm.AuthorizingRealm} and implement your own security checks in the
+ * a subclass of {@link org.ki.realm.AuthorizingRealm} and implement your own security checks in the
  * Realm itself instead of forcing this logic in your entity/domain classes where it could be error prone and
  * unnecessarily couple these objects to JSecurity.
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see org.jsecurity.realm.AuthorizingRealm
+ * @see org.ki.realm.AuthorizingRealm
  * @since 0.9
  * @deprecated
  */
 public interface AuthorizingAccount extends Account {
 
     /**
-     * @see org.jsecurity.subject.Subject#isPermitted(Permission)
+     * @see org.ki.subject.Subject#isPermitted(Permission)
      */
     boolean isPermitted(Permission permission);
 
     /**
-     * @see org.jsecurity.subject.Subject#isPermitted(java.util.List)
+     * @see org.ki.subject.Subject#isPermitted(java.util.List)
      */
     boolean[] isPermitted(List<Permission> permissions);
 
     /**
-     * @see org.jsecurity.subject.Subject#isPermittedAll(java.util.Collection)
+     * @see org.ki.subject.Subject#isPermittedAll(java.util.Collection)
      */
     boolean isPermittedAll(Collection<Permission> permissions);
 
     /**
-     * @see org.jsecurity.subject.Subject#checkPermission(Permission)
+     * @see org.ki.subject.Subject#checkPermission(Permission)
      */
     void checkPermission(Permission permission) throws AuthorizationException;
 
     /**
-     * @see org.jsecurity.subject.Subject#checkPermissions(java.util.Collection)
+     * @see org.ki.subject.Subject#checkPermissions(java.util.Collection)
      */
     void checkPermissions(Collection<Permission> permissions) throws AuthorizationException;
 
     /**
-     * @see org.jsecurity.subject.Subject#hasRole(String)
+     * @see org.ki.subject.Subject#hasRole(String)
      */
     boolean hasRole(String roleIdentifier);
 
     /**
-     * @see org.jsecurity.subject.Subject#hasRoles(java.util.List)
+     * @see org.ki.subject.Subject#hasRoles(java.util.List)
      */
     boolean[] hasRoles(List<String> roleIdentifiers);
 
     /**
-     * @see org.jsecurity.subject.Subject#hasAllRoles(java.util.Collection)
+     * @see org.ki.subject.Subject#hasAllRoles(java.util.Collection)
      */
     boolean hasAllRoles(Collection<String> roleIdentifiers);
 
     /**
-     * @see org.jsecurity.subject.Subject#checkRole(String)
+     * @see org.ki.subject.Subject#checkRole(String)
      */
     void checkRole(String role);
 
     /**
-     * @see org.jsecurity.subject.Subject#checkRoles
+     * @see org.ki.subject.Subject#checkRoles
      */
     void checkRoles(Collection<String> roles);
 }
diff --git a/core/src/org/jsecurity/authz/HostUnauthorizedException.java b/core/src/org/ki/authz/HostUnauthorizedException.java
similarity index 96%
rename from core/src/org/jsecurity/authz/HostUnauthorizedException.java
rename to core/src/org/ki/authz/HostUnauthorizedException.java
index 843e166..101286a 100644
--- a/core/src/org/jsecurity/authz/HostUnauthorizedException.java
+++ b/core/src/org/ki/authz/HostUnauthorizedException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 import java.net.InetAddress;
 
@@ -26,7 +26,7 @@
  * or access a particular resource.
  *
  * @author Les Hazlewood
- * @see org.jsecurity.session.mgt.SessionManager#start(java.net.InetAddress)
+ * @see org.ki.session.mgt.SessionManager#start(java.net.InetAddress)
  * @since 0.1
  */
 public class HostUnauthorizedException extends UnauthorizedException {
diff --git a/core/src/org/jsecurity/authz/ModularRealmAuthorizer.java b/core/src/org/ki/authz/ModularRealmAuthorizer.java
similarity index 84%
rename from core/src/org/jsecurity/authz/ModularRealmAuthorizer.java
rename to core/src/org/ki/authz/ModularRealmAuthorizer.java
index 31e86f3..3bb4a57 100644
--- a/core/src/org/jsecurity/authz/ModularRealmAuthorizer.java
+++ b/core/src/org/ki/authz/ModularRealmAuthorizer.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
-import org.jsecurity.authz.permission.PermissionResolver;
-import org.jsecurity.authz.permission.PermissionResolverAware;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authz.permission.PermissionResolver;
+import org.ki.authz.permission.PermissionResolverAware;
+import org.ki.realm.Realm;
+import org.ki.subject.PrincipalCollection;
 
 import java.util.Collection;
 import java.util.List;
@@ -95,14 +95,14 @@
 
     /**
      * Sets the specified {@link PermissionResolver PermissionResolver} on <em>all</em> of the wrapped realms that
-     * implement the {@link org.jsecurity.authz.permission.PermissionResolverAware PermissionResolverAware} interface.
+     * implement the {@link org.ki.authz.permission.PermissionResolverAware PermissionResolverAware} interface.
      * <p/>
      * Only call this method if you want the permission resolver to be passed to all realms that implement the
      * <code>PermissionResolver</code> interface.  If you do not want this to occur, the realms must
      * configure themselves individually (or be configured individually).
      *
      * @param permissionResolver the permissionResolver to set on all of the wrapped realms that implement the
-     *                           {@link org.jsecurity.authz.permission.PermissionResolverAware PermissionResolverAware} interface.
+     *                           {@link org.ki.authz.permission.PermissionResolverAware PermissionResolverAware} interface.
      */
     public void setPermissionResolver(PermissionResolver permissionResolver) {
         this.permissionResolver = permissionResolver;
@@ -114,7 +114,7 @@
      * {@link #getRealms Realms} that implement the {@link PermissionResolverAware PermissionResolverAware} interface.
      * <p/>
      * This method is called after setting a permissionResolver on this ModularRealmAuthorizer via the
-     * {@link #setPermissionResolver(org.jsecurity.authz.permission.PermissionResolver) setPermissionResolver} method.
+     * {@link #setPermissionResolver(org.ki.authz.permission.PermissionResolver) setPermissionResolver} method.
      * <p/>
      * It is also called after setting one or more realms via the {@link #setRealms setRealms} method to allow these
      * newly available realms to be given the <code>PermissionResolver</code> already in use.
@@ -151,7 +151,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#isPermitted(org.jsecurity.subject.PrincipalCollection, String)} returns <code>true</code>,
+     * {@link Realm#isPermitted(org.ki.subject.PrincipalCollection, String)} returns <code>true</code>,
      * <code>false</code> otherwise.
      */
     public boolean isPermitted(PrincipalCollection principals, String permission) {
@@ -166,7 +166,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#isPermitted(org.jsecurity.subject.PrincipalCollection, Permission)} call returns <code>true</code>,
+     * {@link Realm#isPermitted(org.ki.subject.PrincipalCollection, Permission)} call returns <code>true</code>,
      * <code>false</code> otherwise.
      */
     public boolean isPermitted(PrincipalCollection principals, Permission permission) {
@@ -181,7 +181,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#isPermitted(org.jsecurity.subject.PrincipalCollection, String[])} call returns <code>true</code>,
+     * {@link Realm#isPermitted(org.ki.subject.PrincipalCollection, String[])} call returns <code>true</code>,
      * <code>false</code> otherwise.
      */
     public boolean[] isPermitted(PrincipalCollection principals, String... permissions) {
@@ -198,7 +198,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#isPermitted(org.jsecurity.subject.PrincipalCollection, List)} call returns <code>true</code>,
+     * {@link Realm#isPermitted(org.ki.subject.PrincipalCollection, List)} call returns <code>true</code>,
      * <code>false</code> otherwise.
      */
     public boolean[] isPermitted(PrincipalCollection principals, List<Permission> permissions) {
@@ -217,7 +217,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#isPermitted(org.jsecurity.subject.PrincipalCollection, String)} call returns <code>true</code>
+     * {@link Realm#isPermitted(org.ki.subject.PrincipalCollection, String)} call returns <code>true</code>
      * for <em>all</em> of the specified string permissions, <code>false</code> otherwise.
      */
     public boolean isPermittedAll(PrincipalCollection principals, String... permissions) {
@@ -234,7 +234,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#isPermitted(org.jsecurity.subject.PrincipalCollection, Permission)} call returns <code>true</code>
+     * {@link Realm#isPermitted(org.ki.subject.PrincipalCollection, Permission)} call returns <code>true</code>
      * for <em>all</em> of the specified Permissions, <code>false</code> otherwise.
      */
     public boolean isPermittedAll(PrincipalCollection principals, Collection<Permission> permissions) {
@@ -250,7 +250,7 @@
     }
 
     /**
-     * If !{@link #isPermitted(org.jsecurity.subject.PrincipalCollection, String) isPermitted(permission)}, throws
+     * If !{@link #isPermitted(org.ki.subject.PrincipalCollection, String) isPermitted(permission)}, throws
      * an <code>UnauthorizedException</code> otherwise returns quietly.
      */
     public void checkPermission(PrincipalCollection principals, String permission) throws AuthorizationException {
@@ -261,7 +261,7 @@
     }
 
     /**
-     * If !{@link #isPermitted(org.jsecurity.subject.PrincipalCollection, Permission) isPermitted(permission)}, throws
+     * If !{@link #isPermitted(org.ki.subject.PrincipalCollection, Permission) isPermitted(permission)}, throws
      * an <code>UnauthorizedException</code> otherwise returns quietly.
      */
     public void checkPermission(PrincipalCollection principals, Permission permission) throws AuthorizationException {
@@ -272,7 +272,7 @@
     }
 
     /**
-     * If !{@link #isPermitted(org.jsecurity.subject.PrincipalCollection, String[]) isPermitted(permission)}, throws
+     * If !{@link #isPermitted(org.ki.subject.PrincipalCollection, String[]) isPermitted(permission)}, throws
      * an <code>UnauthorizedException</code> otherwise returns quietly.
      */
     public void checkPermissions(PrincipalCollection principals, String... permissions) throws AuthorizationException {
@@ -285,7 +285,7 @@
     }
 
     /**
-     * If !{@link #isPermitted(org.jsecurity.subject.PrincipalCollection, Permission) isPermitted(permission)} for
+     * If !{@link #isPermitted(org.ki.subject.PrincipalCollection, Permission) isPermitted(permission)} for
      * <em>all</em> the given Permissions, throws
      * an <code>UnauthorizedException</code> otherwise returns quietly.
      */
@@ -300,7 +300,7 @@
 
     /**
      * Returns <code>true</code> if any of the configured realms'
-     * {@link Realm#hasRole(org.jsecurity.subject.PrincipalCollection, String)} call returns <code>true</code>,
+     * {@link Realm#hasRole(org.ki.subject.PrincipalCollection, String)} call returns <code>true</code>,
      * <code>false</code> otherwise.
      */
     public boolean hasRole(PrincipalCollection principals, String roleIdentifier) {
@@ -314,7 +314,7 @@
     }
 
     /**
-     * Calls {@link #hasRole(org.jsecurity.subject.PrincipalCollection, String)} for each role name in the specified
+     * Calls {@link #hasRole(org.ki.subject.PrincipalCollection, String)} for each role name in the specified
      * collection and places the return value from each call at the respective location in the returned array.
      */
     public boolean[] hasRoles(PrincipalCollection principals, List<String> roleIdentifiers) {
@@ -333,7 +333,7 @@
 
     /**
      * Returns <code>true</code> iff any of the configured realms'
-     * {@link Realm#hasRole(org.jsecurity.subject.PrincipalCollection, String)} call returns <code>true</code> for
+     * {@link Realm#hasRole(org.ki.subject.PrincipalCollection, String)} call returns <code>true</code> for
      * <em>all</em> roles specified, <code>false</code> otherwise.
      */
     public boolean hasAllRoles(PrincipalCollection principals, Collection<String> roleIdentifiers) {
@@ -347,7 +347,7 @@
     }
 
     /**
-     * If !{@link #hasRole(org.jsecurity.subject.PrincipalCollection, String) hasRole(role)}, throws
+     * If !{@link #hasRole(org.ki.subject.PrincipalCollection, String) hasRole(role)}, throws
      * an <code>UnauthorizedException</code> otherwise returns quietly.
      */
     public void checkRole(PrincipalCollection principals, String role) throws AuthorizationException {
@@ -358,7 +358,7 @@
     }
 
     /**
-     * Calls {@link #checkRole(org.jsecurity.subject.PrincipalCollection, String) checkRole} for each role specified.
+     * Calls {@link #checkRole(org.ki.subject.PrincipalCollection, String) checkRole} for each role specified.
      */
     public void checkRoles(PrincipalCollection principals, Collection<String> roles) throws AuthorizationException {
         assertRealmsConfigured();
diff --git a/core/src/org/jsecurity/authz/Permission.java b/core/src/org/ki/authz/Permission.java
similarity index 93%
rename from core/src/org/jsecurity/authz/Permission.java
rename to core/src/org/ki/authz/Permission.java
index ed5225c..800c439 100644
--- a/core/src/org/jsecurity/authz/Permission.java
+++ b/core/src/org/ki/authz/Permission.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 /**
  * A Permission represents the ability to perform an action or access a resource.  A Permission is the most
@@ -52,16 +52,16 @@
  *
  * <p>A benefit to JSecurity is that, although it assumes most systems are based on these types of static role or
  * dynamic role w/ permission schemes, it does not require a system to model their security data this way - all
- * Permission checks are relegated to {@link org.jsecurity.realm.Realm} implementations, and only those implementatons
+ * Permission checks are relegated to {@link org.ki.realm.Realm} implementations, and only those implementatons
  * really determine how a user 'has' a permission or not.  The Realm could use the semantics described here, or it
  * could utilize some other mechanism entirely - it is always up to the application developer.
  *
  * <p>JSecurity provides a very powerful default implementation of this interface in the form of the
- * {@link org.jsecurity.authz.permission.WildcardPermission WildcardPermission}.  We highly recommend that you
+ * {@link org.ki.authz.permission.WildcardPermission WildcardPermission}.  We highly recommend that you
  * investigate this class before trying to implement your own <code>Permission</code>s.
  *
  * @author Les Hazlewood
- * @see org.jsecurity.authz.permission.WildcardPermission WildcardPermission
+ * @see org.ki.authz.permission.WildcardPermission WildcardPermission
  * @since 0.2
  */
 public interface Permission {
diff --git a/core/src/org/jsecurity/authz/SimpleAuthorizationInfo.java b/core/src/org/ki/authz/SimpleAuthorizationInfo.java
similarity index 98%
rename from core/src/org/jsecurity/authz/SimpleAuthorizationInfo.java
rename to core/src/org/ki/authz/SimpleAuthorizationInfo.java
index 27e4555..61bbb88 100644
--- a/core/src/org/jsecurity/authz/SimpleAuthorizationInfo.java
+++ b/core/src/org/ki/authz/SimpleAuthorizationInfo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 import java.util.Collection;
 import java.util.HashSet;
@@ -26,7 +26,7 @@
  * Simple POJO implementation of the {@link AuthorizationInfo} interface that stores roles and permissions as internal
  * attributes.
  *
- * @see org.jsecurity.realm.AuthorizingRealm
+ * @see org.ki.realm.AuthorizingRealm
  * @since 0.9
  * @author Jeremy Haile
  * @author Les Hazlewood
diff --git a/core/src/org/jsecurity/authz/SimpleAuthorizingAccount.java b/core/src/org/ki/authz/SimpleAuthorizingAccount.java
similarity index 98%
rename from core/src/org/jsecurity/authz/SimpleAuthorizingAccount.java
rename to core/src/org/ki/authz/SimpleAuthorizingAccount.java
index 5dc0693..cbb3444 100644
--- a/core/src/org/jsecurity/authz/SimpleAuthorizingAccount.java
+++ b/core/src/org/ki/authz/SimpleAuthorizingAccount.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authz;

+package org.ki.authz;

 

-import org.jsecurity.authc.Account;

-import org.jsecurity.authc.SimpleAccount;

-import org.jsecurity.subject.PrincipalCollection;

+import org.ki.authc.Account;

+import org.ki.authc.SimpleAccount;

+import org.ki.subject.PrincipalCollection;

 

 import java.util.*;

 

diff --git a/core/src/org/jsecurity/authz/SimpleRole.java b/core/src/org/ki/authz/SimpleRole.java
similarity index 98%
rename from core/src/org/jsecurity/authz/SimpleRole.java
rename to core/src/org/ki/authz/SimpleRole.java
index 8c070c0..e2b4eaf 100644
--- a/core/src/org/jsecurity/authz/SimpleRole.java
+++ b/core/src/org/ki/authz/SimpleRole.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 import java.io.Serializable;
 import java.util.Collection;
diff --git a/core/src/org/jsecurity/authz/UnauthenticatedException.java b/core/src/org/ki/authz/UnauthenticatedException.java
similarity index 98%
rename from core/src/org/jsecurity/authz/UnauthenticatedException.java
rename to core/src/org/ki/authz/UnauthenticatedException.java
index 4048b85..cc7666c 100644
--- a/core/src/org/jsecurity/authz/UnauthenticatedException.java
+++ b/core/src/org/ki/authz/UnauthenticatedException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 /**
  * Exception thrown when attempting to execute an authorization action when a successful
diff --git a/core/src/org/jsecurity/authz/UnauthorizedException.java b/core/src/org/ki/authz/UnauthorizedException.java
similarity index 98%
rename from core/src/org/jsecurity/authz/UnauthorizedException.java
rename to core/src/org/ki/authz/UnauthorizedException.java
index fd8b393..c1b4853 100644
--- a/core/src/org/jsecurity/authz/UnauthorizedException.java
+++ b/core/src/org/ki/authz/UnauthorizedException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz;
+package org.ki.authz;
 
 /**
  * Thrown to indicate a requested operation or access to a requested resource is not allowed.
diff --git a/core/src/org/jsecurity/authz/annotation/RequiresAuthentication.java b/core/src/org/ki/authz/annotation/RequiresAuthentication.java
similarity index 84%
rename from core/src/org/jsecurity/authz/annotation/RequiresAuthentication.java
rename to core/src/org/ki/authz/annotation/RequiresAuthentication.java
index 75d33aa..62cbbcb 100644
--- a/core/src/org/jsecurity/authz/annotation/RequiresAuthentication.java
+++ b/core/src/org/ki/authz/annotation/RequiresAuthentication.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.annotation;
+package org.ki.authz.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -29,10 +29,10 @@
  * {@link RequiresUser RequiresUser} annotation.
  * <p/>
  * This annotation basically ensures that
- * <code>{@link org.jsecurity.subject.Subject subject}.{@link org.jsecurity.subject.Subject#isAuthenticated() isAuthenticated()} === true</code>
+ * <code>{@link org.ki.subject.Subject subject}.{@link org.ki.subject.Subject#isAuthenticated() isAuthenticated()} === true</code>
  * <p/>
  * See the {@link RequiresUser RequiresUser} and
- * {@link org.jsecurity.authc.RememberMeAuthenticationToken RememberMeAuthenticationToken} JavaDoc for an
+ * {@link org.ki.authc.RememberMeAuthenticationToken RememberMeAuthenticationToken} JavaDoc for an
  * explaination of why these two states are considered different.
  *
  * @see RequiresUser
diff --git a/core/src/org/jsecurity/authz/annotation/RequiresGuest.java b/core/src/org/ki/authz/annotation/RequiresGuest.java
similarity index 90%
rename from core/src/org/jsecurity/authz/annotation/RequiresGuest.java
rename to core/src/org/ki/authz/annotation/RequiresGuest.java
index e9e1ead..71c8acb 100644
--- a/core/src/org/jsecurity/authz/annotation/RequiresGuest.java
+++ b/core/src/org/ki/authz/annotation/RequiresGuest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.annotation;
+package org.ki.authz.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -30,7 +30,7 @@
  * This annotation is the logical inverse of the {@link RequiresUser RequiresUser} annotation. That is,
  * <code>RequiresUser == !RequiresGuest</code>, or more accurately,
  * <p/>
- * <code>RequiresGuest === subject.{@link org.jsecurity.subject.Subject#getPrincipal() getPrincipal()} == null</code>.
+ * <code>RequiresGuest === subject.{@link org.ki.subject.Subject#getPrincipal() getPrincipal()} == null</code>.
  *
  * @see RequiresAuthentication
  * @see RequiresUser
diff --git a/core/src/org/jsecurity/authz/annotation/RequiresPermissions.java b/core/src/org/ki/authz/annotation/RequiresPermissions.java
similarity index 86%
rename from core/src/org/jsecurity/authz/annotation/RequiresPermissions.java
rename to core/src/org/ki/authz/annotation/RequiresPermissions.java
index af3258c..dbe1e59 100644
--- a/core/src/org/jsecurity/authz/annotation/RequiresPermissions.java
+++ b/core/src/org/ki/authz/annotation/RequiresPermissions.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.annotation;
+package org.ki.authz.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -27,7 +27,7 @@
  * <p>
  * Requires the current executor's Subject to imply a particular permission in
  * order to execute the annotated method.  If the executor's associated
- * {@link org.jsecurity.subject.Subject Subject} determines that the
+ * {@link org.ki.subject.Subject Subject} determines that the
  * executor does not imply the specified permission, the method will not be executed.
  * </p>
  *
@@ -38,11 +38,11 @@
  * <p/>
  * indicates the current user must be able to both <tt>read</tt> and <tt>write</tt>
  * to the file <tt>aFile.txt</tt> in order for the <tt>someMethod()</tt> to execute, otherwise
- * an {@link org.jsecurity.authz.AuthorizationException AuthorizationException} will be thrown.
+ * an {@link org.ki.authz.AuthorizationException AuthorizationException} will be thrown.
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see org.jsecurity.subject.Subject#checkPermission
+ * @see org.ki.subject.Subject#checkPermission
  * @since 0.1
  */
 @Target(ElementType.METHOD)
@@ -50,7 +50,7 @@
 public @interface RequiresPermissions {
 
     /**
-     * The permission string which will be passed to {@link org.jsecurity.subject.Subject#isPermitted(String)}
+     * The permission string which will be passed to {@link org.ki.subject.Subject#isPermitted(String)}
      * to determine if the user is allowed to invoke the code protected by this annotation.
      */
     String value();
diff --git a/core/src/org/jsecurity/authz/annotation/RequiresRoles.java b/core/src/org/ki/authz/annotation/RequiresRoles.java
similarity index 88%
rename from core/src/org/jsecurity/authz/annotation/RequiresRoles.java
rename to core/src/org/ki/authz/annotation/RequiresRoles.java
index 4d15c14..419b8ec 100644
--- a/core/src/org/jsecurity/authz/annotation/RequiresRoles.java
+++ b/core/src/org/ki/authz/annotation/RequiresRoles.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.annotation;
+package org.ki.authz.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -24,9 +24,9 @@
 import java.lang.annotation.Target;
 
 /**
- * Requires the currently executing {@link org.jsecurity.subject.Subject Subject} to have one or more specified roles
+ * Requires the currently executing {@link org.ki.subject.Subject Subject} to have one or more specified roles
  * in order to execute the annotated method. If they do not have the role(s), the method will not be executed and
- * an {@link org.jsecurity.authz.AuthorizationException AuthorizationException} is thrown.
+ * an {@link org.ki.authz.AuthorizationException AuthorizationException} is thrown.
  * <p/>
  * For example,
  * <p/>
@@ -49,7 +49,7 @@
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see org.jsecurity.subject.Subject#hasRole(String)
+ * @see org.ki.subject.Subject#hasRole(String)
  * @since 0.1
  */
 @Target(ElementType.METHOD)
diff --git a/core/src/org/jsecurity/authz/annotation/RequiresUser.java b/core/src/org/ki/authz/annotation/RequiresUser.java
similarity index 92%
rename from core/src/org/jsecurity/authz/annotation/RequiresUser.java
rename to core/src/org/ki/authz/annotation/RequiresUser.java
index a154bee..8e744b6 100644
--- a/core/src/org/jsecurity/authz/annotation/RequiresUser.java
+++ b/core/src/org/ki/authz/annotation/RequiresUser.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.annotation;
+package org.ki.authz.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -37,7 +37,7 @@
  * during their current session, and asked the system to remember them.</li>
  * </ul>
  * <p/>
- * See the {@link org.jsecurity.authc.RememberMeAuthenticationToken RememberMeAuthenticationToken} JavaDoc for an
+ * See the {@link org.ki.authc.RememberMeAuthenticationToken RememberMeAuthenticationToken} JavaDoc for an
  * explaination of why these two states are considered different.
  *
  * @see RequiresAuthentication
diff --git a/core/src/org/jsecurity/authz/annotation/package-info.java b/core/src/org/ki/authz/annotation/package-info.java
similarity index 95%
rename from core/src/org/jsecurity/authz/annotation/package-info.java
rename to core/src/org/ki/authz/annotation/package-info.java
index 95ea2bb..def90d2 100644
--- a/core/src/org/jsecurity/authz/annotation/package-info.java
+++ b/core/src/org/ki/authz/annotation/package-info.java
@@ -20,4 +20,4 @@
  * Annotations used to restrict which classes, instances, or methods may be accessed or invoked depending on the

  * caller's access abilities or authentication state.

  */

-package org.jsecurity.authz.annotation;
\ No newline at end of file
+package org.ki.authz.annotation;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authz/aop/AnnotationsAuthorizingMethodInterceptor.java b/core/src/org/ki/authz/aop/AnnotationsAuthorizingMethodInterceptor.java
similarity index 83%
rename from core/src/org/jsecurity/authz/aop/AnnotationsAuthorizingMethodInterceptor.java
rename to core/src/org/ki/authz/aop/AnnotationsAuthorizingMethodInterceptor.java
index c63431c..4d61a24 100644
--- a/core/src/org/jsecurity/authz/aop/AnnotationsAuthorizingMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/AnnotationsAuthorizingMethodInterceptor.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.aop.MethodInvocation;
-import org.jsecurity.authz.AuthorizationException;
+import org.ki.aop.MethodInvocation;
+import org.ki.authz.AuthorizationException;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -48,8 +48,8 @@
     /**
      * Default no-argument constructor that defaults the 
      * {@link #methodInterceptors methodInterceptors} attribute to contain two interceptors by default - the
-     * {@link org.jsecurity.authz.aop.RoleAnnotationMethodInterceptor RoleAnnotationMethodInterceptor} and the
-     * {@link org.jsecurity.authz.aop.PermissionAnnotationMethodInterceptor PermissionAnnotationMethodInterceptor} to
+     * {@link org.ki.authz.aop.RoleAnnotationMethodInterceptor RoleAnnotationMethodInterceptor} and the
+     * {@link org.ki.authz.aop.PermissionAnnotationMethodInterceptor PermissionAnnotationMethodInterceptor} to
      * support role and permission annotations.
      */
     public AnnotationsAuthorizingMethodInterceptor() {
@@ -66,8 +66,8 @@
      * <p/>
      * Unless overridden by the {@link #setMethodInterceptors(java.util.Collection)} method, the default collection
      * contains a
-     * {@link org.jsecurity.authz.aop.RoleAnnotationMethodInterceptor RoleAnnotationMethodInterceptor} and a
-     * {@link org.jsecurity.authz.aop.PermissionAnnotationMethodInterceptor PermissionAnnotationMethodInterceptor} to
+     * {@link org.ki.authz.aop.RoleAnnotationMethodInterceptor RoleAnnotationMethodInterceptor} and a
+     * {@link org.ki.authz.aop.PermissionAnnotationMethodInterceptor PermissionAnnotationMethodInterceptor} to
      * support role and permission annotations automatically.
      * @return the method interceptors to execute for the annotated method.
      */
@@ -87,9 +87,9 @@
     /**
      * Iterates over the internal {@link #getMethodInterceptors() methodInterceptors} collection, and for each one,
      * ensures that if the interceptor
-     * {@link org.jsecurity.authz.aop.AuthorizingAnnotationMethodInterceptor#supports(org.jsecurity.aop.MethodInvocation) supports}
+     * {@link org.ki.authz.aop.AuthorizingAnnotationMethodInterceptor#supports(org.ki.aop.MethodInvocation) supports}
      * the invocation, that the interceptor
-     * {@link org.jsecurity.authz.aop.AuthorizingAnnotationMethodInterceptor#assertAuthorized(org.jsecurity.aop.MethodInvocation) asserts}
+     * {@link org.ki.authz.aop.AuthorizingAnnotationMethodInterceptor#assertAuthorized(org.ki.aop.MethodInvocation) asserts}
      * that the invocation is authorized to proceed.
      */
     protected void assertAuthorized(MethodInvocation methodInvocation) throws AuthorizationException {
diff --git a/core/src/org/jsecurity/authz/aop/AuthenticatedAnnotationHandler.java b/core/src/org/ki/authz/aop/AuthenticatedAnnotationHandler.java
similarity index 78%
rename from core/src/org/jsecurity/authz/aop/AuthenticatedAnnotationHandler.java
rename to core/src/org/ki/authz/aop/AuthenticatedAnnotationHandler.java
index e957134..b936798 100644
--- a/core/src/org/jsecurity/authz/aop/AuthenticatedAnnotationHandler.java
+++ b/core/src/org/ki/authz/aop/AuthenticatedAnnotationHandler.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.UnauthenticatedException;
-import org.jsecurity.authz.annotation.RequiresAuthentication;
+import org.ki.authz.UnauthenticatedException;
+import org.ki.authz.annotation.RequiresAuthentication;
 
 import java.lang.annotation.Annotation;
 
@@ -34,7 +34,7 @@
 
     /**
      * Default no-argument constructor that ensures this handler to process
-     * {@link org.jsecurity.authz.annotation.RequiresAuthentication RequiresAuthentication} annotations.
+     * {@link org.ki.authz.annotation.RequiresAuthentication RequiresAuthentication} annotations.
      */
     public AuthenticatedAnnotationHandler() {
         super(RequiresAuthentication.class);
@@ -42,10 +42,10 @@
 
     /**
      * Ensures that the calling <code>Subject</code> is authenticated, and if not, throws an
-     * {@link org.jsecurity.authz.UnauthenticatedException UnauthenticatedException} indicating the method is not allowed to be executed.
+     * {@link org.ki.authz.UnauthenticatedException UnauthenticatedException} indicating the method is not allowed to be executed.
      *
      * @param a the annotation to inspect
-     * @throws org.jsecurity.authz.UnauthenticatedException if the calling <code>Subject</code> has not yet
+     * @throws org.ki.authz.UnauthenticatedException if the calling <code>Subject</code> has not yet
      * authenticated.
      */
     public void assertAuthorized(Annotation a) throws UnauthenticatedException {
diff --git a/core/src/org/jsecurity/authz/aop/AuthenticatedAnnotationMethodInterceptor.java b/core/src/org/ki/authz/aop/AuthenticatedAnnotationMethodInterceptor.java
similarity index 76%
rename from core/src/org/jsecurity/authz/aop/AuthenticatedAnnotationMethodInterceptor.java
rename to core/src/org/ki/authz/aop/AuthenticatedAnnotationMethodInterceptor.java
index c9e9ec1..3cc921c 100644
--- a/core/src/org/jsecurity/authz/aop/AuthenticatedAnnotationMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/AuthenticatedAnnotationMethodInterceptor.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresAuthentication RequiresAuthenticated} annotation
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresAuthentication RequiresAuthenticated} annotation
  * is declared, and if so, ensures the calling
- * <code>Subject</code>.{@link org.jsecurity.subject.Subject#isAuthenticated() isAuthenticated()} before invoking
+ * <code>Subject</code>.{@link org.ki.subject.Subject#isAuthenticated() isAuthenticated()} before invoking
  * the method.
  *
  * @since 0.9.0
@@ -31,7 +31,7 @@
 
     /**
      * Default no-argument constructor that ensures this interceptor looks for
-     * {@link org.jsecurity.authz.annotation.RequiresAuthentication RequiresAuthentication} annotations in a method
+     * {@link org.ki.authz.annotation.RequiresAuthentication RequiresAuthentication} annotations in a method
      * declaration.
      */
     public AuthenticatedAnnotationMethodInterceptor() {
diff --git a/core/src/org/jsecurity/authz/aop/AuthorizingAnnotationHandler.java b/core/src/org/ki/authz/aop/AuthorizingAnnotationHandler.java
similarity index 88%
rename from core/src/org/jsecurity/authz/aop/AuthorizingAnnotationHandler.java
rename to core/src/org/ki/authz/aop/AuthorizingAnnotationHandler.java
index dda4eff..b10034f 100644
--- a/core/src/org/jsecurity/authz/aop/AuthorizingAnnotationHandler.java
+++ b/core/src/org/ki/authz/aop/AuthorizingAnnotationHandler.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.aop.AnnotationHandler;
-import org.jsecurity.authz.AuthorizationException;
+import org.ki.aop.AnnotationHandler;
+import org.ki.authz.AuthorizationException;
 
 import java.lang.annotation.Annotation;
 
@@ -50,7 +50,7 @@
      * and perform a corresponding authorization check based.
      *
      * @param a the <code>Annotation</code> to check for performing an authorization check.
-     * @throws org.jsecurity.authz.AuthorizationException if the class/instance/method is not allowed to proceed/execute.
+     * @throws org.ki.authz.AuthorizationException if the class/instance/method is not allowed to proceed/execute.
      */
     public abstract void assertAuthorized(Annotation a) throws AuthorizationException;
 }
diff --git a/core/src/org/jsecurity/authz/aop/AuthorizingAnnotationMethodInterceptor.java b/core/src/org/ki/authz/aop/AuthorizingAnnotationMethodInterceptor.java
similarity index 89%
rename from core/src/org/jsecurity/authz/aop/AuthorizingAnnotationMethodInterceptor.java
rename to core/src/org/ki/authz/aop/AuthorizingAnnotationMethodInterceptor.java
index a04aa53..c067684 100644
--- a/core/src/org/jsecurity/authz/aop/AuthorizingAnnotationMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/AuthorizingAnnotationMethodInterceptor.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.aop.AnnotationMethodInterceptor;
-import org.jsecurity.aop.MethodInvocation;
-import org.jsecurity.authz.AuthorizationException;
+import org.ki.aop.AnnotationMethodInterceptor;
+import org.ki.aop.MethodInvocation;
+import org.ki.authz.AuthorizationException;
 
 /**
  * An <tt>AnnotationMethodInterceptor</tt> that asserts the calling code is authorized to execute the method
@@ -43,10 +43,10 @@
 
     /**
      * Ensures the <code>methodInvocation</code> is allowed to execute first before proceeding by calling the
-     * {@link #assertAuthorized(org.jsecurity.aop.MethodInvocation) assertAuthorized} method first.
+     * {@link #assertAuthorized(org.ki.aop.MethodInvocation) assertAuthorized} method first.
      *
      * @param methodInvocation the method invocation to check for authorization prior to allowing it to proceed/execute.
-     * @return the return value from the method invocation (the value of {@link org.jsecurity.aop.MethodInvocation#proceed() MethodInvocation.proceed()}).
+     * @return the return value from the method invocation (the value of {@link org.ki.aop.MethodInvocation#proceed() MethodInvocation.proceed()}).
      * @throws AuthorizationException if the <code>MethodInvocation</code> is not allowed to proceed.
      * @throws Throwable if any other error occurs.
      */
diff --git a/core/src/org/jsecurity/authz/aop/AuthorizingMethodInterceptor.java b/core/src/org/ki/authz/aop/AuthorizingMethodInterceptor.java
similarity index 84%
rename from core/src/org/jsecurity/authz/aop/AuthorizingMethodInterceptor.java
rename to core/src/org/ki/authz/aop/AuthorizingMethodInterceptor.java
index 62b4747..d1f910f 100644
--- a/core/src/org/jsecurity/authz/aop/AuthorizingMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/AuthorizingMethodInterceptor.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.aop.MethodInterceptorSupport;
-import org.jsecurity.aop.MethodInvocation;
-import org.jsecurity.authz.AuthorizationException;
+import org.ki.aop.MethodInterceptorSupport;
+import org.ki.aop.MethodInvocation;
+import org.ki.authz.AuthorizationException;
 
 /**
  * Basic abstract class to support intercepting methods that perform authorization (access control) checks.
@@ -31,9 +31,9 @@
 public abstract class AuthorizingMethodInterceptor extends MethodInterceptorSupport {
 
     /**
-     * Invokes the specified method (<code>methodInvocation.{@link org.jsecurity.aop.MethodInvocation#proceed proceed}()</code>
+     * Invokes the specified method (<code>methodInvocation.{@link org.ki.aop.MethodInvocation#proceed proceed}()</code>
      * if authorization is allowed by first
-     * calling {@link #assertAuthorized(org.jsecurity.aop.MethodInvocation) assertAuthorized}.
+     * calling {@link #assertAuthorized(org.ki.aop.MethodInvocation) assertAuthorized}.
      */
     public Object invoke(MethodInvocation methodInvocation) throws Throwable {
         assertAuthorized(methodInvocation);
diff --git a/core/src/org/jsecurity/authz/aop/GuestAnnotationHandler.java b/core/src/org/ki/authz/aop/GuestAnnotationHandler.java
similarity index 71%
rename from core/src/org/jsecurity/authz/aop/GuestAnnotationHandler.java
rename to core/src/org/ki/authz/aop/GuestAnnotationHandler.java
index 716a954..2e7a4a4 100644
--- a/core/src/org/jsecurity/authz/aop/GuestAnnotationHandler.java
+++ b/core/src/org/ki/authz/aop/GuestAnnotationHandler.java
@@ -16,20 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.UnauthenticatedException;
-import org.jsecurity.authz.annotation.RequiresGuest;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.UnauthenticatedException;
+import org.ki.authz.annotation.RequiresGuest;
 
 import java.lang.annotation.Annotation;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresGuest RequiresGuest} annotation
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresGuest RequiresGuest} annotation
  * is declared, and if so, ensures the calling <code>Subject</code> does <em>not</em>
- * have an {@link org.jsecurity.subject.Subject#getPrincipal() identity} before invoking the method.
+ * have an {@link org.ki.subject.Subject#getPrincipal() identity} before invoking the method.
  * <p>
- * This annotation essentially ensures that <code>subject.{@link org.jsecurity.subject.Subject#getPrincipal() getPrincipal()} == null</code>.
+ * This annotation essentially ensures that <code>subject.{@link org.ki.subject.Subject#getPrincipal() getPrincipal()} == null</code>.
  *
  * @author Les Hazlewood
  * @since 0.9.0
@@ -39,7 +39,7 @@
     /**
      * Default no-argument constructor that ensures this interceptor looks for
      *
-     * {@link org.jsecurity.authz.annotation.RequiresGuest RequiresGuest} annotations in a method
+     * {@link org.ki.authz.annotation.RequiresGuest RequiresGuest} annotations in a method
      * declaration.
      */
     public GuestAnnotationHandler() {
@@ -48,12 +48,12 @@
 
     /**
      * Ensures that the calling <code>Subject</code> is NOT a <em>user</em>, that is, they do not
-     * have an {@link org.jsecurity.subject.Subject#getPrincipal() identity} before continuing.  If they are
-     * a user ({@link org.jsecurity.subject.Subject#getPrincipal() Subject.getPrincipal()} != null), an
+     * have an {@link org.ki.subject.Subject#getPrincipal() identity} before continuing.  If they are
+     * a user ({@link org.ki.subject.Subject#getPrincipal() Subject.getPrincipal()} != null), an
      * <code>AuthorizingException</code> will be thrown indicating that execution is not allowed to continue.
      *
      * @param a the annotation to check for one or more roles
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *          if the calling <code>Subject</code> is not a &quot;guest&quot;.
      */
     public void assertAuthorized(Annotation a) throws AuthorizationException {
diff --git a/core/src/org/jsecurity/authz/aop/GuestAnnotationMethodInterceptor.java b/core/src/org/ki/authz/aop/GuestAnnotationMethodInterceptor.java
similarity index 76%
rename from core/src/org/jsecurity/authz/aop/GuestAnnotationMethodInterceptor.java
rename to core/src/org/ki/authz/aop/GuestAnnotationMethodInterceptor.java
index 46b1ced..5808ede 100644
--- a/core/src/org/jsecurity/authz/aop/GuestAnnotationMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/GuestAnnotationMethodInterceptor.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresGuest RequiresGuest} annotation
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresGuest RequiresGuest} annotation
  * is declared, and if so, ensures the calling <code>Subject</code> does <em>not</em>
- * have an {@link org.jsecurity.subject.Subject#getPrincipal() identity} before invoking the method.
+ * have an {@link org.ki.subject.Subject#getPrincipal() identity} before invoking the method.
  * <p>
- * This annotation essentially ensures that <code>subject.{@link org.jsecurity.subject.Subject#getPrincipal() getPrincipal()} == null</code>.
+ * This annotation essentially ensures that <code>subject.{@link org.ki.subject.Subject#getPrincipal() getPrincipal()} == null</code>.
  *
  * @author Les Hazlewood
  * @since 0.9.0
@@ -32,7 +32,7 @@
 
     /**
      * Default no-argument constructor that ensures this interceptor looks for
-     * {@link org.jsecurity.authz.annotation.RequiresGuest RequiresGuest} annotations in a method
+     * {@link org.ki.authz.annotation.RequiresGuest RequiresGuest} annotations in a method
      * declaration.
      */
     public GuestAnnotationMethodInterceptor() {
diff --git a/core/src/org/jsecurity/authz/aop/PermissionAnnotationHandler.java b/core/src/org/ki/authz/aop/PermissionAnnotationHandler.java
similarity index 83%
rename from core/src/org/jsecurity/authz/aop/PermissionAnnotationHandler.java
rename to core/src/org/ki/authz/aop/PermissionAnnotationHandler.java
index f92967a..a33d59b 100644
--- a/core/src/org/jsecurity/authz/aop/PermissionAnnotationHandler.java
+++ b/core/src/org/ki/authz/aop/PermissionAnnotationHandler.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.UnauthorizedException;
-import org.jsecurity.authz.annotation.RequiresPermissions;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.PermissionUtils;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.UnauthorizedException;
+import org.ki.authz.annotation.RequiresPermissions;
+import org.ki.subject.Subject;
+import org.ki.util.PermissionUtils;
 
 import java.lang.annotation.Annotation;
 import java.util.Set;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresPermissions RequiresPermissions} annotation is
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresPermissions RequiresPermissions} annotation is
  * declared, and if so, performs a permission check to see if the calling <code>Subject</code> is allowed continued
  * access.
  *
@@ -39,7 +39,7 @@
 
     /**
      * Default no-argument constructor that ensures this handler looks for
-     * {@link org.jsecurity.authz.annotation.RequiresPermissions RequiresPermissions} annotations.
+     * {@link org.ki.authz.annotation.RequiresPermissions RequiresPermissions} annotations.
      */
     public PermissionAnnotationHandler() {
         super(RequiresPermissions.class);
@@ -61,7 +61,7 @@
      * <code>AuthorizingException</code> indicating access is denied.
      *
      * @param a the RequiresPermission annotation being inspected to check for one or more permissions
-     * @throws org.jsecurity.authz.AuthorizationException if the calling <code>Subject</code> does not have the permission(s) necessary to
+     * @throws org.ki.authz.AuthorizationException if the calling <code>Subject</code> does not have the permission(s) necessary to
      * continue access or execution.
      */
     public void assertAuthorized(Annotation a) throws AuthorizationException {
diff --git a/core/src/org/jsecurity/authz/aop/PermissionAnnotationMethodInterceptor.java b/core/src/org/ki/authz/aop/PermissionAnnotationMethodInterceptor.java
similarity index 97%
rename from core/src/org/jsecurity/authz/aop/PermissionAnnotationMethodInterceptor.java
rename to core/src/org/ki/authz/aop/PermissionAnnotationMethodInterceptor.java
index 1385e81..f5aa201 100644
--- a/core/src/org/jsecurity/authz/aop/PermissionAnnotationMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/PermissionAnnotationMethodInterceptor.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.annotation.RequiresPermissions;
+import org.ki.authz.annotation.RequiresPermissions;
 
 /**
  * Checks to see if a @{@link RequiresPermissions RequiresPermissions} annotation is declared, and if so, performs
diff --git a/core/src/org/jsecurity/authz/aop/RoleAnnotationHandler.java b/core/src/org/ki/authz/aop/RoleAnnotationHandler.java
similarity index 82%
rename from core/src/org/jsecurity/authz/aop/RoleAnnotationHandler.java
rename to core/src/org/ki/authz/aop/RoleAnnotationHandler.java
index 7532267..08d5505 100644
--- a/core/src/org/jsecurity/authz/aop/RoleAnnotationHandler.java
+++ b/core/src/org/ki/authz/aop/RoleAnnotationHandler.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.UnauthorizedException;
-import org.jsecurity.authz.annotation.RequiresRoles;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.UnauthorizedException;
+import org.ki.authz.annotation.RequiresRoles;
 
 import java.lang.annotation.Annotation;
 import java.util.Arrays;
@@ -28,7 +28,7 @@
 import java.util.Set;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresRoles RequiresRoles} annotation is declared, and if so, performs
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresRoles RequiresRoles} annotation is declared, and if so, performs
  * a role check to see if the calling <code>Subject</code> is allowed to proceed.
  *
  * @author Les Hazlewood
@@ -38,7 +38,7 @@
 
     /**
      * Default no-argument constructor that ensures this handler looks for
-     * {@link org.jsecurity.authz.annotation.RequiresRoles RequiresRoles} annotations.
+     * {@link org.ki.authz.annotation.RequiresRoles RequiresRoles} annotations.
      */
     public RoleAnnotationHandler() {
         super(RequiresRoles.class);
@@ -49,7 +49,7 @@
      * <code>AuthorizingException</code> indicating that access is denied.
      *
      * @param a the RequiresRoles annotation to use to check for one or more roles
-     * @throws org.jsecurity.authz.AuthorizationException if the calling <code>Subject</code> does not have the role(s) necessary to
+     * @throws org.ki.authz.AuthorizationException if the calling <code>Subject</code> does not have the role(s) necessary to
      * proceed.
      */
     public void assertAuthorized(Annotation a) throws AuthorizationException {
diff --git a/core/src/org/jsecurity/authz/aop/RoleAnnotationMethodInterceptor.java b/core/src/org/ki/authz/aop/RoleAnnotationMethodInterceptor.java
similarity index 94%
rename from core/src/org/jsecurity/authz/aop/RoleAnnotationMethodInterceptor.java
rename to core/src/org/ki/authz/aop/RoleAnnotationMethodInterceptor.java
index 683ef8a..2643694 100644
--- a/core/src/org/jsecurity/authz/aop/RoleAnnotationMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/RoleAnnotationMethodInterceptor.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.annotation.RequiresRoles;
+import org.ki.authz.annotation.RequiresRoles;
 
 /**
  * Checks to see if a @{@link RequiresRoles RequiresRoles} annotation is declared, and if so, performs
diff --git a/core/src/org/jsecurity/authz/aop/UserAnnotationHandler.java b/core/src/org/ki/authz/aop/UserAnnotationHandler.java
similarity index 74%
rename from core/src/org/jsecurity/authz/aop/UserAnnotationHandler.java
rename to core/src/org/ki/authz/aop/UserAnnotationHandler.java
index 57d9165..ceb1fbd 100644
--- a/core/src/org/jsecurity/authz/aop/UserAnnotationHandler.java
+++ b/core/src/org/ki/authz/aop/UserAnnotationHandler.java
@@ -16,21 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.UnauthenticatedException;
-import org.jsecurity.authz.annotation.RequiresUser;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.UnauthenticatedException;
+import org.ki.authz.annotation.RequiresUser;
 
 import java.lang.annotation.Annotation;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresUser RequiresUser} annotation
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresUser RequiresUser} annotation
  * is declared, and if so, ensures the calling <code>Subject</code> is <em>either</em>
- * {@link org.jsecurity.subject.Subject#isAuthenticated() authenticated} <b><em>or</em></b> remembered via remember
+ * {@link org.ki.subject.Subject#isAuthenticated() authenticated} <b><em>or</em></b> remembered via remember
  * me services before allowing access.
  * <p>
- * This annotation essentially ensures that <code>subject.{@link org.jsecurity.subject.Subject#getPrincipal() getPrincipal()} != null</code>.
+ * This annotation essentially ensures that <code>subject.{@link org.ki.subject.Subject#getPrincipal() getPrincipal()} != null</code>.
  *
  * @author Les Hazlewood
  * @since 0.9.0
@@ -40,7 +40,7 @@
     /**
      * Default no-argument constructor that ensures this handler looks for
      *
-     * {@link org.jsecurity.authz.annotation.RequiresUser RequiresUser} annotations.
+     * {@link org.ki.authz.annotation.RequiresUser RequiresUser} annotations.
      */
     public UserAnnotationHandler() {
         super(RequiresUser.class);
@@ -48,12 +48,12 @@
 
     /**
      * Ensures that the calling <code>Subject</code> is a <em>user</em>, that is, they are <em>either</code>
-     * {@link org.jsecurity.subject.Subject#isAuthenticated() authenticated} <b><em>or</em></b> remembered via remember
+     * {@link org.ki.subject.Subject#isAuthenticated() authenticated} <b><em>or</em></b> remembered via remember
      * me services before allowing access, and if not, throws an
      * <code>AuthorizingException</code> indicating access is not allowed.
      *
      * @param a the RequiresUser annotation to check
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *         if the calling <code>Subject</code> is not authenticated or remembered via rememberMe services.
      */
     public void assertAuthorized(Annotation a) throws AuthorizationException {
diff --git a/core/src/org/jsecurity/authz/aop/UserAnnotationMethodInterceptor.java b/core/src/org/ki/authz/aop/UserAnnotationMethodInterceptor.java
similarity index 76%
rename from core/src/org/jsecurity/authz/aop/UserAnnotationMethodInterceptor.java
rename to core/src/org/ki/authz/aop/UserAnnotationMethodInterceptor.java
index 374c726..62789ee 100644
--- a/core/src/org/jsecurity/authz/aop/UserAnnotationMethodInterceptor.java
+++ b/core/src/org/ki/authz/aop/UserAnnotationMethodInterceptor.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.aop;
+package org.ki.authz.aop;
 
 /**
- * Checks to see if a @{@link org.jsecurity.authz.annotation.RequiresUser RequiresUser} annotation
+ * Checks to see if a @{@link org.ki.authz.annotation.RequiresUser RequiresUser} annotation
  * is declared, and if so, ensures the calling <code>Subject</code> is <em>either</em>
- * {@link org.jsecurity.subject.Subject#isAuthenticated() authenticated} <b><em>or</em></b> remembered via remember
+ * {@link org.ki.subject.Subject#isAuthenticated() authenticated} <b><em>or</em></b> remembered via remember
  * me services before invoking the method.
  * <p>
- * This annotation essentially ensures that <code>subject.{@link org.jsecurity.subject.Subject#getPrincipal() getPrincipal()} != null</code>.
+ * This annotation essentially ensures that <code>subject.{@link org.ki.subject.Subject#getPrincipal() getPrincipal()} != null</code>.
  *
  * @author Les Hazlewood
  * @since 0.9.0
@@ -34,7 +34,7 @@
     /**
      * Default no-argument constructor that ensures this interceptor looks for
      *
-     * {@link org.jsecurity.authz.annotation.RequiresUser RequiresUser} annotations in a method
+     * {@link org.ki.authz.annotation.RequiresUser RequiresUser} annotations in a method
      * declaration.
      */
     public UserAnnotationMethodInterceptor() {
diff --git a/core/src/org/jsecurity/authz/aop/package-info.java b/core/src/org/ki/authz/aop/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/authz/aop/package-info.java
rename to core/src/org/ki/authz/aop/package-info.java
index 8519138..c2a4a77 100644
--- a/core/src/org/jsecurity/authz/aop/package-info.java
+++ b/core/src/org/ki/authz/aop/package-info.java
@@ -20,4 +20,4 @@
  * Contains AOP implementation support classes specifically used for authorization operations, particularly supporting

  * AOP Method Interceptors and JSR-175 metadata Annotations.

  */

-package org.jsecurity.authz.aop;
\ No newline at end of file
+package org.ki.authz.aop;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authz/package-info.java b/core/src/org/ki/authz/package-info.java
similarity index 98%
rename from core/src/org/jsecurity/authz/package-info.java
rename to core/src/org/ki/authz/package-info.java
index 6a76ee6..66550b2 100644
--- a/core/src/org/jsecurity/authz/package-info.java
+++ b/core/src/org/ki/authz/package-info.java
@@ -35,4 +35,4 @@
  * Although it is possible for applications to implement this and other interfaces directly, it is not

  * recommended. JSecurity already has base implementations which should be suitable for 99% of deployments.

  */

-package org.jsecurity.authz;
\ No newline at end of file
+package org.ki.authz;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/authz/permission/AllPermission.java b/core/src/org/ki/authz/permission/AllPermission.java
similarity index 95%
rename from core/src/org/jsecurity/authz/permission/AllPermission.java
rename to core/src/org/ki/authz/permission/AllPermission.java
index baac423..cd77d62 100644
--- a/core/src/org/jsecurity/authz/permission/AllPermission.java
+++ b/core/src/org/ki/authz/permission/AllPermission.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
-import org.jsecurity.authz.Permission;
+import org.ki.authz.Permission;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/authz/permission/InvalidPermissionStringException.java b/core/src/org/ki/authz/permission/InvalidPermissionStringException.java
similarity index 95%
rename from core/src/org/jsecurity/authz/permission/InvalidPermissionStringException.java
rename to core/src/org/ki/authz/permission/InvalidPermissionStringException.java
index 520b1ea..ae84102 100644
--- a/core/src/org/jsecurity/authz/permission/InvalidPermissionStringException.java
+++ b/core/src/org/ki/authz/permission/InvalidPermissionStringException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Thrown by {@link PermissionResolver#resolvePermission(String)} when the String being parsed is not
diff --git a/core/src/org/jsecurity/authz/permission/PermissionResolver.java b/core/src/org/ki/authz/permission/PermissionResolver.java
similarity index 76%
rename from core/src/org/jsecurity/authz/permission/PermissionResolver.java
rename to core/src/org/ki/authz/permission/PermissionResolver.java
index 5d34ffb..5321cd1 100644
--- a/core/src/org/jsecurity/authz/permission/PermissionResolver.java
+++ b/core/src/org/ki/authz/permission/PermissionResolver.java
@@ -16,18 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
-import org.jsecurity.authz.Permission;
+import org.ki.authz.Permission;
 
 /**
  * <p>A PermisisonResolver resolves a String value and converts it into a
- * {@link org.jsecurity.authz.Permission} instance.
+ * {@link org.ki.authz.Permission} instance.
  *
- * <p>The default {@link org.jsecurity.authz.permission.WildcardPermissionResolver} should be
- * suitable for most purposes, which constructs {@link org.jsecurity.authz.permission.WildcardPermission} objects.
+ * <p>The default {@link org.ki.authz.permission.WildcardPermissionResolver} should be
+ * suitable for most purposes, which constructs {@link org.ki.authz.permission.WildcardPermission} objects.
  * However, any resolver may be configured if an application wishes to use different
- * {@link org.jsecurity.authz.Permission} implementations.</p>
+ * {@link org.ki.authz.Permission} implementations.</p>
  *
  * <p>A <tt>PermissionResolver</tt> is used by many JSecurity components such as annotations, property file
  * configuration, URL configuration, etc.  It is useful whenever a String representation of a permission is specified
@@ -44,9 +44,9 @@
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see org.jsecurity.mgt.AuthorizingSecurityManager#setPermissionResolver(PermissionResolver) AuthorizingSecurityManager.setPermissionResolver
- * @see org.jsecurity.authz.ModularRealmAuthorizer#setPermissionResolver(PermissionResolver) ModularRealmAuthorizer.setPermissionResolver
- * @see org.jsecurity.realm.AuthorizingRealm#setPermissionResolver(PermissionResolver) AuthorizingRealm.setPermissionResolver
+ * @see org.ki.mgt.AuthorizingSecurityManager#setPermissionResolver(PermissionResolver) AuthorizingSecurityManager.setPermissionResolver
+ * @see org.ki.authz.ModularRealmAuthorizer#setPermissionResolver(PermissionResolver) ModularRealmAuthorizer.setPermissionResolver
+ * @see org.ki.realm.AuthorizingRealm#setPermissionResolver(PermissionResolver) AuthorizingRealm.setPermissionResolver
  * @see PermissionResolverAware PermissionResolverAware
  * @since 0.9
  */
diff --git a/core/src/org/jsecurity/authz/permission/PermissionResolverAware.java b/core/src/org/ki/authz/permission/PermissionResolverAware.java
similarity index 84%
rename from core/src/org/jsecurity/authz/permission/PermissionResolverAware.java
rename to core/src/org/ki/authz/permission/PermissionResolverAware.java
index f82e369..1a38762 100644
--- a/core/src/org/jsecurity/authz/permission/PermissionResolverAware.java
+++ b/core/src/org/ki/authz/permission/PermissionResolverAware.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
 /**
  * Interface implemented by a component that wishes to use any application-configured <tt>PermissionResolver</tt> that
  * might already exist instead of potentially creating one itself.
  *
- * <p>This is mostly implemented by {@link org.jsecurity.authz.Authorizer Authorizer} and
- * {@link org.jsecurity.realm.Realm Realm} implementations since they
+ * <p>This is mostly implemented by {@link org.ki.authz.Authorizer Authorizer} and
+ * {@link org.ki.realm.Realm Realm} implementations since they
  * are the ones performing permission checks and need to know how to resolve Strings into
- * {@link org.jsecurity.authz.Permission Permission} instances.
+ * {@link org.ki.authz.Permission Permission} instances.
  *
  * @author Les Hazlewood
  * @since 0.9
diff --git a/core/src/org/jsecurity/authz/permission/WildcardPermission.java b/core/src/org/ki/authz/permission/WildcardPermission.java
similarity index 98%
rename from core/src/org/jsecurity/authz/permission/WildcardPermission.java
rename to core/src/org/ki/authz/permission/WildcardPermission.java
index 09eb1cb..32a2202 100644
--- a/core/src/org/jsecurity/authz/permission/WildcardPermission.java
+++ b/core/src/org/ki/authz/permission/WildcardPermission.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
-import org.jsecurity.authz.Permission;
-import org.jsecurity.util.CollectionUtils;
+import org.ki.authz.Permission;
+import org.ki.util.CollectionUtils;
 
 import java.io.Serializable;
 import java.util.ArrayList;
diff --git a/core/src/org/jsecurity/authz/permission/WildcardPermissionResolver.java b/core/src/org/ki/authz/permission/WildcardPermissionResolver.java
similarity index 95%
rename from core/src/org/jsecurity/authz/permission/WildcardPermissionResolver.java
rename to core/src/org/ki/authz/permission/WildcardPermissionResolver.java
index f40e05a..3d728af 100644
--- a/core/src/org/jsecurity/authz/permission/WildcardPermissionResolver.java
+++ b/core/src/org/ki/authz/permission/WildcardPermissionResolver.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
-import org.jsecurity.authz.Permission;
+import org.ki.authz.Permission;
 
 /**
  * <tt>PermissionResolver</tt> implementation that returns a new {@link WildcardPermission WildcardPermission}
diff --git a/core/src/org/jsecurity/authz/permission/package-info.java b/core/src/org/ki/authz/permission/package-info.java
similarity index 80%
rename from core/src/org/jsecurity/authz/permission/package-info.java
rename to core/src/org/ki/authz/permission/package-info.java
index fededfd..b1f5c9e 100644
--- a/core/src/org/jsecurity/authz/permission/package-info.java
+++ b/core/src/org/ki/authz/permission/package-info.java
@@ -17,11 +17,11 @@
  * under the License.

  */

 /**

- * Support and default implementations for JSecurity's {@link org.jsecurity.authz.Permission Permission}

+ * Support and default implementations for JSecurity's {@link org.ki.authz.Permission Permission}

  * interface.

  * <p/>

- * Also note the {@link org.jsecurity.authz.permission.PermissionResolver PermissionResolver} interface, as

- * it plays an important part in many of JSecurity's {@link org.jsecurity.realm.Realm Realm} implementations

+ * Also note the {@link org.ki.authz.permission.PermissionResolver PermissionResolver} interface, as

+ * it plays an important part in many of JSecurity's {@link org.ki.realm.Realm Realm} implementations

  * and AOP support.

  */

-package org.jsecurity.authz.permission;
\ No newline at end of file
+package org.ki.authz.permission;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/cache/Cache.java b/core/src/org/ki/cache/Cache.java
similarity index 98%
rename from core/src/org/jsecurity/cache/Cache.java
rename to core/src/org/ki/cache/Cache.java
index 4de9c6c..cf625d6 100644
--- a/core/src/org/jsecurity/cache/Cache.java
+++ b/core/src/org/ki/cache/Cache.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.cache;

+package org.ki.cache;

 

 import java.util.Set;

 

diff --git a/core/src/org/jsecurity/cache/CacheException.java b/core/src/org/ki/cache/CacheException.java
similarity index 96%
rename from core/src/org/jsecurity/cache/CacheException.java
rename to core/src/org/ki/cache/CacheException.java
index 32fc3f9..06af634 100644
--- a/core/src/org/jsecurity/cache/CacheException.java
+++ b/core/src/org/ki/cache/CacheException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.cache;

+package org.ki.cache;

 

-import org.jsecurity.JSecurityException;

+import org.ki.JSecurityException;

 

 /**

  * Root class of all JSecurity exceptions related to caching operations.

diff --git a/core/src/org/jsecurity/cache/CacheManager.java b/core/src/org/ki/cache/CacheManager.java
similarity index 98%
rename from core/src/org/jsecurity/cache/CacheManager.java
rename to core/src/org/ki/cache/CacheManager.java
index 5a4054c..bfd7b01 100644
--- a/core/src/org/jsecurity/cache/CacheManager.java
+++ b/core/src/org/ki/cache/CacheManager.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.cache;

+package org.ki.cache;

 

 /**

  * A CacheManager provides and maintains the lifecycles of {@link Cache Cache} instances.

diff --git a/core/src/org/jsecurity/cache/CacheManagerAware.java b/core/src/org/ki/cache/CacheManagerAware.java
similarity index 97%
rename from core/src/org/jsecurity/cache/CacheManagerAware.java
rename to core/src/org/ki/cache/CacheManagerAware.java
index 515e480..5b59393 100644
--- a/core/src/org/jsecurity/cache/CacheManagerAware.java
+++ b/core/src/org/ki/cache/CacheManagerAware.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.cache;
+package org.ki.cache;
 
 /**
  * Interface implemented by components that utilize a CacheManager and wish that CacheManager to be supplied if
diff --git a/core/src/org/jsecurity/cache/DefaultCacheManager.java b/core/src/org/ki/cache/DefaultCacheManager.java
similarity index 90%
rename from core/src/org/jsecurity/cache/DefaultCacheManager.java
rename to core/src/org/ki/cache/DefaultCacheManager.java
index daabc92..1655f78 100644
--- a/core/src/org/jsecurity/cache/DefaultCacheManager.java
+++ b/core/src/org/ki/cache/DefaultCacheManager.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.cache;
+package org.ki.cache;
 
-import org.jsecurity.util.Destroyable;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.util.Destroyable;
+import org.ki.util.LifecycleUtils;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -29,7 +29,7 @@
  * <p/>
  * This implementation does not offer any enterprise-level features such as cache coherency, optimistic locking,
  * failover or other similar features.  It relies on memory-based {@link java.util.Map Map} caches.  For more
- * enterprise features, consider using an {@link org.jsecurity.cache.ehcache.EhCacheManager EhCacheManager} or other
+ * enterprise features, consider using an {@link org.ki.cache.ehcache.EhCacheManager EhCacheManager} or other
  * similar implementation that wraps an enterprise-grade Caching solution.
  *
  * @author Les Hazlewood
diff --git a/core/src/org/jsecurity/cache/HashtableCache.java b/core/src/org/ki/cache/HashtableCache.java
similarity index 98%
rename from core/src/org/jsecurity/cache/HashtableCache.java
rename to core/src/org/ki/cache/HashtableCache.java
index bfd8b35..71ed0a7 100644
--- a/core/src/org/jsecurity/cache/HashtableCache.java
+++ b/core/src/org/ki/cache/HashtableCache.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.cache;

+package org.ki.cache;

 

 import java.util.Hashtable;

 

diff --git a/core/src/org/jsecurity/cache/HashtableCacheManager.java b/core/src/org/ki/cache/HashtableCacheManager.java
similarity index 97%
rename from core/src/org/jsecurity/cache/HashtableCacheManager.java
rename to core/src/org/ki/cache/HashtableCacheManager.java
index c237b37..75db3ea 100644
--- a/core/src/org/jsecurity/cache/HashtableCacheManager.java
+++ b/core/src/org/ki/cache/HashtableCacheManager.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.cache;

+package org.ki.cache;

 

 /**

  * A {@link CacheManager} that returns {@link HashtableCache} caches.

diff --git a/core/src/org/jsecurity/cache/MapCache.java b/core/src/org/ki/cache/MapCache.java
similarity index 97%
rename from core/src/org/jsecurity/cache/MapCache.java
rename to core/src/org/ki/cache/MapCache.java
index 8b1fa08..4594717 100644
--- a/core/src/org/jsecurity/cache/MapCache.java
+++ b/core/src/org/ki/cache/MapCache.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.cache;
+package org.ki.cache;
 
-import org.jsecurity.util.Destroyable;
+import org.ki.util.Destroyable;
 
 import java.util.*;
 
diff --git a/core/src/org/jsecurity/cache/SoftHashMapCache.java b/core/src/org/ki/cache/SoftHashMapCache.java
similarity index 95%
rename from core/src/org/jsecurity/cache/SoftHashMapCache.java
rename to core/src/org/ki/cache/SoftHashMapCache.java
index 6fa2f11..2888dd0 100644
--- a/core/src/org/jsecurity/cache/SoftHashMapCache.java
+++ b/core/src/org/ki/cache/SoftHashMapCache.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.cache;
+package org.ki.cache;
 
-import org.jsecurity.util.SoftHashMap;
+import org.ki.util.SoftHashMap;
 
 /**
  * A MapCache that uses a {@link SoftHashMap SoftHashMap} as its backing map.
diff --git a/core/src/org/jsecurity/cache/package-info.java b/core/src/org/ki/cache/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/cache/package-info.java
rename to core/src/org/ki/cache/package-info.java
index eddc83d..1ec1df8 100644
--- a/core/src/org/jsecurity/cache/package-info.java
+++ b/core/src/org/ki/cache/package-info.java
@@ -19,4 +19,4 @@
 /**
  * Caching support used to enhance performance for any security operation.
  */
-package org.jsecurity.cache;
\ No newline at end of file
+package org.ki.cache;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/codec/Base64.java b/core/src/org/ki/codec/Base64.java
similarity index 99%
rename from core/src/org/jsecurity/codec/Base64.java
rename to core/src/org/ki/codec/Base64.java
index 36a68e5..1577a23 100644
--- a/core/src/org/jsecurity/codec/Base64.java
+++ b/core/src/org/ki/codec/Base64.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.codec;
+package org.ki.codec;
 
 /**
  * Provides Base64 encoding and decoding as defined by RFC 2045.
diff --git a/core/src/org/jsecurity/codec/CodecException.java b/core/src/org/ki/codec/CodecException.java
similarity index 95%
rename from core/src/org/jsecurity/codec/CodecException.java
rename to core/src/org/ki/codec/CodecException.java
index 2f46bc5..2d94f41 100644
--- a/core/src/org/jsecurity/codec/CodecException.java
+++ b/core/src/org/ki/codec/CodecException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.codec;
+package org.ki.codec;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Root exception related to issues during encoding or decoding.
diff --git a/core/src/org/jsecurity/codec/CodecSupport.java b/core/src/org/ki/codec/CodecSupport.java
similarity index 99%
rename from core/src/org/jsecurity/codec/CodecSupport.java
rename to core/src/org/ki/codec/CodecSupport.java
index 5ddd281..5822e6c 100644
--- a/core/src/org/jsecurity/codec/CodecSupport.java
+++ b/core/src/org/ki/codec/CodecSupport.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.codec;
+package org.ki.codec;
 
 import java.io.*;
 
diff --git a/core/src/org/jsecurity/codec/Hex.java b/core/src/org/ki/codec/Hex.java
similarity index 99%
rename from core/src/org/jsecurity/codec/Hex.java
rename to core/src/org/ki/codec/Hex.java
index 85502fd..803f8cf 100644
--- a/core/src/org/jsecurity/codec/Hex.java
+++ b/core/src/org/ki/codec/Hex.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.codec;
+package org.ki.codec;
 
 /**
  * Hex encoder and decoder.
diff --git a/core/src/org/jsecurity/codec/package-info.java b/core/src/org/ki/codec/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/codec/package-info.java
rename to core/src/org/ki/codec/package-info.java
index 3f1350e..da22a3a 100644
--- a/core/src/org/jsecurity/codec/package-info.java
+++ b/core/src/org/ki/codec/package-info.java
@@ -20,4 +20,4 @@
  * Components for encoding and decoding of data across multiple formats, especially useful in JSecurity's
  * cryptography and web functionality.
  */
-package org.jsecurity.codec;
\ No newline at end of file
+package org.ki.codec;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/config/Configuration.java b/core/src/org/ki/config/Configuration.java
similarity index 86%
rename from core/src/org/jsecurity/config/Configuration.java
rename to core/src/org/ki/config/Configuration.java
index f07dc13..a1eea27 100644
--- a/core/src/org/jsecurity/config/Configuration.java
+++ b/core/src/org/ki/config/Configuration.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

-import org.jsecurity.mgt.SecurityManagerFactory;

+import org.ki.mgt.SecurityManagerFactory;

 

 /**

  * A <code>Configuration</code> is responsible for 'wiring' together all the JSecurity components for an

- * application, such as the {@link org.jsecurity.mgt.SecurityManager SecurityManager}, and any of its

+ * application, such as the {@link org.ki.mgt.SecurityManager SecurityManager}, and any of its

  * dependencies.

  * <p/>

  * Once the SecurityManager is built by the <code>Configuration</code> it is then consulted for all security

diff --git a/core/src/org/jsecurity/config/ConfigurationException.java b/core/src/org/ki/config/ConfigurationException.java
similarity index 96%
rename from core/src/org/jsecurity/config/ConfigurationException.java
rename to core/src/org/ki/config/ConfigurationException.java
index f697395..8880670 100644
--- a/core/src/org/jsecurity/config/ConfigurationException.java
+++ b/core/src/org/ki/config/ConfigurationException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

-import org.jsecurity.JSecurityException;

+import org.ki.JSecurityException;

 

 /**

  * Root exception indicating there was a problem parsing or processing the JSecurity configuration.

diff --git a/core/src/org/jsecurity/config/IniConfiguration.java b/core/src/org/ki/config/IniConfiguration.java
similarity index 94%
rename from core/src/org/jsecurity/config/IniConfiguration.java
rename to core/src/org/ki/config/IniConfiguration.java
index 958f25d..5b3fe1f 100644
--- a/core/src/org/jsecurity/config/IniConfiguration.java
+++ b/core/src/org/ki/config/IniConfiguration.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.JSecurityException;

-import org.jsecurity.io.IniResource;

-import org.jsecurity.io.ResourceUtils;

-import org.jsecurity.mgt.DefaultSecurityManager;

-import org.jsecurity.mgt.RealmSecurityManager;

-import org.jsecurity.mgt.SecurityManager;

-import org.jsecurity.realm.Realm;

-import org.jsecurity.realm.RealmFactory;

-import org.jsecurity.util.LifecycleUtils;

+import org.ki.JSecurityException;

+import org.ki.io.IniResource;

+import org.ki.io.ResourceUtils;

+import org.ki.mgt.DefaultSecurityManager;

+import org.ki.mgt.RealmSecurityManager;

+import org.ki.mgt.SecurityManager;

+import org.ki.realm.Realm;

+import org.ki.realm.RealmFactory;

+import org.ki.util.LifecycleUtils;

 

 import java.io.InputStream;

 import java.io.Reader;

@@ -47,7 +47,7 @@
 

     private static final Log log = LogFactory.getLog(IniConfiguration.class);

 

-    public static final String DEFAULT_INI_RESOURCE_PATH = "classpath:jsecurity.ini";

+    public static final String DEFAULT_INI_RESOURCE_PATH = "classpath:ki.ini";

 

     public static final String MAIN = "main";

 

diff --git a/core/src/org/jsecurity/config/ReflectionBuilder.java b/core/src/org/ki/config/ReflectionBuilder.java
similarity index 97%
rename from core/src/org/jsecurity/config/ReflectionBuilder.java
rename to core/src/org/ki/config/ReflectionBuilder.java
index 5425fea..d4258bb 100644
--- a/core/src/org/jsecurity/config/ReflectionBuilder.java
+++ b/core/src/org/ki/config/ReflectionBuilder.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 import org.apache.commons.beanutils.BeanUtils;

 import org.apache.commons.beanutils.PropertyUtils;

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.util.ClassUtils;

-import org.jsecurity.util.Nameable;

+import org.ki.util.ClassUtils;

+import org.ki.util.Nameable;

 

 import java.beans.PropertyDescriptor;

 import java.util.HashMap;

@@ -48,7 +48,7 @@
 

     private static final String OBJECT_REFERENCE_BEGIN_TOKEN = "$";

     private static final String ESCAPED_OBJECT_REFERENCE_BEGIN_TOKEN = "\\$";

-    private static final String GLOBAL_PROPERTY_PREFIX = "jsecurity";

+    private static final String GLOBAL_PROPERTY_PREFIX = "ki";

 

 

     protected Map objects;

diff --git a/core/src/org/jsecurity/config/ResourceConfiguration.java b/core/src/org/ki/config/ResourceConfiguration.java
similarity index 95%
rename from core/src/org/jsecurity/config/ResourceConfiguration.java
rename to core/src/org/ki/config/ResourceConfiguration.java
index 36290f5..56d9a46 100644
--- a/core/src/org/jsecurity/config/ResourceConfiguration.java
+++ b/core/src/org/ki/config/ResourceConfiguration.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

-import org.jsecurity.mgt.SecurityManager;

+import org.ki.mgt.SecurityManager;

 

 import java.io.InputStream;

 import java.io.Serializable;

diff --git a/core/src/org/jsecurity/config/TextConfiguration.java b/core/src/org/ki/config/TextConfiguration.java
similarity index 92%
rename from core/src/org/jsecurity/config/TextConfiguration.java
rename to core/src/org/ki/config/TextConfiguration.java
index 042a3eb..1b32361 100644
--- a/core/src/org/jsecurity/config/TextConfiguration.java
+++ b/core/src/org/ki/config/TextConfiguration.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.JSecurityException;

-import org.jsecurity.io.ResourceException;

-import org.jsecurity.mgt.SecurityManager;

-import org.jsecurity.util.Initializable;

+import org.ki.JSecurityException;

+import org.ki.io.ResourceException;

+import org.ki.mgt.SecurityManager;

+import org.ki.util.Initializable;

 

 import java.io.Reader;

 import java.io.StringReader;

diff --git a/core/src/org/jsecurity/config/UnresolveableReferenceException.java b/core/src/org/ki/config/UnresolveableReferenceException.java
similarity index 98%
rename from core/src/org/jsecurity/config/UnresolveableReferenceException.java
rename to core/src/org/ki/config/UnresolveableReferenceException.java
index 6362cba..ebe7998 100644
--- a/core/src/org/jsecurity/config/UnresolveableReferenceException.java
+++ b/core/src/org/ki/config/UnresolveableReferenceException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 /**

  * Exception thrown when a reference to an object is made, but that object cannot be found.  This is most likely

diff --git a/core/src/org/jsecurity/config/package-info.java b/core/src/org/ki/config/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/config/package-info.java
rename to core/src/org/ki/config/package-info.java
index d50b156..a1b03bc 100644
--- a/core/src/org/jsecurity/config/package-info.java
+++ b/core/src/org/ki/config/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Components that support configuring JSecurity in any application.

  */

-package org.jsecurity.config;
\ No newline at end of file
+package org.ki.config;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/crypto/BlowfishCipher.java b/core/src/org/ki/crypto/BlowfishCipher.java
similarity index 98%
rename from core/src/org/jsecurity/crypto/BlowfishCipher.java
rename to core/src/org/ki/crypto/BlowfishCipher.java
index 45c210b..257b9ef 100644
--- a/core/src/org/jsecurity/crypto/BlowfishCipher.java
+++ b/core/src/org/ki/crypto/BlowfishCipher.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto;
+package org.ki.crypto;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.CodecSupport;
+import org.ki.codec.Base64;
+import org.ki.codec.CodecSupport;
 
 import javax.crypto.KeyGenerator;
 import javax.crypto.spec.SecretKeySpec;
diff --git a/core/src/org/jsecurity/crypto/Cipher.java b/core/src/org/ki/crypto/Cipher.java
similarity index 98%
rename from core/src/org/jsecurity/crypto/Cipher.java
rename to core/src/org/ki/crypto/Cipher.java
index 4fb37b8..ec005e1 100644
--- a/core/src/org/jsecurity/crypto/Cipher.java
+++ b/core/src/org/ki/crypto/Cipher.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto;
+package org.ki.crypto;
 
 /**
  * A <tt>Cipher</tt> is an algorithm used in cryptography that converts an original input source using a <tt>Key</tt> to
diff --git a/core/src/org/jsecurity/crypto/hash/AbstractHash.java b/core/src/org/ki/crypto/hash/AbstractHash.java
similarity index 97%
rename from core/src/org/jsecurity/crypto/hash/AbstractHash.java
rename to core/src/org/ki/crypto/hash/AbstractHash.java
index 7475b70..7cfd447 100644
--- a/core/src/org/jsecurity/crypto/hash/AbstractHash.java
+++ b/core/src/org/ki/crypto/hash/AbstractHash.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.CodecException;
-import org.jsecurity.codec.CodecSupport;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.CodecException;
+import org.ki.codec.CodecSupport;
+import org.ki.codec.Hex;
 
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -103,7 +103,7 @@
      *
      * <p>By default, this class only supports Object method arguments of
      * type <tt>byte[]</tt>, <tt>char[]</tt> and <tt>String</tt>.  If either argument is anything other than these
-     * types a {@link org.jsecurity.codec.CodecException CodecException} will be thrown.
+     * types a {@link org.ki.codec.CodecException CodecException} will be thrown.
      *
      * <p>If you want to be able to hash other object types, or use other salt types, you need to override the
      * {@link #toBytes(Object) toBytes(Object)} method to support those specific types.  Your other option is to
diff --git a/core/src/org/jsecurity/crypto/hash/Hash.java b/core/src/org/ki/crypto/hash/Hash.java
similarity index 97%
rename from core/src/org/jsecurity/crypto/hash/Hash.java
rename to core/src/org/ki/crypto/hash/Hash.java
index 455f040..f6e9e6e 100644
--- a/core/src/org/jsecurity/crypto/hash/Hash.java
+++ b/core/src/org/ki/crypto/hash/Hash.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
 /**
  * A Cryptoraphic <tt>Hash</tt> represents a one-way conversion algorithm that transforms an input source to an underlying
diff --git a/core/src/org/jsecurity/crypto/hash/Md2Hash.java b/core/src/org/ki/crypto/hash/Md2Hash.java
similarity index 94%
rename from core/src/org/jsecurity/crypto/hash/Md2Hash.java
rename to core/src/org/ki/crypto/hash/Md2Hash.java
index 4dec59e..58f15b8 100644
--- a/core/src/org/jsecurity/crypto/hash/Md2Hash.java
+++ b/core/src/org/ki/crypto/hash/Md2Hash.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
 
 /**
  * Generates an MD2 Hash (RFC 1319) from a given input <tt>source</tt> with an optional <tt>salt</tt> and
diff --git a/core/src/org/jsecurity/crypto/hash/Md5Hash.java b/core/src/org/ki/crypto/hash/Md5Hash.java
similarity index 94%
rename from core/src/org/jsecurity/crypto/hash/Md5Hash.java
rename to core/src/org/ki/crypto/hash/Md5Hash.java
index c6ecbd5..8546a03 100644
--- a/core/src/org/jsecurity/crypto/hash/Md5Hash.java
+++ b/core/src/org/ki/crypto/hash/Md5Hash.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
 
 /**
  * Generates an MD5 Hash (RFC 1321) from a given input <tt>source</tt> with an optional <tt>salt</tt> and
diff --git a/core/src/org/jsecurity/crypto/hash/Sha1Hash.java b/core/src/org/ki/crypto/hash/Sha1Hash.java
similarity index 94%
rename from core/src/org/jsecurity/crypto/hash/Sha1Hash.java
rename to core/src/org/ki/crypto/hash/Sha1Hash.java
index eb9ee7a..35944cf 100644
--- a/core/src/org/jsecurity/crypto/hash/Sha1Hash.java
+++ b/core/src/org/ki/crypto/hash/Sha1Hash.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
 
 /**
  * Generates an SHA-1 Hash (Secure Hash Standard, NIST FIPS 180-1) from a given input <tt>source</tt> with an
diff --git a/core/src/org/jsecurity/crypto/hash/Sha256Hash.java b/core/src/org/ki/crypto/hash/Sha256Hash.java
similarity index 95%
rename from core/src/org/jsecurity/crypto/hash/Sha256Hash.java
rename to core/src/org/ki/crypto/hash/Sha256Hash.java
index dd46c93..e9c56d4 100644
--- a/core/src/org/jsecurity/crypto/hash/Sha256Hash.java
+++ b/core/src/org/ki/crypto/hash/Sha256Hash.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
 
 /**
  * Generates an SHA-256 Hash from a given input <tt>source</tt> with an optional <tt>salt</tt> and hash iterations.
diff --git a/core/src/org/jsecurity/crypto/hash/Sha384Hash.java b/core/src/org/ki/crypto/hash/Sha384Hash.java
similarity index 95%
rename from core/src/org/jsecurity/crypto/hash/Sha384Hash.java
rename to core/src/org/ki/crypto/hash/Sha384Hash.java
index 3e681b7..a6ee13b 100644
--- a/core/src/org/jsecurity/crypto/hash/Sha384Hash.java
+++ b/core/src/org/ki/crypto/hash/Sha384Hash.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
 
 /**
  * Generates an SHA-384 Hash from a given input <tt>source</tt> with an optional <tt>salt</tt> and hash iterations.
diff --git a/core/src/org/jsecurity/crypto/hash/Sha512Hash.java b/core/src/org/ki/crypto/hash/Sha512Hash.java
similarity index 95%
rename from core/src/org/jsecurity/crypto/hash/Sha512Hash.java
rename to core/src/org/ki/crypto/hash/Sha512Hash.java
index 98ca46d..02fb2f8 100644
--- a/core/src/org/jsecurity/crypto/hash/Sha512Hash.java
+++ b/core/src/org/ki/crypto/hash/Sha512Hash.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.crypto.hash;
+package org.ki.crypto.hash;
 
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
 
 /**
  * Generates an SHA-512 Hash from a given input <tt>source</tt> with an optional <tt>salt</tt> and hash iterations.
diff --git a/core/src/org/jsecurity/crypto/hash/package-info.java b/core/src/org/ki/crypto/hash/package-info.java
similarity index 87%
rename from core/src/org/jsecurity/crypto/hash/package-info.java
rename to core/src/org/ki/crypto/hash/package-info.java
index 40e5881..eaac8e7 100644
--- a/core/src/org/jsecurity/crypto/hash/package-info.java
+++ b/core/src/org/ki/crypto/hash/package-info.java
@@ -19,7 +19,7 @@
 /**
  * Cryptographic Hashing components that greatly simplify one-way data hashing in an application.
  * <p/>
- * The {@link org.jsecurity.crypto.hash.Hash Hash} interface and its implementations are significantly
+ * The {@link org.ki.crypto.hash.Hash Hash} interface and its implementations are significantly
  * easier to understand and use compared to the JDK's <code>MessageDigest</code> mechanism.
  */
-package org.jsecurity.crypto.hash;
\ No newline at end of file
+package org.ki.crypto.hash;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/crypto/package-info.java b/core/src/org/ki/crypto/package-info.java
similarity index 93%
rename from core/src/org/jsecurity/crypto/package-info.java
rename to core/src/org/ki/crypto/package-info.java
index cddc094..4b31e34 100644
--- a/core/src/org/jsecurity/crypto/package-info.java
+++ b/core/src/org/ki/crypto/package-info.java
@@ -20,7 +20,7 @@
  * Cryptography Cipher and Hashing components that greatly simplify the JDK's cryptography concepts and
  * add additional convenient behavior.
  * <p/>
- * The most important interface in this package is the {@link org.jsecurity.crypto.Cipher Cipher} interface, which
+ * The most important interface in this package is the {@link org.ki.crypto.Cipher Cipher} interface, which
  * allows other JSecurity components to encrypt and decrypt potentially sensitive data.
  */
-package org.jsecurity.crypto;
\ No newline at end of file
+package org.ki.crypto;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/io/AbstractResource.java b/core/src/org/ki/io/AbstractResource.java
similarity index 98%
rename from core/src/org/jsecurity/io/AbstractResource.java
rename to core/src/org/ki/io/AbstractResource.java
index a05b1cc..3f0c2ae 100644
--- a/core/src/org/jsecurity/io/AbstractResource.java
+++ b/core/src/org/ki/io/AbstractResource.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.io;

+package org.ki.io;

 

 import java.io.IOException;

 import java.io.InputStream;

diff --git a/core/src/org/jsecurity/io/DefaultSerializer.java b/core/src/org/ki/io/DefaultSerializer.java
similarity index 98%
rename from core/src/org/jsecurity/io/DefaultSerializer.java
rename to core/src/org/ki/io/DefaultSerializer.java
index 33fb58b..b90e7cc 100644
--- a/core/src/org/jsecurity/io/DefaultSerializer.java
+++ b/core/src/org/ki/io/DefaultSerializer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.io;
+package org.ki.io;
 
 import java.io.*;
 
diff --git a/core/src/org/jsecurity/io/IniResource.java b/core/src/org/ki/io/IniResource.java
similarity index 96%
rename from core/src/org/jsecurity/io/IniResource.java
rename to core/src/org/ki/io/IniResource.java
index c64ec0f..13b0e7c 100644
--- a/core/src/org/jsecurity/io/IniResource.java
+++ b/core/src/org/ki/io/IniResource.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.io;

+package org.ki.io;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import static org.jsecurity.util.StringUtils.clean;

-import static org.jsecurity.util.StringUtils.splitKeyValue;

+import static org.ki.util.StringUtils.clean;

+import static org.ki.util.StringUtils.splitKeyValue;

 

 import java.io.InputStream;

 import java.io.Reader;

diff --git a/core/src/org/jsecurity/io/ResourceException.java b/core/src/org/ki/io/ResourceException.java
similarity index 96%
rename from core/src/org/jsecurity/io/ResourceException.java
rename to core/src/org/ki/io/ResourceException.java
index 810cd8a..d2af210 100644
--- a/core/src/org/jsecurity/io/ResourceException.java
+++ b/core/src/org/ki/io/ResourceException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.io;

+package org.ki.io;

 

-import org.jsecurity.JSecurityException;

+import org.ki.JSecurityException;

 

 /**

  * Root exception when a problem occurs acquiring or processing a resource.

diff --git a/core/src/org/jsecurity/io/ResourceUtils.java b/core/src/org/ki/io/ResourceUtils.java
similarity index 98%
rename from core/src/org/jsecurity/io/ResourceUtils.java
rename to core/src/org/ki/io/ResourceUtils.java
index 577c9b9..08e12e1 100644
--- a/core/src/org/jsecurity/io/ResourceUtils.java
+++ b/core/src/org/ki/io/ResourceUtils.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.io;
+package org.ki.io;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.util.ClassUtils;
+import org.ki.util.ClassUtils;
 
 import java.io.FileInputStream;
 import java.io.IOException;
diff --git a/core/src/org/jsecurity/io/SerializationException.java b/core/src/org/ki/io/SerializationException.java
similarity index 96%
rename from core/src/org/jsecurity/io/SerializationException.java
rename to core/src/org/ki/io/SerializationException.java
index 5094a11..b5dad46 100644
--- a/core/src/org/jsecurity/io/SerializationException.java
+++ b/core/src/org/ki/io/SerializationException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.io;
+package org.ki.io;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Root exception for problems either serializing or de-serializing data.
diff --git a/core/src/org/jsecurity/io/Serializer.java b/core/src/org/ki/io/Serializer.java
similarity index 94%
rename from core/src/org/jsecurity/io/Serializer.java
rename to core/src/org/ki/io/Serializer.java
index 5d8fe50..071fd78 100644
--- a/core/src/org/jsecurity/io/Serializer.java
+++ b/core/src/org/ki/io/Serializer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.io;
+package org.ki.io;
 
 /**
  * A <code>Serializer</code> converts objects to raw binary data and vice versa, enabling persistent storage
@@ -24,7 +24,7 @@
  * <p/>
  * A <code>Serializer</code> should only do conversion, never change the data, such as encoding/decoding or
  * encryption.  These orthoganal concerns are handled elsewhere by JSecurity, for example, via
- * {@link org.jsecurity.codec.CodecSupport CodecSupport} and {@link org.jsecurity.crypto.Cipher Cipher}s.
+ * {@link org.ki.codec.CodecSupport CodecSupport} and {@link org.ki.crypto.Cipher Cipher}s.
  * @author Les Hazlewood
  * @since 0.9
  */
diff --git a/core/src/org/jsecurity/io/TextResource.java b/core/src/org/ki/io/TextResource.java
similarity index 98%
rename from core/src/org/jsecurity/io/TextResource.java
rename to core/src/org/ki/io/TextResource.java
index 4e823bb..a495369 100644
--- a/core/src/org/jsecurity/io/TextResource.java
+++ b/core/src/org/ki/io/TextResource.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.io;

+package org.ki.io;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/core/src/org/jsecurity/io/XmlSerializer.java b/core/src/org/ki/io/XmlSerializer.java
similarity index 98%
rename from core/src/org/jsecurity/io/XmlSerializer.java
rename to core/src/org/ki/io/XmlSerializer.java
index 80504f6..a52cbf2 100644
--- a/core/src/org/jsecurity/io/XmlSerializer.java
+++ b/core/src/org/ki/io/XmlSerializer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.io;
+package org.ki.io;
 
 import java.beans.XMLDecoder;
 import java.beans.XMLEncoder;
diff --git a/core/src/org/jsecurity/io/package-info.java b/core/src/org/ki/io/package-info.java
similarity index 97%
rename from core/src/org/jsecurity/io/package-info.java
rename to core/src/org/ki/io/package-info.java
index 625cd42..3ba5e23 100644
--- a/core/src/org/jsecurity/io/package-info.java
+++ b/core/src/org/ki/io/package-info.java
@@ -19,4 +19,4 @@
 /**
  * Support for reading and writing (input/output) raw data from multiple resource locations.
  */
-package org.jsecurity.io;
\ No newline at end of file
+package org.ki.io;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/jndi/JndiCallback.java b/core/src/org/ki/jndi/JndiCallback.java
similarity index 98%
rename from core/src/org/jsecurity/jndi/JndiCallback.java
rename to core/src/org/ki/jndi/JndiCallback.java
index 83fe52f..8c54242 100644
--- a/core/src/org/jsecurity/jndi/JndiCallback.java
+++ b/core/src/org/ki/jndi/JndiCallback.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.jndi;

+package org.ki.jndi;

 

 import javax.naming.Context;

 import javax.naming.NamingException;

diff --git a/core/src/org/jsecurity/jndi/JndiLocator.java b/core/src/org/ki/jndi/JndiLocator.java
similarity index 99%
rename from core/src/org/jsecurity/jndi/JndiLocator.java
rename to core/src/org/ki/jndi/JndiLocator.java
index c0d16bd..bf3c079 100644
--- a/core/src/org/jsecurity/jndi/JndiLocator.java
+++ b/core/src/org/ki/jndi/JndiLocator.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.jndi;

+package org.ki.jndi;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/core/src/org/jsecurity/jndi/JndiTemplate.java b/core/src/org/ki/jndi/JndiTemplate.java
similarity index 99%
rename from core/src/org/jsecurity/jndi/JndiTemplate.java
rename to core/src/org/ki/jndi/JndiTemplate.java
index 5a4610a..1a0cfc4 100644
--- a/core/src/org/jsecurity/jndi/JndiTemplate.java
+++ b/core/src/org/ki/jndi/JndiTemplate.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.jndi;

+package org.ki.jndi;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/core/src/org/jsecurity/jndi/package-info.java b/core/src/org/ki/jndi/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/jndi/package-info.java
rename to core/src/org/ki/jndi/package-info.java
index 1a57b8a..4df09a6 100644
--- a/core/src/org/jsecurity/jndi/package-info.java
+++ b/core/src/org/ki/jndi/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Enables accessing objects located in JNDI that might be useful when configuring a JSecurity-enabled application.

  */

-package org.jsecurity.jndi;
\ No newline at end of file
+package org.ki.jndi;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/mgt/AbstractRememberMeManager.java b/core/src/org/ki/mgt/AbstractRememberMeManager.java
similarity index 92%
rename from core/src/org/jsecurity/mgt/AbstractRememberMeManager.java
rename to core/src/org/ki/mgt/AbstractRememberMeManager.java
index 2ecdfdc..6ffbbd0 100644
--- a/core/src/org/jsecurity/mgt/AbstractRememberMeManager.java
+++ b/core/src/org/ki/mgt/AbstractRememberMeManager.java
@@ -16,27 +16,27 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.RememberMeAuthenticationToken;
-import org.jsecurity.codec.Base64;
-import org.jsecurity.codec.Hex;
-import org.jsecurity.crypto.BlowfishCipher;
-import org.jsecurity.crypto.Cipher;
-import org.jsecurity.io.DefaultSerializer;
-import org.jsecurity.io.SerializationException;
-import org.jsecurity.io.Serializer;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.RememberMeAuthenticationToken;
+import org.ki.codec.Base64;
+import org.ki.codec.Hex;
+import org.ki.crypto.BlowfishCipher;
+import org.ki.crypto.Cipher;
+import org.ki.io.DefaultSerializer;
+import org.ki.io.SerializationException;
+import org.ki.io.Serializer;
+import org.ki.subject.PrincipalCollection;
 
 /**
  * Abstract implementation of the <code>RememberMeManager</code> interface that handles
- * {@link #setSerializer(org.jsecurity.io.Serializer) serialization} and
- * {@link #setCipher(org.jsecurity.crypto.Cipher) encryption} of the remembered user identity.
+ * {@link #setSerializer(org.ki.io.Serializer) serialization} and
+ * {@link #setCipher(org.ki.crypto.Cipher) encryption} of the remembered user identity.
  * <p/>
  * The remembered identity storage location is implementation-specific.
  *
diff --git a/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java b/core/src/org/ki/mgt/AuthenticatingSecurityManager.java
similarity index 90%
rename from core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java
rename to core/src/org/ki/mgt/AuthenticatingSecurityManager.java
index 8d94565..daa3083 100644
--- a/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java
+++ b/core/src/org/ki/mgt/AuthenticatingSecurityManager.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.authc.*;
-import org.jsecurity.authc.pam.AuthenticationStrategy;
-import org.jsecurity.authc.pam.ModularRealmAuthenticator;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.authc.*;
+import org.ki.authc.pam.AuthenticationStrategy;
+import org.ki.authc.pam.ModularRealmAuthenticator;
+import org.ki.util.LifecycleUtils;
 
 import java.util.Collection;
 
@@ -51,7 +51,7 @@
     /**
      * Default no-arg constructor that initializes its internal
      * <code>authenticator</code> instance to a
-     * {@link org.jsecurity.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}.
+     * {@link org.ki.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}.
      */
     public AuthenticatingSecurityManager() {
         super();
@@ -61,8 +61,8 @@
     /**
      * Returns the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
      * authentication operations.  Unless overridden by the
-     * {@link #setAuthenticator(org.jsecurity.authc.Authenticator) setAuthenticator}, the default instance is a
-     * {@link org.jsecurity.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}.
+     * {@link #setAuthenticator(org.ki.authc.Authenticator) setAuthenticator}, the default instance is a
+     * {@link org.ki.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}.
      *
      * @return the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
      *         authentication operations.
@@ -74,7 +74,7 @@
     /**
      * Sets the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
      * authentication operations.  Unless overridden by this method, the default instance is a
-     * {@link org.jsecurity.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}.
+     * {@link org.ki.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator}.
      *
      * @param authenticator the delegate <code>Authenticator</code> instance that this SecurityManager will use to
      *                      perform all authentication operations.
@@ -89,7 +89,7 @@
     }
 
     /**
-     * Sets the {@link org.jsecurity.authc.pam.AuthenticationStrategy} to use
+     * Sets the {@link org.ki.authc.pam.AuthenticationStrategy} to use
      * in multi-realm environments.
      *
      * @param strategy the <code>AuthenticationStrategy</code> to use in multi-realm environments.
@@ -115,7 +115,7 @@
      * and then apply these <tt>AuthenticationListener</tt>s on your behalf.
      *
      * <p>One notice however: The underlying Authenticator delegate must implement the
-     * {@link org.jsecurity.authc.AuthenticationListenerRegistrar AuthenticationListenerRegistrar}
+     * {@link org.ki.authc.AuthenticationListenerRegistrar AuthenticationListenerRegistrar}
      * interface in order for these listeners to be applied.  If it does not implement this interface, it is
      * considered a configuration error and an exception will be thrown.
      *
@@ -151,7 +151,7 @@
 
     /**
      * Ensures that <code>this.authenticator</code> implements the
-     * {@link org.jsecurity.authc.AuthenticationListenerRegistrar AuthenticationListenerRegistrar} interface to ensure
+     * {@link org.ki.authc.AuthenticationListenerRegistrar AuthenticationListenerRegistrar} interface to ensure
      * listeners can be registered.
      */
     private void assertAuthenticatorListenerSupport() {
diff --git a/core/src/org/jsecurity/mgt/AuthorizingSecurityManager.java b/core/src/org/ki/mgt/AuthorizingSecurityManager.java
similarity index 93%
rename from core/src/org/jsecurity/mgt/AuthorizingSecurityManager.java
rename to core/src/org/ki/mgt/AuthorizingSecurityManager.java
index 650523b..62cb682 100644
--- a/core/src/org/jsecurity/mgt/AuthorizingSecurityManager.java
+++ b/core/src/org/ki/mgt/AuthorizingSecurityManager.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.Authorizer;
-import org.jsecurity.authz.ModularRealmAuthorizer;
-import org.jsecurity.authz.Permission;
-import org.jsecurity.authz.permission.PermissionResolver;
-import org.jsecurity.authz.permission.PermissionResolverAware;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.Authorizer;
+import org.ki.authz.ModularRealmAuthorizer;
+import org.ki.authz.Permission;
+import org.ki.authz.permission.PermissionResolver;
+import org.ki.authz.permission.PermissionResolverAware;
+import org.ki.subject.PrincipalCollection;
+import org.ki.util.LifecycleUtils;
 
 import java.util.Collection;
 import java.util.List;
@@ -118,7 +118,7 @@
      * instance's wrapped {@link Authorizer Authorizer}.
      * <p/>
      * The setting of realms the Authorizer will only occur if it is an instance of
-     * {@link org.jsecurity.authz.ModularRealmAuthorizer ModularRealmAuthorizer}, that is:
+     * {@link org.ki.authz.ModularRealmAuthorizer ModularRealmAuthorizer}, that is:
      * <pre>
      * if ( this.authorizer instanceof ModularRealmAuthorizer ) {
      *     ((ModularRealmAuthorizer)this.authorizer).setRealms(realms);
diff --git a/core/src/org/jsecurity/mgt/CachingSecurityManager.java b/core/src/org/ki/mgt/CachingSecurityManager.java
similarity index 92%
rename from core/src/org/jsecurity/mgt/CachingSecurityManager.java
rename to core/src/org/ki/mgt/CachingSecurityManager.java
index a67caae..39d0fae 100644
--- a/core/src/org/jsecurity/mgt/CachingSecurityManager.java
+++ b/core/src/org/ki/mgt/CachingSecurityManager.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.cache.CacheManagerAware;
-import org.jsecurity.cache.DefaultCacheManager;
-import org.jsecurity.util.Destroyable;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.cache.CacheManager;
+import org.ki.cache.CacheManagerAware;
+import org.ki.cache.DefaultCacheManager;
+import org.ki.util.Destroyable;
+import org.ki.util.LifecycleUtils;
 
 /**
  * A very basic starting point for the SecurityManager interface that merely provides logging and caching
diff --git a/core/src/org/jsecurity/mgt/DefaultSecurityManager.java b/core/src/org/ki/mgt/DefaultSecurityManager.java
similarity index 94%
rename from core/src/org/jsecurity/mgt/DefaultSecurityManager.java
rename to core/src/org/ki/mgt/DefaultSecurityManager.java
index 0cd4d64..ab9ad49 100644
--- a/core/src/org/jsecurity/mgt/DefaultSecurityManager.java
+++ b/core/src/org/ki/mgt/DefaultSecurityManager.java
@@ -16,21 +16,21 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.mgt;

+package org.ki.mgt;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.authc.*;

-import org.jsecurity.authz.AuthorizationException;

-import org.jsecurity.authz.Authorizer;

-import org.jsecurity.crypto.Cipher;

-import org.jsecurity.realm.Realm;

-import org.jsecurity.session.InvalidSessionException;

-import org.jsecurity.session.Session;

-import org.jsecurity.session.mgt.DelegatingSession;

-import org.jsecurity.subject.PrincipalCollection;

-import org.jsecurity.subject.Subject;

-import org.jsecurity.util.ThreadContext;

+import org.ki.authc.*;

+import org.ki.authz.AuthorizationException;

+import org.ki.authz.Authorizer;

+import org.ki.crypto.Cipher;

+import org.ki.realm.Realm;

+import org.ki.session.InvalidSessionException;

+import org.ki.session.Session;

+import org.ki.session.mgt.DelegatingSession;

+import org.ki.subject.PrincipalCollection;

+import org.ki.subject.Subject;

+import org.ki.util.ThreadContext;

 

 import java.io.Serializable;

 import java.net.InetAddress;

@@ -38,9 +38,9 @@
 

 /**

  * <p>The JSecurity framework's default concrete implementation of the {@link SecurityManager} interface,

- * based around a collection of {@link org.jsecurity.realm.Realm}s.  This implementation delegates its

+ * based around a collection of {@link org.ki.realm.Realm}s.  This implementation delegates its

  * authentication, authorization, and session operations to wrapped {@link Authenticator}, {@link Authorizer}, and

- * {@link org.jsecurity.session.mgt.SessionManager SessionManager} instances respectively via superclass

+ * {@link org.ki.session.mgt.SessionManager SessionManager} instances respectively via superclass

  * implementation.</p>

  *

  * <p>To greatly reduce and simplify configuration, this implementation (and its superclasses) will

@@ -61,12 +61,12 @@
  * instance yourself via the {@link #setRememberMeManager(RememberMeManager) setRememberMeManager}

  * mutator.  However if you're reading this JavaDoc with the

  * expectation of operating in a Web environment, take a look at the

- * {@link org.jsecurity.web.DefaultWebSecurityManager DefaultWebSecurityManager} implementation, which

+ * {@link org.ki.web.DefaultWebSecurityManager DefaultWebSecurityManager} implementation, which

  * <em>does</em> support <tt>RememberMe</tt> services by default at startup.

  *

  * @author Les Hazlewood

  * @author Jeremy Haile

- * @see org.jsecurity.web.DefaultWebSecurityManager

+ * @see org.ki.web.DefaultWebSecurityManager

  * @since 0.2

  */

 public class DefaultSecurityManager extends SessionsSecurityManager {

@@ -469,17 +469,17 @@
      *

      * @param sessionId the id of the session that backs the desired Subject being acquired.

      * @return the {@code Subject} that owns the {@code Session Session} with the specified {@code sessionId}

-     * @throws org.jsecurity.session.InvalidSessionException

+     * @throws org.ki.session.InvalidSessionException

      *          if the session identified by <tt>sessionId</tt> has

      *          been stopped, expired, or doesn't exist.

-     * @throws org.jsecurity.authz.AuthorizationException

+     * @throws org.ki.authz.AuthorizationException

      *          if the executor of this method is not allowed to acquire the owning {@code Subject}.  The reason

      *          for the exception is implementation-specific and could be for any number of reasons.  A common

      *          reason in many systems would be if one host tried to acquire a {@code Subject} based on a

      *          {@code Session} that originated on an entirely different host (although it is not a JSecurity

      *          requirement this scenario is disallowed - its just an example that <em>may</em> throw an Exception in

      *          some systems).

-     * @see org.jsecurity.authz.HostUnauthorizedException

+     * @see org.ki.authz.HostUnauthorizedException

      * @since 1.0

      */

     private Subject getSubjectBySessionId(Serializable sessionId) throws InvalidSessionException, AuthorizationException {

diff --git a/core/src/org/jsecurity/mgt/DefaultSubjectFactory.java b/core/src/org/ki/mgt/DefaultSubjectFactory.java
similarity index 88%
rename from core/src/org/jsecurity/mgt/DefaultSubjectFactory.java
rename to core/src/org/ki/mgt/DefaultSubjectFactory.java
index 7857bf6..4d1a218 100644
--- a/core/src/org/jsecurity/mgt/DefaultSubjectFactory.java
+++ b/core/src/org/ki/mgt/DefaultSubjectFactory.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.InetAuthenticationToken;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.DelegatingSubject;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.ThreadContext;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.InetAuthenticationToken;
+import org.ki.session.Session;
+import org.ki.subject.DelegatingSubject;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.Subject;
+import org.ki.util.ThreadContext;
 
 import java.net.InetAddress;
 
diff --git a/core/src/org/jsecurity/mgt/RealmSecurityManager.java b/core/src/org/ki/mgt/RealmSecurityManager.java
similarity index 91%
rename from core/src/org/jsecurity/mgt/RealmSecurityManager.java
rename to core/src/org/ki/mgt/RealmSecurityManager.java
index 4e20277..836471f 100644
--- a/core/src/org/jsecurity/mgt/RealmSecurityManager.java
+++ b/core/src/org/ki/mgt/RealmSecurityManager.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.cache.CacheManagerAware;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.cache.CacheManager;
+import org.ki.cache.CacheManagerAware;
+import org.ki.realm.Realm;
+import org.ki.util.LifecycleUtils;
 
 import java.util.ArrayList;
 import java.util.Collection;
 
 /**
  * JSecurity support of a {@link SecurityManager} class hierarchy based around a collection of
- * {@link org.jsecurity.realm.Realm}s.  All actual {@code SecurityManager} method implementations are left to
+ * {@link org.ki.realm.Realm}s.  All actual {@code SecurityManager} method implementations are left to
  * subclasses.
  *
  * @author Les Hazlewood
@@ -99,7 +99,7 @@
      * {@link #getRealms Realms} that implement the {@link CacheManagerAware CacheManagerAware} interface.
      * <p/>
      * This method is called after setting a cacheManager on this securityManager via the
-     * {@link #setCacheManager(org.jsecurity.cache.CacheManager) setCacheManager} method to allow it to be propagated
+     * {@link #setCacheManager(org.ki.cache.CacheManager) setCacheManager} method to allow it to be propagated
      * down to all the internal Realms that would need to use it.
      * <p/>
      * It is also called after setting one or more realms via the {@link #setRealm setRealm} or
diff --git a/core/src/org/jsecurity/mgt/RememberMeManager.java b/core/src/org/ki/mgt/RememberMeManager.java
similarity index 85%
rename from core/src/org/jsecurity/mgt/RememberMeManager.java
rename to core/src/org/ki/mgt/RememberMeManager.java
index e381a8b..6ce21c3 100644
--- a/core/src/org/jsecurity/mgt/RememberMeManager.java
+++ b/core/src/org/ki/mgt/RememberMeManager.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.subject.PrincipalCollection;
 
 /**
  * A RememberMeManager is responsible for remembering a Subject's identity across that Subject's sessions with
diff --git a/core/src/org/jsecurity/mgt/SecurityManager.java b/core/src/org/ki/mgt/SecurityManager.java
similarity index 89%
rename from core/src/org/jsecurity/mgt/SecurityManager.java
rename to core/src/org/ki/mgt/SecurityManager.java
index 09510ab..53c4d33 100644
--- a/core/src/org/jsecurity/mgt/SecurityManager.java
+++ b/core/src/org/ki/mgt/SecurityManager.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.mgt;

+package org.ki.mgt;

 

-import org.jsecurity.authc.AuthenticationException;

-import org.jsecurity.authc.AuthenticationToken;

-import org.jsecurity.authc.Authenticator;

-import org.jsecurity.authz.Authorizer;

-import org.jsecurity.session.mgt.SessionManager;

-import org.jsecurity.subject.PrincipalCollection;

-import org.jsecurity.subject.Subject;

+import org.ki.authc.AuthenticationException;

+import org.ki.authc.AuthenticationToken;

+import org.ki.authc.Authenticator;

+import org.ki.authz.Authorizer;

+import org.ki.session.mgt.SessionManager;

+import org.ki.subject.PrincipalCollection;

+import org.ki.subject.Subject;

 

 /**

  * A <tt>SecurityManager</tt> executes all security operations for <em>all</em> Subjects (aka users) across a

@@ -50,7 +50,7 @@
  * <p>In that case, the application programmer can call the

  * {@link #getSubject() getSubject()} method and then use that returned instance for continued interaction with

  * JSecurity.  If your application code does not have a direct handle to the application's

- * <code>SecurityManager</code>, you can use {@link org.jsecurity.SecurityUtils SecurityUtils} anywhere in your code

+ * <code>SecurityManager</code>, you can use {@link org.ki.SecurityUtils SecurityUtils} anywhere in your code

  * to achieve the same result.

  *

  * <p>Framework developers on the other hand might find working with an actual SecurityManager useful.

@@ -68,7 +68,7 @@
      * Note that most application developers should probably not call this method directly unless they have a good

      * reason for doing so.  The preferred way to log in a Subject is to call

      * <code>{@link Subject#login Subject.login(authenticationToken)}</code> (usually after acquiring the

-     * Subject by calling {@link org.jsecurity.SecurityUtils#getSubject() SecurityUtils.getSubject()}).

+     * Subject by calling {@link org.ki.SecurityUtils#getSubject() SecurityUtils.getSubject()}).

      * <p/>

      * Framework developers on the other hand might find calling this method directly useful in certain cases.

      *

diff --git a/core/src/org/jsecurity/mgt/SecurityManagerAware.java b/core/src/org/ki/mgt/SecurityManagerAware.java
similarity index 97%
rename from core/src/org/jsecurity/mgt/SecurityManagerAware.java
rename to core/src/org/ki/mgt/SecurityManagerAware.java
index c3739a8..a0e8fd0 100644
--- a/core/src/org/jsecurity/mgt/SecurityManagerAware.java
+++ b/core/src/org/ki/mgt/SecurityManagerAware.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
 /**
  * Interface providing a callback method that allows an implementation of this interface to receive a reference to
diff --git a/core/src/org/jsecurity/mgt/SecurityManagerFactory.java b/core/src/org/ki/mgt/SecurityManagerFactory.java
similarity index 97%
rename from core/src/org/jsecurity/mgt/SecurityManagerFactory.java
rename to core/src/org/ki/mgt/SecurityManagerFactory.java
index 56181c2..381ebff 100644
--- a/core/src/org/jsecurity/mgt/SecurityManagerFactory.java
+++ b/core/src/org/ki/mgt/SecurityManagerFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.mgt;

+package org.ki.mgt;

 

 /**

  * Allows implementations to create and return an application's SecurityManager instance in any manner necessary.

diff --git a/core/src/org/jsecurity/mgt/SessionSubjectBinder.java b/core/src/org/ki/mgt/SessionSubjectBinder.java
similarity index 94%
rename from core/src/org/jsecurity/mgt/SessionSubjectBinder.java
rename to core/src/org/ki/mgt/SessionSubjectBinder.java
index 7b96e20..ee951d0 100644
--- a/core/src/org/jsecurity/mgt/SessionSubjectBinder.java
+++ b/core/src/org/ki/mgt/SessionSubjectBinder.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.Subject;
+import org.ki.session.Session;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.Subject;
 
 /**
  * Binds the Subject's state to the accessible {@link Session Session} in addition to the
- * {@link org.jsecurity.util.ThreadContext ThreadContext}
+ * {@link org.ki.util.ThreadContext ThreadContext}
  * <p/>
  * The very notion of this class's existence might sound backwards:  typically a {@link Session Session} is something
  * that is created <em>after</em> a {@link Subject Subject} is acquired - for example by calling
@@ -42,7 +42,7 @@
  * <ol>
  * <li>A session ID would be acquired based on an incoming request or remote method invocation</li>
  * <li>The <code>Session</code> would be retrieved from the application's {@link SecurityManager SecurityManager}
- * (using the {@link org.jsecurity.session.mgt.SessionManager SessionManager} parent methods)</li>
+ * (using the {@link org.ki.session.mgt.SessionManager SessionManager} parent methods)</li>
  * <li>A <code>Subject</code> instance would be created based on the attributes found in that session</code>
  * <li>The constructed <code>Subject</code> would be 'bound' to the application for use during the request or method
  * invocation (say, bound to the processing thread)</li>
diff --git a/core/src/org/jsecurity/mgt/SessionsSecurityManager.java b/core/src/org/ki/mgt/SessionsSecurityManager.java
similarity index 88%
rename from core/src/org/jsecurity/mgt/SessionsSecurityManager.java
rename to core/src/org/ki/mgt/SessionsSecurityManager.java
index 758a72b..c60051c 100644
--- a/core/src/org/jsecurity/mgt/SessionsSecurityManager.java
+++ b/core/src/org/ki/mgt/SessionsSecurityManager.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.authz.HostUnauthorizedException;
-import org.jsecurity.cache.CacheManagerAware;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.SessionListener;
-import org.jsecurity.session.SessionListenerRegistrar;
-import org.jsecurity.session.mgt.AbstractSessionManager;
-import org.jsecurity.session.mgt.AbstractValidatingSessionManager;
-import org.jsecurity.session.mgt.DefaultSessionManager;
-import org.jsecurity.session.mgt.SessionManager;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.authz.HostUnauthorizedException;
+import org.ki.cache.CacheManagerAware;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.Session;
+import org.ki.session.SessionListener;
+import org.ki.session.SessionListenerRegistrar;
+import org.ki.session.mgt.AbstractSessionManager;
+import org.ki.session.mgt.AbstractValidatingSessionManager;
+import org.ki.session.mgt.DefaultSessionManager;
+import org.ki.session.mgt.SessionManager;
+import org.ki.util.LifecycleUtils;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -37,7 +37,7 @@
 
 /**
  * JSecurity support of a {@link SecurityManager} class hierarchy that delegates all
- * {@link org.jsecurity.session.Session session} operations to a wrapped {@link SessionManager SessionManager}
+ * {@link org.ki.session.Session session} operations to a wrapped {@link SessionManager SessionManager}
  * instance.  That is, this class implements the methods in the
  * {@link SessionManager SessionManager} interface, but in reality, those methods are merely passthrough calls to
  * the underlying 'real' {@code SessionManager} instance.
@@ -95,7 +95,7 @@
      * Returns this security manager's internal delegate {@link SessionManager SessionManager}.
      *
      * @return this security manager's internal delegate {@link SessionManager SessionManager}.
-     * @see #setSessionManager(org.jsecurity.session.mgt.SessionManager) setSessionManager
+     * @see #setSessionManager(org.ki.session.mgt.SessionManager) setSessionManager
      */
     public SessionManager getSessionManager() {
         return this.sessionManager;
@@ -156,7 +156,7 @@
                     "The current SessionManager is of type [" + this.sessionManager.getClass().getName() + "].  " +
                     "This might occur for example if you're trying to set the validation interval or auto session " +
                     "creation in a servlet container-backed session environment ('http' session mode).  If that is " +
-                    "the case however, that property is only useful when using 'jsecurity' session mode and using " +
+                    "the case however, that property is only useful when using 'ki' session mode and using " +
                     "JSecurity enterprise sessions which do not rely on a servlet container.";
             throw new IllegalStateException(msg);
         }
@@ -165,13 +165,13 @@
     /**
      * Passthrough configuration property to the underlying {@link AbstractSessionManager AbstractSessionManager}
      * instance.  Please read the
-     * {@link org.jsecurity.session.mgt.AbstractSessionManager#getGlobalSessionTimeout() AbstractSessionManager.getGlobalSessionTimeout()}
+     * {@link org.ki.session.mgt.AbstractSessionManager#getGlobalSessionTimeout() AbstractSessionManager.getGlobalSessionTimeout()}
      * for more.
      *
      * @return the time in milliseconds that any {@link Session Session} may remain idle before expiring.
      * @throws IllegalStateException if the underlying {@code SessionManager} instance is not a subclass of
      *                               {@link AbstractSessionManager AbstractSessionManager}.
-     * @see org.jsecurity.session.mgt.AbstractSessionManager#getGlobalSessionTimeout()
+     * @see org.ki.session.mgt.AbstractSessionManager#getGlobalSessionTimeout()
      */
     public long getGlobalSessionTimeout() {
         assertSessionManager(AbstractSessionManager.class);
@@ -181,13 +181,13 @@
     /**
      * Passthrough configuration property to the underlying {@link AbstractSessionManager AbstractSessionManager}
      * instance.  Please read the
-     * {@link org.jsecurity.session.mgt.AbstractSessionManager#setGlobalSessionTimeout(long) AbstractSessionManager.setGlobalSessionTimeout(long)}
+     * {@link org.ki.session.mgt.AbstractSessionManager#setGlobalSessionTimeout(long) AbstractSessionManager.setGlobalSessionTimeout(long)}
      * for more.
      *
      * @param globalSessionTimeout the time in milliseconds that any {@link Session Session} may remain idle before expiring.
      * @throws IllegalStateException if the underlying {@code SessionManager} instance is not a subclass of
      *                               {@link AbstractSessionManager AbstractSessionManager}.
-     * @see org.jsecurity.session.mgt.AbstractSessionManager#setGlobalSessionTimeout(long)
+     * @see org.ki.session.mgt.AbstractSessionManager#setGlobalSessionTimeout(long)
      */
     public void setGlobalSessionTimeout(long globalSessionTimeout) {
         assertSessionManager(AbstractSessionManager.class);
@@ -201,13 +201,13 @@
      * accustomed based on years of servlet container behavior.
      * <p/>
      * When true (the default), the wrapped {@link AbstractValidatingSessionManager} implementation throws an
-     * {@link org.jsecurity.session.ReplacedSessionException ReplacedSessionException} to the caller whenever a new
+     * {@link org.ki.session.ReplacedSessionException ReplacedSessionException} to the caller whenever a new
      * session is created so the caller can receive the new session ID and react accordingly for future
      * {@link SessionManager SessionManager} method invocations.
      *
      * @param autoCreate if the wrapped {@link AbstractValidatingSessionManager} should automatically create a new
      *                   session when an invalid session is referenced
-     * @see org.jsecurity.session.mgt.AbstractValidatingSessionManager#setAutoCreateAfterInvalidation(boolean)
+     * @see org.ki.session.mgt.AbstractValidatingSessionManager#setAutoCreateAfterInvalidation(boolean)
      */
     public void setAutoCreateSessionAfterInvalidation(boolean autoCreate) {
         assertSessionManager(AbstractValidatingSessionManager.class);
@@ -222,13 +222,13 @@
      * developer convenience and to match what most people are accustomed based on years of servlet container behavior.
      * <p/>
      * When true (the default), the wrapped {@link AbstractValidatingSessionManager AbstractValidatingSessionManager}
-     * implementation throws an {@link org.jsecurity.session.ReplacedSessionException ReplacedSessionException} to
+     * implementation throws an {@link org.ki.session.ReplacedSessionException ReplacedSessionException} to
      * the caller whenever a new session is created so the caller can receive the new session ID and react accordingly
      * for future {@link SessionManager SessionManager} method invocations.
      *
      * @return <code>true</code> if this session manager should automatically create a new session when an invalid
      *         session is referenced, <code>false</code> otherwise.
-     * @see org.jsecurity.session.mgt.AbstractValidatingSessionManager#isAutoCreateAfterInvalidation()
+     * @see org.ki.session.mgt.AbstractValidatingSessionManager#isAutoCreateAfterInvalidation()
      */
     public boolean isAutoCreateSessionAfterInvalidation() {
         assertSessionManager(AbstractValidatingSessionManager.class);
@@ -237,7 +237,7 @@
 
     /**
      * Ensures the internal SessionManager instance is an <code>instanceof</code>
-     * {@link org.jsecurity.session.SessionListenerRegistrar SessionListenerRegistrar} to ensure that any
+     * {@link org.ki.session.SessionListenerRegistrar SessionListenerRegistrar} to ensure that any
      * listeners attempting to be registered can actually do so with the internal delegate instance.
      *
      * @throws IllegalStateException if the internal delegate SessionManager instance does not implement the
diff --git a/core/src/org/jsecurity/mgt/SubjectBinder.java b/core/src/org/ki/mgt/SubjectBinder.java
similarity index 93%
rename from core/src/org/jsecurity/mgt/SubjectBinder.java
rename to core/src/org/ki/mgt/SubjectBinder.java
index d06b021..64c572d 100644
--- a/core/src/org/jsecurity/mgt/SubjectBinder.java
+++ b/core/src/org/ki/mgt/SubjectBinder.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.subject.Subject;
+import org.ki.subject.Subject;
 
 /**
  * TODO - Class JavaDoc
diff --git a/core/src/org/jsecurity/mgt/SubjectFactory.java b/core/src/org/ki/mgt/SubjectFactory.java
similarity index 93%
rename from core/src/org/jsecurity/mgt/SubjectFactory.java
rename to core/src/org/ki/mgt/SubjectFactory.java
index 1fe22ba..2c2e767 100644
--- a/core/src/org/jsecurity/mgt/SubjectFactory.java
+++ b/core/src/org/ki/mgt/SubjectFactory.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.Subject;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.session.Session;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.Subject;
 
 import java.net.InetAddress;
 
diff --git a/core/src/org/jsecurity/mgt/ThreadContextSubjectBinder.java b/core/src/org/ki/mgt/ThreadContextSubjectBinder.java
similarity index 92%
rename from core/src/org/jsecurity/mgt/ThreadContextSubjectBinder.java
rename to core/src/org/ki/mgt/ThreadContextSubjectBinder.java
index 8af9b00..260d03c 100644
--- a/core/src/org/jsecurity/mgt/ThreadContextSubjectBinder.java
+++ b/core/src/org/ki/mgt/ThreadContextSubjectBinder.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.ThreadContext;
+import org.ki.subject.Subject;
+import org.ki.util.ThreadContext;
 
 /**
  * Associates a {@link Subject Subject} instance to the currently executing thread via the {
@@ -29,7 +29,7 @@
  * @author Les Hazlewood
  * @link ThreadContext ThreadContext} to ensure that the <code>Subject</code> is accessible to any caller during
  * thread execution.
- * @see org.jsecurity.SecurityUtils#getSubject SecurityUtils.getSubject()
+ * @see org.ki.SecurityUtils#getSubject SecurityUtils.getSubject()
  * @since 1.0
  */
 public class ThreadContextSubjectBinder implements SubjectBinder {
diff --git a/core/src/org/jsecurity/mgt/package-info.java b/core/src/org/ki/mgt/package-info.java
similarity index 85%
rename from core/src/org/jsecurity/mgt/package-info.java
rename to core/src/org/ki/mgt/package-info.java
index 8e597f2..7bd03d8 100644
--- a/core/src/org/jsecurity/mgt/package-info.java
+++ b/core/src/org/ki/mgt/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 /**
- * Provides the master {@link org.jsecurity.mgt.SecurityManager SecurityManager} interface and a default implementation
+ * Provides the master {@link org.ki.mgt.SecurityManager SecurityManager} interface and a default implementation
  * hierarchy for managing all aspects of JSecurity's functionality in an application.
  */
-package org.jsecurity.mgt;
\ No newline at end of file
+package org.ki.mgt;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/package-info.java b/core/src/org/ki/package-info.java
similarity index 85%
rename from core/src/org/jsecurity/package-info.java
rename to core/src/org/ki/package-info.java
index 3b36e0f..ce0b73f 100644
--- a/core/src/org/jsecurity/package-info.java
+++ b/core/src/org/ki/package-info.java
@@ -18,7 +18,7 @@
  */

 /**

  * This package primarily exists as a root classpath distinction, but it does contain two core classes widely used

- * by applications, {@link org.jsecurity.SecurityUtils SecurityUtils} and

- * {@link org.jsecurity.JSecurityException JSecurityException}.

+ * by applications, {@link org.ki.SecurityUtils SecurityUtils} and

+ * {@link org.ki.JSecurityException JSecurityException}.

  */

-package org.jsecurity;
\ No newline at end of file
+package org.ki;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/realm/AuthenticatingRealm.java b/core/src/org/ki/realm/AuthenticatingRealm.java
similarity index 92%
rename from core/src/org/jsecurity/realm/AuthenticatingRealm.java
rename to core/src/org/ki/realm/AuthenticatingRealm.java
index 708b5da..32f3b9d 100644
--- a/core/src/org/jsecurity/realm/AuthenticatingRealm.java
+++ b/core/src/org/ki/realm/AuthenticatingRealm.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm;
+package org.ki.realm;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.*;
-import org.jsecurity.authc.credential.AllowAllCredentialsMatcher;
-import org.jsecurity.authc.credential.CredentialsMatcher;
-import org.jsecurity.authc.credential.SimpleCredentialsMatcher;
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.*;
+import org.ki.authc.credential.AllowAllCredentialsMatcher;
+import org.ki.authc.credential.CredentialsMatcher;
+import org.ki.authc.credential.SimpleCredentialsMatcher;
+import org.ki.cache.CacheManager;
+import org.ki.subject.PrincipalCollection;
 
 /**
  * A top-level abstract implementation of the <tt>Realm</tt> interface that only implements authentication support
@@ -62,7 +62,7 @@
 
     /**
      * The class that this realm supports for authentication tokens.  This is used by the
-     * default implementation of the {@link Realm#supports(org.jsecurity.authc.AuthenticationToken)} method to
+     * default implementation of the {@link Realm#supports(org.ki.authc.AuthenticationToken)} method to
      * determine whether or not the given authentication token is supported by this realm.
      */
     private Class<? extends AuthenticationToken> authenticationTokenClass = UsernamePasswordToken.class;
@@ -94,7 +94,7 @@
      * credentials with those stored in the system.
      *
      * <p>Unless overridden by the {@link #setCredentialsMatcher setCredentialsMatcher} method, the default
-     * value is a {@link org.jsecurity.authc.credential.SimpleCredentialsMatcher SimpleCredentialsMatcher} instance.
+     * value is a {@link org.ki.authc.credential.SimpleCredentialsMatcher SimpleCredentialsMatcher} instance.
      *
      * @return the <code>CredentialsMatcher</code> used during an authentication attempt to verify submitted
      *         credentials with those stored in the system.
@@ -109,7 +109,7 @@
      * support any number of schemes, including plain text comparisons, hashing comparisons, and others.
      *
      * <p>Unless overridden by this method, the default value is a
-     * {@link org.jsecurity.authc.credential.SimpleCredentialsMatcher} instance.
+     * {@link org.ki.authc.credential.SimpleCredentialsMatcher} instance.
      *
      * @param credentialsMatcher the matcher to use.
      */
@@ -207,7 +207,7 @@
      * @param token the authentication token containing the user's principal and credentials.
      * @return an {@link AuthenticationInfo} object containing account data resulting from the
      *         authentication ONLY if the lookup is successful (i.e. account exists and is valid, etc.)
-     * @throws org.jsecurity.authc.AuthenticationException
+     * @throws org.ki.authc.AuthenticationException
      *          if there is an error acquiring data or performing
      *          realm-specific authentication logic for the specified <tt>token</tt>
      */
@@ -225,7 +225,7 @@
      * argument could contain principals returned by many realms.  Therefore the subclass implementation would need
      * to know how to extract the principal(s) relevant to only itself and ignore other realms' principals.  This is
      * usually done by calling {@link PrincipalCollection#fromRealm(String) principals.fromRealm(name)},
-     * using the realm's own {@link org.jsecurity.realm.Realm#getName() name}.
+     * using the realm's own {@link org.ki.realm.Realm#getName() name}.
      *
      * @param principals the application-specific Subject/user identifier that is logging out.
      */
diff --git a/core/src/org/jsecurity/realm/AuthorizingRealm.java b/core/src/org/ki/realm/AuthorizingRealm.java
similarity index 95%
rename from core/src/org/jsecurity/realm/AuthorizingRealm.java
rename to core/src/org/ki/realm/AuthorizingRealm.java
index 6a841fd..7b97eff 100644
--- a/core/src/org/jsecurity/realm/AuthorizingRealm.java
+++ b/core/src/org/ki/realm/AuthorizingRealm.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm;
+package org.ki.realm;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.credential.CredentialsMatcher;
-import org.jsecurity.authz.*;
-import org.jsecurity.authz.permission.PermissionResolver;
-import org.jsecurity.authz.permission.PermissionResolverAware;
-import org.jsecurity.authz.permission.WildcardPermissionResolver;
-import org.jsecurity.cache.Cache;
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.util.Initializable;
+import org.ki.authc.credential.CredentialsMatcher;
+import org.ki.authz.*;
+import org.ki.authz.permission.PermissionResolver;
+import org.ki.authz.permission.PermissionResolverAware;
+import org.ki.authz.permission.WildcardPermissionResolver;
+import org.ki.cache.Cache;
+import org.ki.cache.CacheManager;
+import org.ki.subject.PrincipalCollection;
+import org.ki.util.Initializable;
 
 import java.util.*;
 
@@ -38,7 +38,7 @@
  *
  * <p>This implementation will perform all role and permission checks automatically (and subclasses do not have to
  * write this logic) as long as the
- * {@link #getAuthorizationInfo(org.jsecurity.subject.PrincipalCollection)} method returns an
+ * {@link #getAuthorizationInfo(org.ki.subject.PrincipalCollection)} method returns an
  * {@link AuthorizationInfo}.  Please see that method's JavaDoc for an in-depth explanation.
  *
  * <p>If you find that you do not want to utilize the {@link AuthorizationInfo AuthorizationInfo} construct,
@@ -146,7 +146,7 @@
      * If a <tt>cacheManager</tt> has been set, it will be used to create an authorization
      * <tt>cache</tt>, and this newly created cache which will be used as specified in #1.</li>
      * <li>If neither the {@link #setAuthorizationCache (org.jsecurity.cache.Cache) cache}
-     * or {@link #setCacheManager(org.jsecurity.cache.CacheManager) cacheManager}
+     * or {@link #setCacheManager(org.ki.cache.CacheManager) cacheManager}
      * properties are set, caching will be disabled and authorization lookups will be delegated to
      * subclass implementations for each authorization check.</li>
      * </ol>
@@ -209,11 +209,11 @@
      *
      * <p>This implementation obtains the actual <code>AuthorizationInfo</code> object from the subclass's
      * implementation of
-     * {@link #doGetAuthorizationInfo(org.jsecurity.subject.PrincipalCollection) doGetAuthorizationInfo}, and then
+     * {@link #doGetAuthorizationInfo(org.ki.subject.PrincipalCollection) doGetAuthorizationInfo}, and then
      * caches it for efficient reuse if caching is enabled (see below).
      *
      * <p>Invocations of this method should be thought of as completely orthogonal to acquiring
-     * {@link #getAuthenticationInfo(org.jsecurity.authc.AuthenticationToken) authenticationInfo}, since either could
+     * {@link #getAuthenticationInfo(org.ki.authc.AuthenticationToken) authenticationInfo}, since either could
      * occur in any order.
      *
      * <p>For example, in &quot;Remember Me&quot; scenarios, the user identity is remembered (and
@@ -237,7 +237,7 @@
      * <p><b>Please note:</b>  If caching is enabled and if any authorization data for an account is changed at
      * runtime, such as adding or removing roles and/or permissions, the subclass imlementation should clear the
      * cached AuthorizationInfo for that account via the
-     * {@link #clearCachedAuthorizationInfo(org.jsecurity.subject.PrincipalCollection) clearCachedAuthorizationInfo}
+     * {@link #clearCachedAuthorizationInfo(org.ki.subject.PrincipalCollection) clearCachedAuthorizationInfo}
      * method.  This ensures that the next call to <code>getAuthorizationInfo(PrincipalCollection)</code> will
      * acquire the account's fresh authorization data, where it will then be cached for efficient reuse.  This
      * ensures that stale authorization data will not be reused.
@@ -305,7 +305,7 @@
      * subsequent authorization operations don't used the (old) cached value if account data changes.
      * <p/>
      * After this method is called, the next authorization check for that same account will result in a call to
-     * {@link #getAuthorizationInfo(org.jsecurity.subject.PrincipalCollection) getAuthorizationInfo}, and the
+     * {@link #getAuthorizationInfo(org.ki.subject.PrincipalCollection) getAuthorizationInfo}, and the
      * resulting return value will be cached before being returned so it can be reused for later authorization checks.
      *
      * @param principals the principals of the account for which to clear the cached AuthorizationInfo.
diff --git a/core/src/org/jsecurity/realm/CachingRealm.java b/core/src/org/ki/realm/CachingRealm.java
similarity index 95%
rename from core/src/org/jsecurity/realm/CachingRealm.java
rename to core/src/org/ki/realm/CachingRealm.java
index b75feae..44147c4 100644
--- a/core/src/org/jsecurity/realm/CachingRealm.java
+++ b/core/src/org/ki/realm/CachingRealm.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm;
+package org.ki.realm;
 
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.cache.CacheManagerAware;
+import org.ki.cache.CacheManager;
+import org.ki.cache.CacheManagerAware;
 
 /**
  * <p>A very basic abstract extension point for the {@link Realm} interface that provides logging and caching support.
diff --git a/core/src/org/jsecurity/realm/Realm.java b/core/src/org/ki/realm/Realm.java
similarity index 90%
rename from core/src/org/jsecurity/realm/Realm.java
rename to core/src/org/ki/realm/Realm.java
index 1b9dfae..c16d866 100644
--- a/core/src/org/jsecurity/realm/Realm.java
+++ b/core/src/org/ki/realm/Realm.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm;
+package org.ki.realm;
 
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authz.Authorizer;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authz.Authorizer;
 
 /**
  * A <tt>Realm</tt> is a security component that can access application-specific security entities
@@ -38,7 +38,7 @@
  * <a href="http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules">PAM</a> configuration.  This allows a Realm to
  * perform <i>both</i> authentication and authorization duties for a single datasource, which caters to the large
  * majority of applications.  If for some reason you don't want your Realm implementation to perform authentication
- * duties, you should override the {@link #supports(org.jsecurity.authc.AuthenticationToken)} method to always
+ * duties, you should override the {@link #supports(org.ki.authc.AuthenticationToken)} method to always
  * return <tt>false</tt>.
  *
  * <p>Because every application is different, security data such as users and roles can be
@@ -60,7 +60,7 @@
  * @see CachingRealm CachingRealm
  * @see AuthenticatingRealm AuthenticatingRealm
  * @see AuthorizingRealm AuthorizingRealm
- * @see org.jsecurity.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator
+ * @see org.ki.authc.pam.ModularRealmAuthenticator ModularRealmAuthenticator
  * @since 0.1
  */
 public interface Realm extends Authorizer {
@@ -75,7 +75,7 @@
 
     /**
      * Returns <tt>true</tt> if this realm wishes to authenticate the Subject represented by the given
-     * {@link org.jsecurity.authc.AuthenticationToken AuthenticationToken} instance, <tt>false</tt> otherwise.
+     * {@link org.ki.authc.AuthenticationToken AuthenticationToken} instance, <tt>false</tt> otherwise.
      *
      * <p>If this method returns <tt>false</tt>, it will not be called to authenticate the Subject represented by
      * the token - more specifically, a <tt>false</tt> return value means this Realm instance's
@@ -99,7 +99,7 @@
      * @param token the application-specific representation of an account principal and credentials.
      * @return the authentication information for the account associated with the specified <tt>token</tt>,
      *         or <tt>null</tt> if no account could be found.
-     * @throws org.jsecurity.authc.AuthenticationException
+     * @throws org.ki.authc.AuthenticationException
      *          if there is an error obtaining or constructing an AuthenticationInfo object based on the
      *          specified <tt>token</tt> or implementation-specifc login behavior fails.
      */
diff --git a/core/src/org/jsecurity/realm/RealmFactory.java b/core/src/org/ki/realm/RealmFactory.java
similarity index 93%
rename from core/src/org/jsecurity/realm/RealmFactory.java
rename to core/src/org/ki/realm/RealmFactory.java
index 64f0de8..3cdb071 100644
--- a/core/src/org/jsecurity/realm/RealmFactory.java
+++ b/core/src/org/ki/realm/RealmFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm;

+package org.ki.realm;

 

 import java.util.Collection;

 

@@ -30,7 +30,7 @@
  * already-created <tt>Realm</tt>s.

  *

  * <p>The <code>Realm</code> instances returned will used to construct the application's

- * {@link org.jsecurity.mgt.SecurityManager SecurityManager} instance.

+ * {@link org.ki.mgt.SecurityManager SecurityManager} instance.

  *

  * @since 0.9

  */

@@ -40,7 +40,7 @@
      * Returns a collection of {@link Realm Realm} instances that will be used to construct

      * the application's SecurityManager instance.

      *

-     * <p>The order of the collection is important.  The {@link org.jsecurity.mgt.SecurityManager SecurityManager}

+     * <p>The order of the collection is important.  The {@link org.ki.mgt.SecurityManager SecurityManager}

      * implementation will consult the Realms during authentication (log-in) and authorization (access control)

      * operations in the collection's <b>iteration order</b>.  That is, the resulting collection's

      * {@link java.util.Iterator Iterator} determines the order in which Realms are used.

diff --git a/core/src/org/jsecurity/realm/SimpleAccountRealm.java b/core/src/org/ki/realm/SimpleAccountRealm.java
similarity index 92%
rename from core/src/org/jsecurity/realm/SimpleAccountRealm.java
rename to core/src/org/ki/realm/SimpleAccountRealm.java
index 1673783..59ec62a 100644
--- a/core/src/org/jsecurity/realm/SimpleAccountRealm.java
+++ b/core/src/org/ki/realm/SimpleAccountRealm.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm;
+package org.ki.realm;
 
-import org.jsecurity.authc.*;
-import org.jsecurity.authz.AuthorizationInfo;
-import org.jsecurity.authz.SimpleAuthorizingAccount;
-import org.jsecurity.authz.SimpleRole;
-import org.jsecurity.cache.Cache;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.util.CollectionUtils;
+import org.ki.authc.*;
+import org.ki.authz.AuthorizationInfo;
+import org.ki.authz.SimpleAuthorizingAccount;
+import org.ki.authz.SimpleRole;
+import org.ki.cache.Cache;
+import org.ki.subject.PrincipalCollection;
+import org.ki.util.CollectionUtils;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -32,7 +32,7 @@
 import java.util.Set;
 
 /**
- * <p>A simple implementation of the {@link org.jsecurity.realm.Realm Realm} interface that
+ * <p>A simple implementation of the {@link org.ki.realm.Realm Realm} interface that
  * uses a set of configured user accounts and roles to support authentication and authorization.  Each account entry
  * specifies the username, password, and roles for a user.  Roles can also be mapped
  * to permissions and associated with users.</p>
diff --git a/core/src/org/jsecurity/realm/activedirectory/ActiveDirectoryRealm.java b/core/src/org/ki/realm/activedirectory/ActiveDirectoryRealm.java
similarity index 93%
rename from core/src/org/jsecurity/realm/activedirectory/ActiveDirectoryRealm.java
rename to core/src/org/ki/realm/activedirectory/ActiveDirectoryRealm.java
index 89d3c7d..9fdfdc1 100644
--- a/core/src/org/jsecurity/realm/activedirectory/ActiveDirectoryRealm.java
+++ b/core/src/org/ki/realm/activedirectory/ActiveDirectoryRealm.java
@@ -16,21 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm.activedirectory;
+package org.ki.realm.activedirectory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.SimpleAuthenticationInfo;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.authz.AuthorizationInfo;
-import org.jsecurity.authz.SimpleAuthorizationInfo;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.realm.ldap.AbstractLdapRealm;
-import org.jsecurity.realm.ldap.LdapContextFactory;
-import org.jsecurity.realm.ldap.LdapUtils;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.SimpleAuthenticationInfo;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.authz.AuthorizationInfo;
+import org.ki.authz.SimpleAuthorizationInfo;
+import org.ki.realm.Realm;
+import org.ki.realm.ldap.AbstractLdapRealm;
+import org.ki.realm.ldap.LdapContextFactory;
+import org.ki.realm.ldap.LdapUtils;
+import org.ki.subject.PrincipalCollection;
 
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
diff --git a/core/src/org/jsecurity/realm/activedirectory/package-info.java b/core/src/org/ki/realm/activedirectory/package-info.java
similarity index 95%
rename from core/src/org/jsecurity/realm/activedirectory/package-info.java
rename to core/src/org/ki/realm/activedirectory/package-info.java
index eef68ae..f6504dd 100644
--- a/core/src/org/jsecurity/realm/activedirectory/package-info.java
+++ b/core/src/org/ki/realm/activedirectory/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Realms that acquire security data from a Microsoft Active Directory.

  */

-package org.jsecurity.realm.activedirectory;
\ No newline at end of file
+package org.ki.realm.activedirectory;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java b/core/src/org/ki/realm/jdbc/JdbcRealm.java
similarity index 95%
rename from core/src/org/jsecurity/realm/jdbc/JdbcRealm.java
rename to core/src/org/ki/realm/jdbc/JdbcRealm.java
index 5768f4b..e00357c 100644
--- a/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java
+++ b/core/src/org/ki/realm/jdbc/JdbcRealm.java
@@ -16,17 +16,17 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm.jdbc;

+package org.ki.realm.jdbc;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.authc.*;

-import org.jsecurity.authz.AuthorizationException;

-import org.jsecurity.authz.AuthorizationInfo;

-import org.jsecurity.authz.SimpleAuthorizationInfo;

-import org.jsecurity.realm.AuthorizingRealm;

-import org.jsecurity.subject.PrincipalCollection;

-import org.jsecurity.util.JdbcUtils;

+import org.ki.authc.*;

+import org.ki.authz.AuthorizationException;

+import org.ki.authz.AuthorizationInfo;

+import org.ki.authz.SimpleAuthorizationInfo;

+import org.ki.realm.AuthorizingRealm;

+import org.ki.subject.PrincipalCollection;

+import org.ki.util.JdbcUtils;

 

 import javax.sql.DataSource;

 import java.sql.Connection;

@@ -47,12 +47,12 @@
  * <p>

  * If the default implementation

  * of authentication and authorization cannot handle your schema, this class can be subclassed and the

- * appropriate methods overridden. (usually {@link #doGetAuthenticationInfo(org.jsecurity.authc.AuthenticationToken)},

+ * appropriate methods overridden. (usually {@link #doGetAuthenticationInfo(org.ki.authc.AuthenticationToken)},

  * {@link #getRoleNamesForUser(java.sql.Connection,String)}, and/or {@link #getPermissions(java.sql.Connection,String,java.util.Collection)}

  * </p>

  *

  * <p>

- * This realm supports caching by extending from {@link org.jsecurity.realm.AuthorizingRealm}.

+ * This realm supports caching by extending from {@link org.ki.realm.AuthorizingRealm}.

  * </p>

  *

  * @author Jeremy Haile

@@ -116,7 +116,7 @@
      * Overrides the default query used to retrieve a user's password during authentication.  When using the default

      * implementation, this query must take the user's username as a single parameter and return a single result

      * with the user's password as the first column.  If you require a solution that does not match this query

-     * structure, you can override {@link #doGetAuthenticationInfo(org.jsecurity.authc.AuthenticationToken)} or

+     * structure, you can override {@link #doGetAuthenticationInfo(org.ki.authc.AuthenticationToken)} or

      * just {@link #getPasswordForUser(java.sql.Connection,String)}

      *

      * @param authenticationQuery the query to use for authentication.

@@ -254,7 +254,7 @@
      * This implementation of the interface expects the principals collection to return a String username keyed off of

      * this realm's {@link #getName() name}

      *

-     * @see AuthorizingRealm#getAuthorizationInfo(org.jsecurity.subject.PrincipalCollection)

+     * @see AuthorizingRealm#getAuthorizationInfo(org.ki.subject.PrincipalCollection)

      */

     @Override

     protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

diff --git a/core/src/org/jsecurity/realm/jdbc/package-info.java b/core/src/org/ki/realm/jdbc/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/realm/jdbc/package-info.java
rename to core/src/org/ki/realm/jdbc/package-info.java
index f30d383..87b3f50 100644
--- a/core/src/org/jsecurity/realm/jdbc/package-info.java
+++ b/core/src/org/ki/realm/jdbc/package-info.java
@@ -20,4 +20,4 @@
  * Realms that acquire security data from an RDBMS (Relational Database Management System) using the 

  * JDBC API.

  */

-package org.jsecurity.realm.jdbc;
\ No newline at end of file
+package org.ki.realm.jdbc;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/realm/jndi/JndiRealmFactory.java b/core/src/org/ki/realm/jndi/JndiRealmFactory.java
similarity index 95%
rename from core/src/org/jsecurity/realm/jndi/JndiRealmFactory.java
rename to core/src/org/ki/realm/jndi/JndiRealmFactory.java
index 619d2ee..479585c 100644
--- a/core/src/org/jsecurity/realm/jndi/JndiRealmFactory.java
+++ b/core/src/org/ki/realm/jndi/JndiRealmFactory.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm.jndi;

+package org.ki.realm.jndi;

 

-import org.jsecurity.jndi.JndiLocator;

-import org.jsecurity.realm.Realm;

-import org.jsecurity.realm.RealmFactory;

-import org.jsecurity.util.StringUtils;

+import org.ki.jndi.JndiLocator;

+import org.ki.realm.Realm;

+import org.ki.realm.RealmFactory;

+import org.ki.util.StringUtils;

 

 import java.util.ArrayList;

 import java.util.Arrays;

diff --git a/core/src/org/jsecurity/realm/jndi/package-info.java b/core/src/org/ki/realm/jndi/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/realm/jndi/package-info.java
rename to core/src/org/ki/realm/jndi/package-info.java
index 58971d1..e145ab9 100644
--- a/core/src/org/jsecurity/realm/jndi/package-info.java
+++ b/core/src/org/ki/realm/jndi/package-info.java
@@ -18,4 +18,4 @@
  */

 /**

  * Support for acquiring Realms from JNDI, particularly useful for configuring JSecurity in JEE or EJB environments. */

-package org.jsecurity.realm.jndi;
\ No newline at end of file
+package org.ki.realm.jndi;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/realm/ldap/AbstractLdapRealm.java b/core/src/org/ki/realm/ldap/AbstractLdapRealm.java
similarity index 94%
rename from core/src/org/jsecurity/realm/ldap/AbstractLdapRealm.java
rename to core/src/org/ki/realm/ldap/AbstractLdapRealm.java
index d615294..ab01a83 100644
--- a/core/src/org/jsecurity/realm/ldap/AbstractLdapRealm.java
+++ b/core/src/org/ki/realm/ldap/AbstractLdapRealm.java
@@ -16,17 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm.ldap;
+package org.ki.realm.ldap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authz.AuthorizationInfo;
-import org.jsecurity.realm.AuthorizingRealm;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authz.AuthorizationInfo;
+import org.ki.realm.AuthorizingRealm;
+import org.ki.realm.Realm;
+import org.ki.subject.PrincipalCollection;
 
 import javax.naming.NamingException;
 
@@ -37,7 +37,7 @@
  * list as well.</p>
  *
  * <p>Implementations would need to implement the
- * {@link #queryForAuthenticationInfo(org.jsecurity.authc.AuthenticationToken,LdapContextFactory)} and
+ * {@link #queryForAuthenticationInfo(org.ki.authc.AuthenticationToken,LdapContextFactory)} and
  * {@link #queryForAuthorizationInfo(PrincipalCollection,LdapContextFactory)} abstract methods.</p>
  *
  * <p>By default, this implementation will create an instance of {@link DefaultLdapContextFactory} to use for
@@ -48,7 +48,7 @@
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
- * @see #queryForAuthenticationInfo(org.jsecurity.authc.AuthenticationToken, LdapContextFactory)
+ * @see #queryForAuthenticationInfo(org.ki.authc.AuthenticationToken, LdapContextFactory)
  * @see #queryForAuthorizationInfo(PrincipalCollection, LdapContextFactory)
  * @since 0.1
  */
diff --git a/core/src/org/jsecurity/realm/ldap/DefaultLdapContextFactory.java b/core/src/org/ki/realm/ldap/DefaultLdapContextFactory.java
similarity index 99%
rename from core/src/org/jsecurity/realm/ldap/DefaultLdapContextFactory.java
rename to core/src/org/ki/realm/ldap/DefaultLdapContextFactory.java
index e871df3..57c030d 100644
--- a/core/src/org/jsecurity/realm/ldap/DefaultLdapContextFactory.java
+++ b/core/src/org/ki/realm/ldap/DefaultLdapContextFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm.ldap;
+package org.ki.realm.ldap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/core/src/org/jsecurity/realm/ldap/LdapContextFactory.java b/core/src/org/ki/realm/ldap/LdapContextFactory.java
similarity index 98%
rename from core/src/org/jsecurity/realm/ldap/LdapContextFactory.java
rename to core/src/org/ki/realm/ldap/LdapContextFactory.java
index 5fa5784..80b053f 100644
--- a/core/src/org/jsecurity/realm/ldap/LdapContextFactory.java
+++ b/core/src/org/ki/realm/ldap/LdapContextFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm.ldap;
+package org.ki.realm.ldap;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.LdapContext;
diff --git a/core/src/org/jsecurity/realm/ldap/LdapUtils.java b/core/src/org/ki/realm/ldap/LdapUtils.java
similarity index 98%
rename from core/src/org/jsecurity/realm/ldap/LdapUtils.java
rename to core/src/org/ki/realm/ldap/LdapUtils.java
index 76fd8f4..5bba55a 100644
--- a/core/src/org/jsecurity/realm/ldap/LdapUtils.java
+++ b/core/src/org/ki/realm/ldap/LdapUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm.ldap;

+package org.ki.realm.ldap;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/core/src/org/jsecurity/realm/ldap/package-info.java b/core/src/org/ki/realm/ldap/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/realm/ldap/package-info.java
rename to core/src/org/ki/realm/ldap/package-info.java
index 69715e9..f703ec6 100644
--- a/core/src/org/jsecurity/realm/ldap/package-info.java
+++ b/core/src/org/ki/realm/ldap/package-info.java
@@ -20,4 +20,4 @@
  * Realms that acquire security data from an LDAP (Lightweight Directory Access Protocol) server

  * utilizing LDAP/Naming APIs.

  */

-package org.jsecurity.realm.ldap;
\ No newline at end of file
+package org.ki.realm.ldap;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/realm/package-info.java b/core/src/org/ki/realm/package-info.java
similarity index 93%
rename from core/src/org/jsecurity/realm/package-info.java
rename to core/src/org/ki/realm/package-info.java
index 6db7cfe..ac730e3 100644
--- a/core/src/org/jsecurity/realm/package-info.java
+++ b/core/src/org/ki/realm/package-info.java
@@ -17,9 +17,9 @@
  * under the License.

  */

 /**

- * Components and sub-packages used in supporting the core {@link org.jsecurity.realm.Realm Realm} interface.

+ * Components and sub-packages used in supporting the core {@link org.ki.realm.Realm Realm} interface.

  * <p/>

  * Take particular note of the multiple sub-packages with existing Realm implementations supporting many

  * environments that you can use use directly or extend for custom behavior.

  */

-package org.jsecurity.realm;
\ No newline at end of file
+package org.ki.realm;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/realm/text/PropertiesRealm.java b/core/src/org/ki/realm/text/PropertiesRealm.java
similarity index 96%
rename from core/src/org/jsecurity/realm/text/PropertiesRealm.java
rename to core/src/org/ki/realm/text/PropertiesRealm.java
index 64e231a..eac9e24 100644
--- a/core/src/org/jsecurity/realm/text/PropertiesRealm.java
+++ b/core/src/org/ki/realm/text/PropertiesRealm.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm.text;

+package org.ki.realm.text;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.JSecurityException;

-import org.jsecurity.cache.CacheManager;

-import org.jsecurity.io.ResourceUtils;

-import org.jsecurity.util.Destroyable;

+import org.ki.JSecurityException;

+import org.ki.cache.CacheManager;

+import org.ki.io.ResourceUtils;

+import org.ki.util.Destroyable;

 

 import java.io.File;

 import java.io.IOException;

@@ -102,8 +102,8 @@
     private static final int DEFAULT_RELOAD_INTERVAL_SECONDS = 10;

     private static final String USERNAME_PREFIX = "user.";

     private static final String ROLENAME_PREFIX = "role.";

-    private static final String DEFAULT_RESOURCE_PATH = "classpath:jsecurity-users.properties";

-    private static final String FAILSAFE_RESOURCE_PATH = "classpath:org/jsecurity/realm/text/default-jsecurity-users.properties";

+    private static final String DEFAULT_RESOURCE_PATH = "classpath:ki-users.properties";

+    private static final String FAILSAFE_RESOURCE_PATH = "classpath:org/ki/realm/text/default-ki-users.properties";

 

     /*--------------------------------------------

     |    I N S T A N C E   V A R I A B L E S    |

@@ -133,7 +133,7 @@
             loadProperties();

         } catch (Exception e) {

             if (log.isInfoEnabled()) {

-                log.info("Unable to find a jsecurity-users.properties file at location [" + this.resourcePath + "].  " +

+                log.info("Unable to find a ki-users.properties file at location [" + this.resourcePath + "].  " +

                         "Defaulting to JSecurity's failsafe properties file (demo use only).");

             }

             this.resourcePath = FAILSAFE_RESOURCE_PATH;

diff --git a/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java b/core/src/org/ki/realm/text/TextConfigurationRealm.java
similarity index 94%
rename from core/src/org/jsecurity/realm/text/TextConfigurationRealm.java
rename to core/src/org/ki/realm/text/TextConfigurationRealm.java
index b9a5488..c9db94a 100644
--- a/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java
+++ b/core/src/org/ki/realm/text/TextConfigurationRealm.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm.text;
+package org.ki.realm.text;
 
-import org.jsecurity.authc.SimpleAccount;
-import org.jsecurity.authz.Permission;
-import org.jsecurity.authz.SimpleRole;
-import org.jsecurity.realm.SimpleAccountRealm;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.util.PermissionUtils;
-import org.jsecurity.util.StringUtils;
+import org.ki.authc.SimpleAccount;
+import org.ki.authz.Permission;
+import org.ki.authz.SimpleRole;
+import org.ki.realm.SimpleAccountRealm;
+import org.ki.subject.PrincipalCollection;
+import org.ki.util.PermissionUtils;
+import org.ki.util.StringUtils;
 
 import java.text.ParseException;
 import java.util.*;
@@ -90,7 +90,7 @@
      * <p><code><em>rolename</em> = <em>permissionDefinition1</em>, <em>permissionDefinition2</em>, ...</code></p>
      *
      * <p>where <em>permissionDefinition</em> is an arbitrary String, but must people will want to use
-     * Strings that conform to the {@link org.jsecurity.authz.permission.WildcardPermission WildcardPermission}
+     * Strings that conform to the {@link org.ki.authz.permission.WildcardPermission WildcardPermission}
      * format for ease of use and flexibility.  Note that if an individual <em>permissionDefnition</em> needs to
      * be internally comma-delimited (e.g. <code>printer:5thFloor:print,info</code>), you will need to surround that
      * definition with double quotes (&quot;) to avoid parsing errors (e.g.
diff --git a/core/src/org/jsecurity/realm/text/default-jsecurity-users.properties b/core/src/org/ki/realm/text/default-jsecurity-users.properties
similarity index 97%
rename from core/src/org/jsecurity/realm/text/default-jsecurity-users.properties
rename to core/src/org/ki/realm/text/default-jsecurity-users.properties
index b4379e5..a342343 100644
--- a/core/src/org/jsecurity/realm/text/default-jsecurity-users.properties
+++ b/core/src/org/ki/realm/text/default-jsecurity-users.properties
@@ -30,7 +30,7 @@
 # own Realms in a real application.
 #
 # The key/value pairs format is defined in the
-# org.jsecurity.realm.text.PropertiesRealm JavaDoc, but it is probably simple
+# org.kitext.PropertiesRealm JavaDoc, but it is probably simple
 # enough that you could figure it out from looking at the definitions below.
 #
 # For those that might not understand the references in this file, the
diff --git a/core/src/org/jsecurity/realm/text/package-info.java b/core/src/org/ki/realm/text/package-info.java
similarity index 96%
rename from core/src/org/jsecurity/realm/text/package-info.java
rename to core/src/org/ki/realm/text/package-info.java
index 8f875db..eb36f02 100644
--- a/core/src/org/jsecurity/realm/text/package-info.java
+++ b/core/src/org/ki/realm/text/package-info.java
@@ -20,4 +20,4 @@
  * Realms that acquire security data from text-based data sources such as <code>File</code>s or
  * text streams.
  */
-package org.jsecurity.realm.text;
\ No newline at end of file
+package org.ki.realm.text;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/session/ExpiredSessionException.java b/core/src/org/ki/session/ExpiredSessionException.java
similarity index 98%
rename from core/src/org/jsecurity/session/ExpiredSessionException.java
rename to core/src/org/ki/session/ExpiredSessionException.java
index 057ff4b..b576c1c 100644
--- a/core/src/org/jsecurity/session/ExpiredSessionException.java
+++ b/core/src/org/ki/session/ExpiredSessionException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/session/InvalidSessionException.java b/core/src/org/ki/session/InvalidSessionException.java
similarity index 96%
rename from core/src/org/jsecurity/session/InvalidSessionException.java
rename to core/src/org/ki/session/InvalidSessionException.java
index 53a7ec1..cc7bd80 100644
--- a/core/src/org/jsecurity/session/InvalidSessionException.java
+++ b/core/src/org/ki/session/InvalidSessionException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
 import java.io.Serializable;
 
@@ -25,7 +25,7 @@
  * when that session is considered invalid.  The meaning of the term 'invalid' is based on
  * application behavior.  For example, a Session is considered invalid if it has been explicitly
  * stopped (e.g. when a user logs-out or when explicitly
- * {@link org.jsecurity.session.Session#stop() stopped} programmatically.  A Session can also be
+ * {@link org.ki.session.Session#stop() stopped} programmatically.  A Session can also be
  * considered invalid if it has expired.
  *
  * @author Les Hazlewood
diff --git a/core/src/org/jsecurity/session/ProxiedSession.java b/core/src/org/ki/session/ProxiedSession.java
similarity index 98%
rename from core/src/org/jsecurity/session/ProxiedSession.java
rename to core/src/org/ki/session/ProxiedSession.java
index 5bafecc..2bccd1b 100644
--- a/core/src/org/jsecurity/session/ProxiedSession.java
+++ b/core/src/org/ki/session/ProxiedSession.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.session;

+package org.ki.session;

 

 import java.io.Serializable;

 import java.net.InetAddress;

diff --git a/core/src/org/jsecurity/session/ReplacedSessionException.java b/core/src/org/ki/session/ReplacedSessionException.java
similarity index 97%
rename from core/src/org/jsecurity/session/ReplacedSessionException.java
rename to core/src/org/ki/session/ReplacedSessionException.java
index fe3707e..84a653b 100644
--- a/core/src/org/jsecurity/session/ReplacedSessionException.java
+++ b/core/src/org/ki/session/ReplacedSessionException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/session/Session.java b/core/src/org/ki/session/Session.java
similarity index 96%
rename from core/src/org/jsecurity/session/Session.java
rename to core/src/org/ki/session/Session.java
index 11171ba..7673d74 100644
--- a/core/src/org/jsecurity/session/Session.java
+++ b/core/src/org/ki/session/Session.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -75,7 +75,7 @@
      * </ul>
      *
      * @return the time in milliseconds the session may remain idle before expiring.
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if the session has been stopped or expired prior to calling this method.
      * @since 0.2
      */
@@ -91,7 +91,7 @@
      * </ul>
      *
      * @param maxIdleTimeInMillis the time in milliseconds that the session may remain idle before expiring.
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if the session has been stopped or expired prior to calling this method.
      * @since 0.2
      */
@@ -104,7 +104,7 @@
      *
      * @return the <tt>InetAddress</tt> of the host that originated this session, or <tt>null</tt>
      *         if the host address is unknown.
-     * @see org.jsecurity.session.mgt.SessionManager#start(java.net.InetAddress)
+     * @see org.ki.session.mgt.SessionManager#start(java.net.InetAddress)
      */
     InetAddress getHostAddress();
 
@@ -152,7 +152,7 @@
      * is explicitly stopped by application code by calling this method directly, it could clear out any
      * authentication state that might exist, thereby effectively &quot;unauthenticating&quot; the <code>Subject</code>.
      * <p/>
-     * As such, you might consider {@link org.jsecurity.subject.Subject#logout logging-out} the 'owning'
+     * As such, you might consider {@link org.ki.subject.Subject#logout logging-out} the 'owning'
      * <code>Subject</code> instead of manually calling this method, as a log out is expected to stop the
      * corresponding session automatically, and also allows framework code to execute additional cleanup logic.
      *
diff --git a/core/src/org/jsecurity/session/SessionException.java b/core/src/org/ki/session/SessionException.java
similarity index 97%
rename from core/src/org/jsecurity/session/SessionException.java
rename to core/src/org/ki/session/SessionException.java
index f54fb37..5ca63a4 100644
--- a/core/src/org/jsecurity/session/SessionException.java
+++ b/core/src/org/ki/session/SessionException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/session/SessionListener.java b/core/src/org/ki/session/SessionListener.java
similarity index 97%
rename from core/src/org/jsecurity/session/SessionListener.java
rename to core/src/org/ki/session/SessionListener.java
index 58821f7..23a5c07 100644
--- a/core/src/org/jsecurity/session/SessionListener.java
+++ b/core/src/org/ki/session/SessionListener.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.session;

+package org.ki.session;

 

 /**

  * Interface to be implemented by components that wish to be notified of events that occur during a 

diff --git a/core/src/org/jsecurity/session/SessionListenerRegistrar.java b/core/src/org/ki/session/SessionListenerRegistrar.java
similarity index 98%
rename from core/src/org/jsecurity/session/SessionListenerRegistrar.java
rename to core/src/org/ki/session/SessionListenerRegistrar.java
index 265350f..981bb4a 100644
--- a/core/src/org/jsecurity/session/SessionListenerRegistrar.java
+++ b/core/src/org/ki/session/SessionListenerRegistrar.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.session;

+package org.ki.session;

 

 import java.util.Collection;

 

diff --git a/core/src/org/jsecurity/session/StoppedSessionException.java b/core/src/org/ki/session/StoppedSessionException.java
similarity index 98%
rename from core/src/org/jsecurity/session/StoppedSessionException.java
rename to core/src/org/ki/session/StoppedSessionException.java
index 9efc807..7763ae2 100644
--- a/core/src/org/jsecurity/session/StoppedSessionException.java
+++ b/core/src/org/ki/session/StoppedSessionException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/session/UnknownSessionException.java b/core/src/org/ki/session/UnknownSessionException.java
similarity index 98%
rename from core/src/org/jsecurity/session/UnknownSessionException.java
rename to core/src/org/ki/session/UnknownSessionException.java
index 66f944f..e91e04d 100644
--- a/core/src/org/jsecurity/session/UnknownSessionException.java
+++ b/core/src/org/ki/session/UnknownSessionException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session;
+package org.ki.session;
 
 import java.io.Serializable;
 
diff --git a/core/src/org/jsecurity/session/mgt/AbstractSessionManager.java b/core/src/org/ki/session/mgt/AbstractSessionManager.java
similarity index 97%
rename from core/src/org/jsecurity/session/mgt/AbstractSessionManager.java
rename to core/src/org/ki/session/mgt/AbstractSessionManager.java
index 46fdee1..0dd2c3d 100644
--- a/core/src/org/jsecurity/session/mgt/AbstractSessionManager.java
+++ b/core/src/org/ki/session/mgt/AbstractSessionManager.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authz.HostUnauthorizedException;
-import org.jsecurity.session.*;
+import org.ki.authz.HostUnauthorizedException;
+import org.ki.session.*;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -118,7 +118,7 @@
      * that the session has been invalidated (stopped or expired).
      * <p/>
      * The default implementation returns an
-     * {@link org.jsecurity.session.mgt.ImmutableProxiedSession ImmutableProxiedSession} instance to ensure
+     * {@link org.ki.session.mgt.ImmutableProxiedSession ImmutableProxiedSession} instance to ensure
      * that the specified <code>session</code> argument is not modified by any listeners.
      *
      * @param session the <code>Session</code> object being invalidated.
diff --git a/core/src/org/jsecurity/session/mgt/AbstractValidatingSessionManager.java b/core/src/org/ki/session/mgt/AbstractValidatingSessionManager.java
similarity index 93%
rename from core/src/org/jsecurity/session/mgt/AbstractValidatingSessionManager.java
rename to core/src/org/ki/session/mgt/AbstractValidatingSessionManager.java
index c77f436..59ca44a 100644
--- a/core/src/org/jsecurity/session/mgt/AbstractValidatingSessionManager.java
+++ b/core/src/org/ki/session/mgt/AbstractValidatingSessionManager.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authz.HostUnauthorizedException;
-import org.jsecurity.session.ExpiredSessionException;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.util.Destroyable;
-import org.jsecurity.util.LifecycleUtils;
+import org.ki.authz.HostUnauthorizedException;
+import org.ki.session.ExpiredSessionException;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.Session;
+import org.ki.util.Destroyable;
+import org.ki.util.LifecycleUtils;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -121,7 +121,7 @@
      * convenience and to match what most people are accustomed based on years of servlet container behavior.
      * <p/>
      * When true (the default), this {@code SessionManager} implementation throws an
-     * {@link org.jsecurity.session.ReplacedSessionException ReplacedSessionException} to the caller whenever a new session is created so
+     * {@link org.ki.session.ReplacedSessionException ReplacedSessionException} to the caller whenever a new session is created so
      * the caller can receive the new session ID and react accordingly for future {@code SessionManager SessionManager}
      * method invocations.
      *
@@ -138,7 +138,7 @@
      * convenience and to match what most people are accustomed based on years of servlet container behavior.
      * <p/>
      * When true (the default), this {@code SessionManager} implementation throws an
-     * {@link org.jsecurity.session.ReplacedSessionException ReplacedSessionException} to the caller whenever a new session is created so
+     * {@link org.ki.session.ReplacedSessionException ReplacedSessionException} to the caller whenever a new session is created so
      * the caller can receive the new session ID and react accordingly for future {@code SessionManager SessionManager}
      * method invocations.
      *
@@ -184,9 +184,9 @@
 
     /**
      * Subclass template hook in case per-session timeout is not based on
-     * {@link org.jsecurity.session.Session#getTimeout()}.
+     * {@link org.ki.session.Session#getTimeout()}.
      *
-     * <p>This implementation merely returns {@link org.jsecurity.session.Session#getTimeout()}</p>
+     * <p>This implementation merely returns {@link org.ki.session.Session#getTimeout()}</p>
      *
      * @param session the session for which to determine session timeout.
      * @return the time in milliseconds the specified session may remain idle before expiring.
diff --git a/core/src/org/jsecurity/session/mgt/DefaultSessionManager.java b/core/src/org/ki/session/mgt/DefaultSessionManager.java
similarity index 91%
rename from core/src/org/jsecurity/session/mgt/DefaultSessionManager.java
rename to core/src/org/ki/session/mgt/DefaultSessionManager.java
index 73e4865..3e840f5 100644
--- a/core/src/org/jsecurity/session/mgt/DefaultSessionManager.java
+++ b/core/src/org/ki/session/mgt/DefaultSessionManager.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.cache.CacheManagerAware;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.ReplacedSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.eis.MemorySessionDAO;
-import org.jsecurity.session.mgt.eis.SessionDAO;
-import org.jsecurity.util.CollectionUtils;
-import org.jsecurity.util.ThreadContext;
+import org.ki.cache.CacheManager;
+import org.ki.cache.CacheManagerAware;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.ReplacedSessionException;
+import org.ki.session.Session;
+import org.ki.session.mgt.eis.MemorySessionDAO;
+import org.ki.session.mgt.eis.SessionDAO;
+import org.ki.util.CollectionUtils;
+import org.ki.util.ThreadContext;
 
 import java.io.Serializable;
 import java.net.InetAddress;
diff --git a/core/src/org/jsecurity/session/mgt/DelegatingSession.java b/core/src/org/ki/session/mgt/DelegatingSession.java
similarity index 93%
rename from core/src/org/jsecurity/session/mgt/DelegatingSession.java
rename to core/src/org/ki/session/mgt/DelegatingSession.java
index f221be9..3c90d0a 100644
--- a/core/src/org/jsecurity/session/mgt/DelegatingSession.java
+++ b/core/src/org/ki/session/mgt/DelegatingSession.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.ReplacedSessionException;
-import org.jsecurity.session.Session;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.ReplacedSessionException;
+import org.ki.session.Session;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -29,7 +29,7 @@
 
 /**
  * A DelegatingSession is a client-tier representation of a server side
- * {@link org.jsecurity.session.Session Session}.
+ * {@link org.ki.session.Session Session}.
  * This implementation is basically a proxy to a server-side {@link SessionManager SessionManager},
  * which will return the proper results for each method call.
  *
@@ -133,7 +133,7 @@
     }
 
     /**
-     * @see org.jsecurity.session.Session#getLastAccessTime()
+     * @see org.ki.session.Session#getLastAccessTime()
      */
     public Date getLastAccessTime() {
         //can't cache - only business pojo knows the accurate time:
@@ -164,7 +164,7 @@
     }
 
     /**
-     * @see org.jsecurity.session.Session#getHostAddress()
+     * @see org.ki.session.Session#getHostAddress()
      */
     public InetAddress getHostAddress() {
         if (hostAddress == null) {
@@ -179,7 +179,7 @@
     }
 
     /**
-     * @see org.jsecurity.session.Session#touch()
+     * @see org.ki.session.Session#touch()
      */
     public void touch() throws InvalidSessionException {
         try {
@@ -191,7 +191,7 @@
     }
 
     /**
-     * @see org.jsecurity.session.Session#stop()
+     * @see org.ki.session.Session#stop()
      */
     public void stop() throws InvalidSessionException {
         try {
@@ -203,7 +203,7 @@
     }
 
     /**
-     * @see org.jsecurity.session.Session#getAttributeKeys
+     * @see org.ki.session.Session#getAttributeKeys
      */
     public Collection<Object> getAttributeKeys() throws InvalidSessionException {
         try {
diff --git a/core/src/org/jsecurity/session/mgt/ExecutorServiceSessionValidationScheduler.java b/core/src/org/ki/session/mgt/ExecutorServiceSessionValidationScheduler.java
similarity index 98%
rename from core/src/org/jsecurity/session/mgt/ExecutorServiceSessionValidationScheduler.java
rename to core/src/org/ki/session/mgt/ExecutorServiceSessionValidationScheduler.java
index 7b65890..bc85029 100644
--- a/core/src/org/jsecurity/session/mgt/ExecutorServiceSessionValidationScheduler.java
+++ b/core/src/org/ki/session/mgt/ExecutorServiceSessionValidationScheduler.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/core/src/org/jsecurity/session/mgt/ImmutableProxiedSession.java b/core/src/org/ki/session/mgt/ImmutableProxiedSession.java
similarity index 95%
rename from core/src/org/jsecurity/session/mgt/ImmutableProxiedSession.java
rename to core/src/org/ki/session/mgt/ImmutableProxiedSession.java
index 7133e5e..5ae5f0d 100644
--- a/core/src/org/jsecurity/session/mgt/ImmutableProxiedSession.java
+++ b/core/src/org/ki/session/mgt/ImmutableProxiedSession.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.session.mgt;

+package org.ki.session.mgt;

 

-import org.jsecurity.session.InvalidSessionException;

-import org.jsecurity.session.ProxiedSession;

-import org.jsecurity.session.Session;

+import org.ki.session.InvalidSessionException;

+import org.ki.session.ProxiedSession;

+import org.ki.session.Session;

 

 /**

  * Implementation of the {@link Session Session} interface that proxies another <code>Session</code>, but does not

diff --git a/core/src/org/jsecurity/session/mgt/SessionManager.java b/core/src/org/ki/session/mgt/SessionManager.java
similarity index 91%
rename from core/src/org/jsecurity/session/mgt/SessionManager.java
rename to core/src/org/ki/session/mgt/SessionManager.java
index ba2f5a7..996fd8f 100644
--- a/core/src/org/jsecurity/session/mgt/SessionManager.java
+++ b/core/src/org/ki/session/mgt/SessionManager.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
-import org.jsecurity.authz.HostUnauthorizedException;
-import org.jsecurity.session.InvalidSessionException;
+import org.ki.authz.HostUnauthorizedException;
+import org.ki.session.InvalidSessionException;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -28,7 +28,7 @@
 
 /**
  * A SessionManager manages the creation, maintenance, and clean-up of all application
- * {@link org.jsecurity.session.Session Session}s.
+ * {@link org.ki.session.Session Session}s.
  *
  * @author Les Hazlewood
  * @since 0.1
@@ -82,7 +82,7 @@
      *
      * @param sessionId the system identifier for the session of interest.
      * @return the system time the specified session was started (i.e. created).
-     * @see org.jsecurity.session.Session#getStartTimestamp()
+     * @see org.ki.session.Session#getStartTimestamp()
      */
     Date getStartTimestamp(Serializable sessionId);
 
@@ -92,8 +92,8 @@
      *
      * @param sessionId the system identifier for the session of interest
      * @return tye time the session last accessed the system
-     * @see org.jsecurity.session.Session#getLastAccessTime()
-     * @see org.jsecurity.session.Session#touch()
+     * @see org.ki.session.Session#getLastAccessTime()
+     * @see org.ki.session.Session#touch()
      */
     Date getLastAccessTime(Serializable sessionId);
 
@@ -117,7 +117,7 @@
      *
      * @param sessionId the system identifier of the session of interest.
      * @return the time in milliseconds that the specified session may remain idle before expiring.
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if the session has been stopped or expired prior to calling this method.
      * @since 0.2
      */
@@ -134,7 +134,7 @@
      *
      * @param sessionId           the system identifier of the session of interest.
      * @param maxIdleTimeInMillis the time in milliseconds that the specified session may remain idle before expiring.
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if the session has been stopped or expired prior to calling this method.
      * @since 0.2
      */
@@ -145,9 +145,9 @@
      * can be used to explicitly ensure that a session does not time out.
      *
      * @param sessionId the id of the session to update.
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if the session has been stopped or expired prior to calling this method.
-     * @see org.jsecurity.session.Session#touch
+     * @see org.ki.session.Session#touch
      */
     void touch(Serializable sessionId) throws InvalidSessionException;
 
@@ -170,7 +170,7 @@
      * @param sessionId the system identfier of the system to destroy.
      * @throws InvalidSessionException if the session has stopped or expired prior to calling
      *                                 this method.
-     * @see org.jsecurity.session.Session#stop
+     * @see org.ki.session.Session#stop
      */
     void stop(Serializable sessionId) throws InvalidSessionException;
 
@@ -182,7 +182,7 @@
      * @return the keys of all attributes stored under the specified session, or an empty collection if
      *         there are no session attributes.
      * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.
-     * @see org.jsecurity.session.Session#getAttributeKeys()
+     * @see org.ki.session.Session#getAttributeKeys()
      * @since 0.2
      */
     Collection<Object> getAttributeKeys(Serializable sessionId);
@@ -196,7 +196,7 @@
      * @return the object bound under the specified <tt>key</tt> name or <tt>null</tt> if there is
      *         no object bound under that name.
      * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.
-     * @see org.jsecurity.session.Session#getAttribute(Object key)
+     * @see org.ki.session.Session#getAttribute(Object key)
      */
     Object getAttribute(Serializable sessionId, Object key) throws InvalidSessionException;
 
@@ -212,7 +212,7 @@
      * @param key       the name under which the <tt>value</tt> object will be bound in this session
      * @param value     the object to bind in this session.
      * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.
-     * @see org.jsecurity.session.Session#setAttribute(Object key, Object value)
+     * @see org.ki.session.Session#setAttribute(Object key, Object value)
      */
     void setAttribute(Serializable sessionId, Object key, Object value) throws InvalidSessionException;
 
@@ -224,7 +224,7 @@
      * @return the object removed or <tt>null</tt> if there was no object bound under the specified
      *         <tt>key</tt> name.
      * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.
-     * @see org.jsecurity.session.Session#removeAttribute(Object key)
+     * @see org.ki.session.Session#removeAttribute(Object key)
      */
     Object removeAttribute(Serializable sessionId, Object key) throws InvalidSessionException;
 }
diff --git a/core/src/org/jsecurity/session/mgt/SessionValidationScheduler.java b/core/src/org/ki/session/mgt/SessionValidationScheduler.java
similarity index 97%
rename from core/src/org/jsecurity/session/mgt/SessionValidationScheduler.java
rename to core/src/org/ki/session/mgt/SessionValidationScheduler.java
index 80976f5..8e854d3 100644
--- a/core/src/org/jsecurity/session/mgt/SessionValidationScheduler.java
+++ b/core/src/org/ki/session/mgt/SessionValidationScheduler.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
 /**
  * Interface that should be implemented by classes that can control validating sessions on a regular
diff --git a/core/src/org/jsecurity/session/mgt/SimpleSession.java b/core/src/org/ki/session/mgt/SimpleSession.java
similarity index 96%
rename from core/src/org/jsecurity/session/mgt/SimpleSession.java
rename to core/src/org/ki/session/mgt/SimpleSession.java
index f981182..77be944 100644
--- a/core/src/org/jsecurity/session/mgt/SimpleSession.java
+++ b/core/src/org/ki/session/mgt/SimpleSession.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.session.ExpiredSessionException;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.StoppedSessionException;
+import org.ki.session.ExpiredSessionException;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.StoppedSessionException;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -31,7 +31,7 @@
 import java.util.*;
 
 /**
- * Simple {@link org.jsecurity.session.Session} POJO implementation, intended to be used on the business/server tier.
+ * Simple {@link org.ki.session.Session} POJO implementation, intended to be used on the business/server tier.
  *
  * @author Les Hazlewood
  * @since 0.1
diff --git a/core/src/org/jsecurity/session/mgt/ValidatingSession.java b/core/src/org/ki/session/mgt/ValidatingSession.java
similarity index 91%
rename from core/src/org/jsecurity/session/mgt/ValidatingSession.java
rename to core/src/org/ki/session/mgt/ValidatingSession.java
index bd17246..8be9ff8 100644
--- a/core/src/org/jsecurity/session/mgt/ValidatingSession.java
+++ b/core/src/org/ki/session/mgt/ValidatingSession.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.session.mgt;

+package org.ki.session.mgt;

 

-import org.jsecurity.session.InvalidSessionException;

-import org.jsecurity.session.Session;

+import org.ki.session.InvalidSessionException;

+import org.ki.session.Session;

 

 /**

  * A <code>ValidatingSession</code> is a <code>Session</code> that is capable of determining it is valid or not and

diff --git a/core/src/org/jsecurity/session/mgt/ValidatingSessionManager.java b/core/src/org/ki/session/mgt/ValidatingSessionManager.java
similarity index 96%
rename from core/src/org/jsecurity/session/mgt/ValidatingSessionManager.java
rename to core/src/org/ki/session/mgt/ValidatingSessionManager.java
index 76bce33..74c88f5 100644
--- a/core/src/org/jsecurity/session/mgt/ValidatingSessionManager.java
+++ b/core/src/org/ki/session/mgt/ValidatingSessionManager.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt;
+package org.ki.session.mgt;
 
-import org.jsecurity.session.InvalidSessionException;
+import org.ki.session.InvalidSessionException;
 
 import java.io.Serializable;
 
@@ -77,7 +77,7 @@
      * Proactively validates a single session.
      *
      * @param sessionId the id of the session to validate
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if, upon validation, the session was stopped or expired.
      */
     void validateSession(Serializable sessionId) throws InvalidSessionException;
diff --git a/core/src/org/jsecurity/session/mgt/eis/CachingSessionDAO.java b/core/src/org/ki/session/mgt/eis/CachingSessionDAO.java
similarity index 94%
rename from core/src/org/jsecurity/session/mgt/eis/CachingSessionDAO.java
rename to core/src/org/ki/session/mgt/eis/CachingSessionDAO.java
index 002cc99..8233d83 100644
--- a/core/src/org/jsecurity/session/mgt/eis/CachingSessionDAO.java
+++ b/core/src/org/ki/session/mgt/eis/CachingSessionDAO.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt.eis;
+package org.ki.session.mgt.eis;
 
-import org.jsecurity.cache.Cache;
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.cache.CacheManagerAware;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.UnknownSessionException;
-import org.jsecurity.session.mgt.ValidatingSession;
+import org.ki.cache.Cache;
+import org.ki.cache.CacheManager;
+import org.ki.cache.CacheManagerAware;
+import org.ki.session.Session;
+import org.ki.session.UnknownSessionException;
+import org.ki.session.mgt.ValidatingSession;
 
 import java.io.Serializable;
 import java.util.Collection;
@@ -34,7 +34,7 @@
  * use it and the underlying EIS (Enterprise Information System) for enhanced performance.
  *
  * <p>This implementation caches all active sessions in a cache created by a
- * {@link org.jsecurity.cache.CacheManager}.  All <tt>SessionDAO</tt> methods are implemented by this class to employ
+ * {@link org.ki.cache.CacheManager}.  All <tt>SessionDAO</tt> methods are implemented by this class to employ
  * caching behavior and delegates the actual EIS operations to respective do* methods to be implemented by
  * subclasses (doCreate, doRead, etc).
  *
@@ -46,7 +46,7 @@
     /**
      * The default active sessions cache name, equal to <code>jsecurity-activeSessionCache</code>.
      */
-    public static final String ACTIVE_SESSION_CACHE_NAME = "jsecurity-activeSessionCache";
+    public static final String ACTIVE_SESSION_CACHE_NAME = "ki-activeSessionCache";
 
     /**
      * The CacheManager to use to acquire the Session cache.
@@ -203,8 +203,8 @@
 
     /**
      * Caches the specified session under the key <code>sessionId</code>.  If the Session is an instance of
-     * {@link org.jsecurity.session.mgt.ValidatingSession ValidatingSession}, it will only be cached if the
-     * session is {@link org.jsecurity.session.mgt.ValidatingSession#isValid() valid}.
+     * {@link org.ki.session.mgt.ValidatingSession ValidatingSession}, it will only be cached if the
+     * session is {@link org.ki.session.mgt.ValidatingSession#isValid() valid}.
      *
      * @param session the session to cache
      * @param sessionId the id of the session, to be used as the cache key.
@@ -272,7 +272,7 @@
      *
      * @param session the Session instance to persist to the EIS.
      * @return the id of the session created in the EIS (i.e. this is almost always a primary key and should be the
-     *         value returned from {@link org.jsecurity.session.Session#getId() Session.getId()}.
+     *         value returned from {@link org.ki.session.Session#getId() Session.getId()}.
      */
     protected abstract Serializable doCreate(Session session);
 
diff --git a/core/src/org/jsecurity/session/mgt/eis/MemorySessionDAO.java b/core/src/org/ki/session/mgt/eis/MemorySessionDAO.java
similarity index 90%
rename from core/src/org/jsecurity/session/mgt/eis/MemorySessionDAO.java
rename to core/src/org/ki/session/mgt/eis/MemorySessionDAO.java
index 4867fba..83857ae 100644
--- a/core/src/org/jsecurity/session/mgt/eis/MemorySessionDAO.java
+++ b/core/src/org/ki/session/mgt/eis/MemorySessionDAO.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt.eis;
+package org.ki.session.mgt.eis;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.cache.HashtableCacheManager;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.SimpleSession;
-import org.jsecurity.util.JavaEnvironment;
+import org.ki.cache.HashtableCacheManager;
+import org.ki.session.Session;
+import org.ki.session.mgt.SimpleSession;
+import org.ki.util.JavaEnvironment;
 
 import java.io.Serializable;
 import java.util.Random;
@@ -33,7 +33,7 @@
  * {@link #setCacheManager CacheManager} for Session caching and in-memory persistence.
  *
  * <p><b>PLEASE NOTE</b> the default CacheManager internal to this implementation is a
- * {@link org.jsecurity.cache.HashtableCacheManager HashtableCacheManager}, which IS NOT RECOMMENDED for production environments.
+ * {@link org.ki.cache.HashtableCacheManager HashtableCacheManager}, which IS NOT RECOMMENDED for production environments.
  *
  * <p>If you
  * want to use the MemorySessionDAO in production environments, such as those that require session data to be
@@ -41,7 +41,7 @@
  *
  * <ul>
  * <li>Configure it with a production-quality CacheManager. The
- * {@link org.jsecurity.cache.ehcache.EhCacheManager EhCacheManager} is one such implementation.  It is not used by default
+ * {@link org.ki.cache.ehcache.EhCacheManager EhCacheManager} is one such implementation.  It is not used by default
  * to prevent a forced runtime dependency on ehcache.jar that may not be required in many environments)</li><br/>
  * <li>If you need session information beyond their transient start/stop lifetimes, you should subclass this one and
  * override the <tt>do*</tt> methods to perform CRUD operations using an EIS-tier API (e.g. Hibernate/JPA/JCR/etc).
diff --git a/core/src/org/jsecurity/session/mgt/eis/SessionDAO.java b/core/src/org/ki/session/mgt/eis/SessionDAO.java
similarity index 94%
rename from core/src/org/jsecurity/session/mgt/eis/SessionDAO.java
rename to core/src/org/ki/session/mgt/eis/SessionDAO.java
index f92346b..3b392ad 100644
--- a/core/src/org/jsecurity/session/mgt/eis/SessionDAO.java
+++ b/core/src/org/ki/session/mgt/eis/SessionDAO.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt.eis;
+package org.ki.session.mgt.eis;
 
-import org.jsecurity.session.Session;
-import org.jsecurity.session.UnknownSessionException;
+import org.ki.session.Session;
+import org.ki.session.UnknownSessionException;
 
 import java.io.Serializable;
 import java.util.Collection;
@@ -37,7 +37,7 @@
      * Inserts a new Session record into the underling EIS (e.g. Relational database, file system, mainframe,
      * etc, depending on the DAO implementation).
      * <p/>
-     * After this method is invoked, the {@link org.jsecurity.session.Session#getId()}
+     * After this method is invoked, the {@link org.ki.session.Session#getId()}
      * method executed on the argument must return a valid session identifier.  That is, the following should
      * always be true:
      * <p/>
diff --git a/core/src/org/jsecurity/session/mgt/eis/package-info.java b/core/src/org/ki/session/mgt/eis/package-info.java
similarity index 95%
rename from core/src/org/jsecurity/session/mgt/eis/package-info.java
rename to core/src/org/ki/session/mgt/eis/package-info.java
index 60cbf99..2716c8d 100644
--- a/core/src/org/jsecurity/session/mgt/eis/package-info.java
+++ b/core/src/org/ki/session/mgt/eis/package-info.java
@@ -20,4 +20,4 @@
  * EIS (Enterprise Information System)-tier components that can perform CRUD operations for sessions

  * using any EIS API.

  */

-package org.jsecurity.session.mgt.eis;
\ No newline at end of file
+package org.ki.session.mgt.eis;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/cache/package-info.java b/core/src/org/ki/session/mgt/package-info.java
similarity index 85%
copy from core/src/org/jsecurity/cache/package-info.java
copy to core/src/org/ki/session/mgt/package-info.java
index eddc83d..7f32725 100644
--- a/core/src/org/jsecurity/cache/package-info.java
+++ b/core/src/org/ki/session/mgt/package-info.java
@@ -1,22 +1,22 @@
-/*
- * 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.
- */
-/**
- * Caching support used to enhance performance for any security operation.
- */
-package org.jsecurity.cache;
\ No newline at end of file
+/*

+ * 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.

+ */

+/**

+ * {@link org.ki.session.mgt.SessionManager SessionManager} components supporting enterprise session management.

+ */

+package org.ki.session.mgt;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/session/package-info.java b/core/src/org/ki/session/package-info.java
similarity index 98%
rename from core/src/org/jsecurity/session/package-info.java
rename to core/src/org/ki/session/package-info.java
index ccb013a..c7c46ba 100644
--- a/core/src/org/jsecurity/session/package-info.java
+++ b/core/src/org/ki/session/package-info.java
@@ -33,4 +33,4 @@
  * Also because of this freedom, JSecurity naturally supports Single Sign-On for any application as well, using

  * this heterogeneous session support.

  */

-package org.jsecurity.session;
\ No newline at end of file
+package org.ki.session;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/subject/DelegatingSubject.java b/core/src/org/ki/subject/DelegatingSubject.java
similarity index 93%
rename from core/src/org/jsecurity/subject/DelegatingSubject.java
rename to core/src/org/ki/subject/DelegatingSubject.java
index df60986..44922a0 100644
--- a/core/src/org/jsecurity/subject/DelegatingSubject.java
+++ b/core/src/org/ki/subject/DelegatingSubject.java
@@ -16,22 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.subject;
+package org.ki.subject;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.InetAuthenticationToken;
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.Permission;
-import org.jsecurity.authz.UnauthenticatedException;
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.ProxiedSession;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.DelegatingSession;
-import org.jsecurity.util.ThreadContext;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.InetAuthenticationToken;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.Permission;
+import org.ki.authz.UnauthenticatedException;
+import org.ki.mgt.SecurityManager;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.ProxiedSession;
+import org.ki.session.Session;
+import org.ki.session.mgt.DelegatingSession;
+import org.ki.util.ThreadContext;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -41,7 +41,7 @@
 
 /**
  * Implementation of the <tt>Subject</tt> interface that delegates
- * method calls to an underlying {@link org.jsecurity.mgt.SecurityManager SecurityManager} instance for security checks.
+ * method calls to an underlying {@link org.ki.mgt.SecurityManager SecurityManager} instance for security checks.
  * It is essentially a <tt>SecurityManager</tt> proxy.
  * <p/>
  * This implementation does not maintain state such as roles and permissions (only <code>Subject</code>
@@ -110,7 +110,7 @@
         }
     }
 
-    public org.jsecurity.mgt.SecurityManager getSecurityManager() {
+    public org.ki.mgt.SecurityManager getSecurityManager() {
         return securityManager;
     }
 
diff --git a/core/src/org/jsecurity/subject/InvalidSubjectException.java b/core/src/org/ki/subject/InvalidSubjectException.java
similarity index 98%
rename from core/src/org/jsecurity/subject/InvalidSubjectException.java
rename to core/src/org/ki/subject/InvalidSubjectException.java
index d2ea9b6..1c62415 100644
--- a/core/src/org/jsecurity/subject/InvalidSubjectException.java
+++ b/core/src/org/ki/subject/InvalidSubjectException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.subject;
+package org.ki.subject;
 
 /**
  * Exception thrown when a <tt>Subject</tt> is accessed that has been invalidated.  Usually this occurs
diff --git a/core/src/org/jsecurity/subject/MutablePrincipalCollection.java b/core/src/org/ki/subject/MutablePrincipalCollection.java
similarity index 98%
rename from core/src/org/jsecurity/subject/MutablePrincipalCollection.java
rename to core/src/org/ki/subject/MutablePrincipalCollection.java
index 363a010..a40a980 100644
--- a/core/src/org/jsecurity/subject/MutablePrincipalCollection.java
+++ b/core/src/org/ki/subject/MutablePrincipalCollection.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.subject;
+package org.ki.subject;
 
 import java.util.Collection;
 
diff --git a/core/src/org/jsecurity/subject/PrincipalCollection.java b/core/src/org/ki/subject/PrincipalCollection.java
similarity index 99%
rename from core/src/org/jsecurity/subject/PrincipalCollection.java
rename to core/src/org/ki/subject/PrincipalCollection.java
index d5c4bc5..3913fab 100644
--- a/core/src/org/jsecurity/subject/PrincipalCollection.java
+++ b/core/src/org/ki/subject/PrincipalCollection.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.subject;
+package org.ki.subject;
 
 import java.io.Serializable;
 import java.util.Collection;
diff --git a/core/src/org/jsecurity/subject/SimplePrincipalCollection.java b/core/src/org/ki/subject/SimplePrincipalCollection.java
similarity index 99%
rename from core/src/org/jsecurity/subject/SimplePrincipalCollection.java
rename to core/src/org/ki/subject/SimplePrincipalCollection.java
index 47dada4..1aaafc3 100644
--- a/core/src/org/jsecurity/subject/SimplePrincipalCollection.java
+++ b/core/src/org/ki/subject/SimplePrincipalCollection.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.subject;
+package org.ki.subject;
 
 import java.util.*;
 
diff --git a/core/src/org/jsecurity/subject/Subject.java b/core/src/org/ki/subject/Subject.java
similarity index 91%
rename from core/src/org/jsecurity/subject/Subject.java
rename to core/src/org/ki/subject/Subject.java
index 1d5f4fc..6c214e4 100644
--- a/core/src/org/jsecurity/subject/Subject.java
+++ b/core/src/org/ki/subject/Subject.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.subject;

+package org.ki.subject;

 

-import org.jsecurity.authc.AuthenticationException;

-import org.jsecurity.authc.AuthenticationToken;

-import org.jsecurity.authz.AuthorizationException;

-import org.jsecurity.authz.Permission;

-import org.jsecurity.session.Session;

+import org.ki.authc.AuthenticationException;

+import org.ki.authc.AuthenticationToken;

+import org.ki.authz.AuthorizationException;

+import org.ki.authz.Permission;

+import org.ki.session.Session;

 

 import java.util.Collection;

 import java.util.List;

@@ -37,7 +37,7 @@
  * a {@link Permission Permission} if desired.  The underlying Authorization subsystem implementations will usually

  * simply convert these String values to {@link Permission Permission} instances and then just call the corresponding

  * type-safe method.  (JSecurity's default implementations do String-to-Permission conversion for these methods using

- * {@link org.jsecurity.authz.permission.PermissionResolver PermissionResolver}s.)

+ * {@link org.ki.authz.permission.PermissionResolver PermissionResolver}s.)

  *

  * <p>These overloaded *Permission methods <em>do</em> forego type-saftey for the benefit of convenience and simplicity,

  * so you should choose which ones to use based on your preferences and needs.

@@ -187,13 +187,13 @@
      * Ensures this Subject implies the specified permission String.

      *

      * <p>If this subject's existing associated permissions do not {@link Permission#implies(Permission)} imply}

-     * the given permission, an {@link org.jsecurity.authz.AuthorizationException} will be thrown.

+     * the given permission, an {@link org.ki.authz.AuthorizationException} will be thrown.

      *

      * <p>This is an overloaded method for the corresponding type-safe {@link Permission Permission} variant.

      * Please see the class-level JavaDoc for more information on these String-based permission methods.

      *

      * @param permission the String representation of the Permission to check.

-     * @throws org.jsecurity.authz.AuthorizationException

+     * @throws org.ki.authz.AuthorizationException

      *          if the user does not have the permission.

      * @since 0.9

      */

@@ -203,22 +203,22 @@
      * Ensures this Subject {@link Permission#implies(Permission) implies} the specified <tt>Permission</tt>.

      *

      * <p>If this subject's exisiting associated permissions do not {@link Permission#implies(Permission) imply}

-     * the given permission, an {@link org.jsecurity.authz.AuthorizationException} will be thrown.

+     * the given permission, an {@link org.ki.authz.AuthorizationException} will be thrown.

      *

      * @param permission the Permission to check.

-     * @throws org.jsecurity.authz.AuthorizationException

+     * @throws org.ki.authz.AuthorizationException

      *          if this Subject does not have the permission.

      */

     void checkPermission(Permission permission) throws AuthorizationException;

 

     /**

      * Ensures this Subject

-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) implies} all of the

+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) implies} all of the

      * specified permission strings.

      *

      * If this subject's exisiting associated permissions do not

-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) imply} all of the given permissions,

-     * an {@link org.jsecurity.authz.AuthorizationException} will be thrown.

+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) imply} all of the given permissions,

+     * an {@link org.ki.authz.AuthorizationException} will be thrown.

      *

      * <p>This is an overloaded method for the corresponding type-safe {@link Permission Permission} variant.

      * Please see the class-level JavaDoc for more information on these String-based permission methods.

@@ -231,12 +231,12 @@
 

     /**

      * Ensures this Subject

-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) implies} all of the

+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) implies} all of the

      * specified permission strings.

      *

      * If this subject's exisiting associated permissions do not

-     * {@link org.jsecurity.authz.Permission#implies(org.jsecurity.authz.Permission) imply} all of the given permissions,

-     * an {@link org.jsecurity.authz.AuthorizationException} will be thrown.

+     * {@link org.ki.authz.Permission#implies(org.ki.authz.Permission) imply} all of the given permissions,

+     * an {@link org.ki.authz.AuthorizationException} will be thrown.

      *

      * @param permissions the Permissions to check.

      * @throws AuthorizationException if this Subject does not have all of the given permissions.

@@ -275,20 +275,20 @@
 

     /**

      * Asserts this Subject has the specified role by returning quietly if they do or throwing an

-     * {@link org.jsecurity.authz.AuthorizationException} if they do not.

+     * {@link org.ki.authz.AuthorizationException} if they do not.

      *

      * @param roleIdentifier the application-specific role identifier (usually a role id or role name ).

-     * @throws org.jsecurity.authz.AuthorizationException

+     * @throws org.ki.authz.AuthorizationException

      *          if this Subject does not have the role.

      */

     void checkRole(String roleIdentifier) throws AuthorizationException;

 

     /**

      * Asserts this Subject has all of the specified roles by returning quietly if they do or throwing an

-     * {@link org.jsecurity.authz.AuthorizationException} if they do not.

+     * {@link org.ki.authz.AuthorizationException} if they do not.

      *

      * @param roleIdentifiers the application-specific role identifiers to check (usually role ids or role names).

-     * @throws org.jsecurity.authz.AuthorizationException

+     * @throws org.ki.authz.AuthorizationException

      *          if this Subject does not have all of the specified roles.

      */

     void checkRoles(Collection<String> roleIdentifiers) throws AuthorizationException;

@@ -317,7 +317,7 @@
      * <p>Note that even if this Subject's identity has been remembered via 'remember me' services, this method will

      * still return <tt>false</tt> unless the user has actually logged in with proper credentials <em>during their

      * current session</em>.  See the

-     * {@link org.jsecurity.authc.RememberMeAuthenticationToken RememberMeAuthenticationToken} class JavaDoc for why

+     * {@link org.ki.authc.RememberMeAuthenticationToken RememberMeAuthenticationToken} class JavaDoc for why

      * this would occur.</p>

      *

      * @return <tt>true</tt> if this Subject has proven their identity during their current session

diff --git a/core/src/org/jsecurity/subject/SubjectException.java b/core/src/org/ki/subject/SubjectException.java
similarity index 95%
rename from core/src/org/jsecurity/subject/SubjectException.java
rename to core/src/org/ki/subject/SubjectException.java
index 8ab36cc..d288ada 100644
--- a/core/src/org/jsecurity/subject/SubjectException.java
+++ b/core/src/org/ki/subject/SubjectException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.subject;
+package org.ki.subject;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Throws when there is an error accessing or interacting with a {@link Subject}.
diff --git a/core/src/org/jsecurity/subject/package-info.java b/core/src/org/ki/subject/package-info.java
similarity index 88%
rename from core/src/org/jsecurity/subject/package-info.java
rename to core/src/org/ki/subject/package-info.java
index 81f0a67..7bbdd93 100644
--- a/core/src/org/jsecurity/subject/package-info.java
+++ b/core/src/org/ki/subject/package-info.java
@@ -17,11 +17,11 @@
  * under the License.

  */

 /**

- * Components supporting the {@link org.jsecurity.subject.Subject Subject} interface, the most important concept in

+ * Components supporting the {@link org.ki.subject.Subject Subject} interface, the most important concept in

  * JSecurity's API.

  * <p/>

  * A <code>Subject</code> is <em>the</em> primary component when using JSecurity programatically for single-user

  * security operations, and it is the handle to any accessible user security data.  All single-user

  * authentication, authorization and session operations are performed via a <code>Subject</code> instance.

  */

-package org.jsecurity.subject;
\ No newline at end of file
+package org.ki.subject;
\ No newline at end of file
diff --git a/core/src/org/jsecurity/util/AntPathMatcher.java b/core/src/org/ki/util/AntPathMatcher.java
similarity index 99%
rename from core/src/org/jsecurity/util/AntPathMatcher.java
rename to core/src/org/ki/util/AntPathMatcher.java
index b928b98..1579573 100644
--- a/core/src/org/jsecurity/util/AntPathMatcher.java
+++ b/core/src/org/ki/util/AntPathMatcher.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 /**
  * <p>PathMatcher implementation for Ant-style path patterns.
diff --git a/core/src/org/jsecurity/util/ClassUtils.java b/core/src/org/ki/util/ClassUtils.java
similarity index 96%
rename from core/src/org/jsecurity/util/ClassUtils.java
rename to core/src/org/ki/util/ClassUtils.java
index b3be021..f38304b 100644
--- a/core/src/org/jsecurity/util/ClassUtils.java
+++ b/core/src/org/ki/util/ClassUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -159,7 +159,7 @@
         try {
             return clazz.newInstance();
         } catch (Exception e) {
-            throw new org.jsecurity.util.InstantiationException("Unable to instantiate class [" + clazz.getName() + "]", e);
+            throw new org.ki.util.InstantiationException("Unable to instantiate class [" + clazz.getName() + "]", e);
         }
     }
 
@@ -186,7 +186,7 @@
             return ctor.newInstance(args);
         } catch (Exception e) {
             String msg = "Unable to instantiate Permission instance with constructor [" + ctor + "]";
-            throw new org.jsecurity.util.InstantiationException(msg, e);
+            throw new org.ki.util.InstantiationException(msg, e);
         }
     }
 
diff --git a/core/src/org/jsecurity/util/CollectionUtils.java b/core/src/org/ki/util/CollectionUtils.java
similarity index 98%
rename from core/src/org/jsecurity/util/CollectionUtils.java
rename to core/src/org/ki/util/CollectionUtils.java
index 939a1b8..cc4bb91 100644
--- a/core/src/org/jsecurity/util/CollectionUtils.java
+++ b/core/src/org/ki/util/CollectionUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 import java.util.*;
 
diff --git a/core/src/org/jsecurity/util/Destroyable.java b/core/src/org/ki/util/Destroyable.java
similarity index 93%
rename from core/src/org/jsecurity/util/Destroyable.java
rename to core/src/org/ki/util/Destroyable.java
index 6547b12..9999020 100644
--- a/core/src/org/jsecurity/util/Destroyable.java
+++ b/core/src/org/ki/util/Destroyable.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 /**
  * JSecurity container-agnostic interface that indicates that this object requires a callback during destruction.
  *
  * @author Les Hazlewood
  * @author Jeremy Haile
- * @see org.jsecurity.spring.LifecycleBeanPostProcessor
+ * @see org.ki.spring.LifecycleBeanPostProcessor
  * @since 0.2
  */
 public interface Destroyable {
diff --git a/core/src/org/jsecurity/util/Initializable.java b/core/src/org/ki/util/Initializable.java
similarity index 90%
rename from core/src/org/jsecurity/util/Initializable.java
rename to core/src/org/ki/util/Initializable.java
index 4d30d8f..a2e3816 100644
--- a/core/src/org/jsecurity/util/Initializable.java
+++ b/core/src/org/ki/util/Initializable.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * JSecurity container-agnostic interface that indicates that this object requires initialization.
  *
  * @author Les Hazlewood
  * @author Jeremy Haile
- * @see org.jsecurity.spring.LifecycleBeanPostProcessor
+ * @see org.ki.spring.LifecycleBeanPostProcessor
  * @since 0.2
  */
 public interface Initializable {
diff --git a/core/src/org/jsecurity/util/InstantiationException.java b/core/src/org/ki/util/InstantiationException.java
similarity index 96%
rename from core/src/org/jsecurity/util/InstantiationException.java
rename to core/src/org/ki/util/InstantiationException.java
index a25226f..0a1858b 100644
--- a/core/src/org/jsecurity/util/InstantiationException.java
+++ b/core/src/org/ki/util/InstantiationException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Runtime exception thrown by the framework when unable to instantiate a Class via reflection.
diff --git a/core/src/org/jsecurity/util/JavaEnvironment.java b/core/src/org/ki/util/JavaEnvironment.java
similarity index 99%
rename from core/src/org/jsecurity/util/JavaEnvironment.java
rename to core/src/org/ki/util/JavaEnvironment.java
index c3eb5a3..53903cc 100644
--- a/core/src/org/jsecurity/util/JavaEnvironment.java
+++ b/core/src/org/ki/util/JavaEnvironment.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 /**
  * Internal helper class used to find the Java/JDK version
diff --git a/core/src/org/jsecurity/util/JdbcUtils.java b/core/src/org/ki/util/JdbcUtils.java
similarity index 98%
rename from core/src/org/jsecurity/util/JdbcUtils.java
rename to core/src/org/ki/util/JdbcUtils.java
index 0f34a23..b5b3c53 100644
--- a/core/src/org/jsecurity/util/JdbcUtils.java
+++ b/core/src/org/ki/util/JdbcUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.util;

+package org.ki.util;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/core/src/org/jsecurity/util/LifecycleUtils.java b/core/src/org/ki/util/LifecycleUtils.java
similarity index 97%
rename from core/src/org/jsecurity/util/LifecycleUtils.java
rename to core/src/org/ki/util/LifecycleUtils.java
index 8a2fbe5..12208b9 100644
--- a/core/src/org/jsecurity/util/LifecycleUtils.java
+++ b/core/src/org/ki/util/LifecycleUtils.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.util;

+package org.ki.util;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.JSecurityException;

+import org.ki.JSecurityException;

 

 import java.util.Collection;

 

diff --git a/core/src/org/jsecurity/util/Nameable.java b/core/src/org/ki/util/Nameable.java
similarity index 97%
rename from core/src/org/jsecurity/util/Nameable.java
rename to core/src/org/ki/util/Nameable.java
index 64273da..b3b6f7a 100644
--- a/core/src/org/jsecurity/util/Nameable.java
+++ b/core/src/org/ki/util/Nameable.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 
 /**
diff --git a/core/src/org/jsecurity/util/PatternMatcher.java b/core/src/org/ki/util/PatternMatcher.java
similarity index 94%
rename from core/src/org/jsecurity/util/PatternMatcher.java
rename to core/src/org/ki/util/PatternMatcher.java
index e2bddab..83b5912 100644
--- a/core/src/org/jsecurity/util/PatternMatcher.java
+++ b/core/src/org/ki/util/PatternMatcher.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.util;

+package org.ki.util;

 

 /**

  * Interface for components that can match source strings against a specified pattern string.

@@ -25,7 +25,7 @@
  * regular expressions, or other types of text based patterns.

  *

  * @author Les Hazlewood

- * @see org.jsecurity.util.AntPathMatcher AntPathMatcher

+ * @see org.ki.util.AntPathMatcher AntPathMatcher

  * @since 0.9 RC2

  */

 public interface PatternMatcher {

diff --git a/core/src/org/jsecurity/util/PermissionUtils.java b/core/src/org/ki/util/PermissionUtils.java
similarity index 93%
rename from core/src/org/jsecurity/util/PermissionUtils.java
rename to core/src/org/ki/util/PermissionUtils.java
index 340b70b..54b2685 100644
--- a/core/src/org/jsecurity/util/PermissionUtils.java
+++ b/core/src/org/ki/util/PermissionUtils.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
-import org.jsecurity.authz.Permission;
-import org.jsecurity.authz.permission.PermissionResolver;
+import org.ki.authz.Permission;
+import org.ki.authz.permission.PermissionResolver;
 
 import java.util.Arrays;
 import java.util.Collection;
diff --git a/core/src/org/jsecurity/util/SoftHashMap.java b/core/src/org/ki/util/SoftHashMap.java
similarity index 99%
rename from core/src/org/jsecurity/util/SoftHashMap.java
rename to core/src/org/ki/util/SoftHashMap.java
index e05518f..aecba64 100644
--- a/core/src/org/jsecurity/util/SoftHashMap.java
+++ b/core/src/org/ki/util/SoftHashMap.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 import java.lang.ref.ReferenceQueue;
 import java.lang.ref.SoftReference;
diff --git a/core/src/org/jsecurity/util/StringUtils.java b/core/src/org/ki/util/StringUtils.java
similarity index 99%
rename from core/src/org/jsecurity/util/StringUtils.java
rename to core/src/org/ki/util/StringUtils.java
index 59abc1b..495d075 100644
--- a/core/src/org/jsecurity/util/StringUtils.java
+++ b/core/src/org/ki/util/StringUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 import java.text.ParseException;
 import java.util.ArrayList;
diff --git a/core/src/org/jsecurity/util/ThreadContext.java b/core/src/org/ki/util/ThreadContext.java
similarity index 98%
rename from core/src/org/jsecurity/util/ThreadContext.java
rename to core/src/org/ki/util/ThreadContext.java
index c0f46ff..14d2f27 100644
--- a/core/src/org/jsecurity/util/ThreadContext.java
+++ b/core/src/org/ki/util/ThreadContext.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.subject.Subject;
+import org.ki.mgt.SecurityManager;
+import org.ki.subject.Subject;
 
 import java.io.Serializable;
 import java.net.InetAddress;
diff --git a/core/src/org/jsecurity/util/UnavailableConstructorException.java b/core/src/org/ki/util/UnavailableConstructorException.java
similarity index 96%
rename from core/src/org/jsecurity/util/UnavailableConstructorException.java
rename to core/src/org/ki/util/UnavailableConstructorException.java
index d099af8..d0659fe 100644
--- a/core/src/org/jsecurity/util/UnavailableConstructorException.java
+++ b/core/src/org/ki/util/UnavailableConstructorException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * Exception thrown when attempting to instantiate a Class via reflection, but a suitable constructor (depending
diff --git a/core/src/org/jsecurity/util/UnknownClassException.java b/core/src/org/ki/util/UnknownClassException.java
similarity index 96%
rename from core/src/org/jsecurity/util/UnknownClassException.java
rename to core/src/org/ki/util/UnknownClassException.java
index 51ad14e..5b38d84 100644
--- a/core/src/org/jsecurity/util/UnknownClassException.java
+++ b/core/src/org/ki/util/UnknownClassException.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
-import org.jsecurity.JSecurityException;
+import org.ki.JSecurityException;
 
 /**
  * The JSecurity framework's <code>RuntimeException</code> equivalent of the JDK's
diff --git a/core/src/org/jsecurity/util/package-info.java b/core/src/org/ki/util/package-info.java
similarity index 97%
rename from core/src/org/jsecurity/util/package-info.java
rename to core/src/org/ki/util/package-info.java
index cae7cd0..19ad553 100644
--- a/core/src/org/jsecurity/util/package-info.java
+++ b/core/src/org/ki/util/package-info.java
@@ -20,4 +20,4 @@
  * Your run-of-the-mill 'util' pacakge for components and logic widely used across the framework that can't

  * find their home into a proper OO hierarchy (or, most likely for things used across many hierarchies).

  */

-package org.jsecurity.util;
\ No newline at end of file
+package org.ki.util;
\ No newline at end of file
diff --git a/core/test/log4j.properties b/core/test/log4j.properties
index 14283bf..c083c44 100644
--- a/core/test/log4j.properties
+++ b/core/test/log4j.properties
@@ -34,4 +34,4 @@
 
 log4j.logger.net.sf.ehcache=WARN
 
-log4j.logger.org.jsecurity.util.ThreadContext=WARN
\ No newline at end of file
+log4j.logger.org.ki.util.ThreadContext=WARN
\ No newline at end of file
diff --git a/core/test/org/jsecurity/AtUnitTestBase.java b/core/test/org/ki/AtUnitTestBase.java
similarity index 97%
rename from core/test/org/jsecurity/AtUnitTestBase.java
rename to core/test/org/ki/AtUnitTestBase.java
index 539e3dd..fdb74f4 100644
--- a/core/test/org/jsecurity/AtUnitTestBase.java
+++ b/core/test/org/ki/AtUnitTestBase.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity;
+package org.ki;
 
 /*import atunit.AtUnit;
 import atunit.Container;
diff --git a/core/test/org/jsecurity/ExceptionTest.java b/core/test/org/ki/ExceptionTest.java
similarity index 95%
rename from core/test/org/jsecurity/ExceptionTest.java
rename to core/test/org/ki/ExceptionTest.java
index 1d5e723..731b90f 100644
--- a/core/test/org/jsecurity/ExceptionTest.java
+++ b/core/test/org/ki/ExceptionTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity;
+package org.ki;
 
 import junit.framework.TestCase;
-import org.jsecurity.util.ClassUtils;
+import org.ki.util.ClassUtils;
 import org.junit.Test;
 
 /**
diff --git a/core/test/org/jsecurity/authc/ConcurrentAccessExceptionTest.java b/core/test/org/ki/authc/ConcurrentAccessExceptionTest.java
similarity index 94%
rename from core/test/org/jsecurity/authc/ConcurrentAccessExceptionTest.java
rename to core/test/org/ki/authc/ConcurrentAccessExceptionTest.java
index 4c88547..15f2e4b 100644
--- a/core/test/org/jsecurity/authc/ConcurrentAccessExceptionTest.java
+++ b/core/test/org/ki/authc/ConcurrentAccessExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.ExceptionTest;
+import org.ki.ExceptionTest;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/core/test/org/jsecurity/authc/ExcessiveAttemptsExceptionTest.java b/core/test/org/ki/authc/ExcessiveAttemptsExceptionTest.java
similarity index 94%
rename from core/test/org/jsecurity/authc/ExcessiveAttemptsExceptionTest.java
rename to core/test/org/ki/authc/ExcessiveAttemptsExceptionTest.java
index b3c29e1..fd2b144 100644
--- a/core/test/org/jsecurity/authc/ExcessiveAttemptsExceptionTest.java
+++ b/core/test/org/ki/authc/ExcessiveAttemptsExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.ExceptionTest;
+import org.ki.ExceptionTest;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/core/test/org/jsecurity/authc/ExpiredCredentialsExceptionTest.java b/core/test/org/ki/authc/ExpiredCredentialsExceptionTest.java
similarity index 94%
rename from core/test/org/jsecurity/authc/ExpiredCredentialsExceptionTest.java
rename to core/test/org/ki/authc/ExpiredCredentialsExceptionTest.java
index 58fcc68..fc0c877 100644
--- a/core/test/org/jsecurity/authc/ExpiredCredentialsExceptionTest.java
+++ b/core/test/org/ki/authc/ExpiredCredentialsExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.ExceptionTest;
+import org.ki.ExceptionTest;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/core/test/org/jsecurity/authc/IncorrectCredentialsExceptionTest.java b/core/test/org/ki/authc/IncorrectCredentialsExceptionTest.java
similarity index 94%
rename from core/test/org/jsecurity/authc/IncorrectCredentialsExceptionTest.java
rename to core/test/org/ki/authc/IncorrectCredentialsExceptionTest.java
index 2ec033d..8ca70dd 100644
--- a/core/test/org/jsecurity/authc/IncorrectCredentialsExceptionTest.java
+++ b/core/test/org/ki/authc/IncorrectCredentialsExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.ExceptionTest;
+import org.ki.ExceptionTest;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/core/test/org/jsecurity/authc/LockedAccountExceptionTest.java b/core/test/org/ki/authc/LockedAccountExceptionTest.java
similarity index 94%
rename from core/test/org/jsecurity/authc/LockedAccountExceptionTest.java
rename to core/test/org/ki/authc/LockedAccountExceptionTest.java
index a5ec415..2f3ffda 100644
--- a/core/test/org/jsecurity/authc/LockedAccountExceptionTest.java
+++ b/core/test/org/ki/authc/LockedAccountExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.ExceptionTest;
+import org.ki.ExceptionTest;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/core/test/org/jsecurity/authc/SimpleAuthenticationInfoTest.java b/core/test/org/ki/authc/SimpleAuthenticationInfoTest.java
similarity index 97%
rename from core/test/org/jsecurity/authc/SimpleAuthenticationInfoTest.java
rename to core/test/org/ki/authc/SimpleAuthenticationInfoTest.java
index 2d449c8..516e381 100644
--- a/core/test/org/jsecurity/authc/SimpleAuthenticationInfoTest.java
+++ b/core/test/org/ki/authc/SimpleAuthenticationInfoTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authc;

+package org.ki.authc;

 

 import org.junit.Test;

 

diff --git a/core/test/org/jsecurity/authc/UnknownAccountExceptionTest.java b/core/test/org/ki/authc/UnknownAccountExceptionTest.java
similarity index 94%
rename from core/test/org/jsecurity/authc/UnknownAccountExceptionTest.java
rename to core/test/org/ki/authc/UnknownAccountExceptionTest.java
index 08a563c..3774b69 100644
--- a/core/test/org/jsecurity/authc/UnknownAccountExceptionTest.java
+++ b/core/test/org/ki/authc/UnknownAccountExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc;
+package org.ki.authc;
 
-import org.jsecurity.ExceptionTest;
+import org.ki.ExceptionTest;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java b/core/test/org/ki/authc/credential/AllowAllCredentialsMatcherTest.java
similarity index 96%
rename from core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/AllowAllCredentialsMatcherTest.java
index 8884aed..7936634 100644
--- a/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/AllowAllCredentialsMatcherTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
 import static org.junit.Assert.assertTrue;
 import org.junit.Test;
diff --git a/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java b/core/test/org/ki/authc/credential/HashedCredentialsMatcherTest.java
similarity index 83%
rename from core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/HashedCredentialsMatcherTest.java
index 3d9fcb9..7ac4fd5 100644
--- a/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/HashedCredentialsMatcherTest.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
 import junit.framework.TestCase;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.SimpleAuthenticationInfo;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.util.ClassUtils;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.SimpleAuthenticationInfo;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.util.ClassUtils;
 import org.junit.Test;
 
 /**
diff --git a/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java b/core/test/org/ki/authc/credential/Md2CredentialsMatcherTest.java
similarity index 89%
rename from core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/Md2CredentialsMatcherTest.java
index c6659f1..fd63192 100644
--- a/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/Md2CredentialsMatcherTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Md2Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Md2Hash;
 
 /**
  * @author Les Hazlewood
diff --git a/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java b/core/test/org/ki/authc/credential/Md5CredentialsMatcherTest.java
similarity index 89%
rename from core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/Md5CredentialsMatcherTest.java
index 2218de1..9e44385 100644
--- a/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/Md5CredentialsMatcherTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Md5Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Md5Hash;
 
 /**
  * @author Les Hazlewood
diff --git a/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java b/core/test/org/ki/authc/credential/Sha1CredentialsMatcherTest.java
similarity index 89%
rename from core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/Sha1CredentialsMatcherTest.java
index be52fd8..6c0246d 100644
--- a/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/Sha1CredentialsMatcherTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Sha1Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Sha1Hash;
 
 /**
  * @author Les Hazlewood
diff --git a/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java b/core/test/org/ki/authc/credential/Sha256CredentialsMatcherTest.java
similarity index 89%
rename from core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/Sha256CredentialsMatcherTest.java
index 43b51a1..732dee1 100644
--- a/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/Sha256CredentialsMatcherTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Sha256Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Sha256Hash;
 
 /**
  * @author Les Hazlewood
diff --git a/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java b/core/test/org/ki/authc/credential/Sha384CredentialsMatcherTest.java
similarity index 89%
rename from core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/Sha384CredentialsMatcherTest.java
index a4feb13..e501196 100644
--- a/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/Sha384CredentialsMatcherTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Sha384Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Sha384Hash;
 
 /**
  * @author Les Hazlewood
diff --git a/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java b/core/test/org/ki/authc/credential/Sha512CredentialsMatcherTest.java
similarity index 89%
rename from core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java
rename to core/test/org/ki/authc/credential/Sha512CredentialsMatcherTest.java
index 549c428..04a1684 100644
--- a/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java
+++ b/core/test/org/ki/authc/credential/Sha512CredentialsMatcherTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.credential;
+package org.ki.authc.credential;
 
-import org.jsecurity.crypto.hash.AbstractHash;
-import org.jsecurity.crypto.hash.Sha512Hash;
+import org.ki.crypto.hash.AbstractHash;
+import org.ki.crypto.hash.Sha512Hash;
 
 /**
  * @author Les Hazlewood
diff --git a/core/test/org/jsecurity/authc/pam/AllSuccessfulStrategyTest.java b/core/test/org/ki/authc/pam/AllSuccessfulStrategyTest.java
similarity index 83%
rename from core/test/org/jsecurity/authc/pam/AllSuccessfulStrategyTest.java
rename to core/test/org/ki/authc/pam/AllSuccessfulStrategyTest.java
index 5442c64..8d61c0a 100644
--- a/core/test/org/jsecurity/authc/pam/AllSuccessfulStrategyTest.java
+++ b/core/test/org/ki/authc/pam/AllSuccessfulStrategyTest.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.pam;
+package org.ki.authc.pam;
 
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authz.AuthorizationInfo;
-import org.jsecurity.realm.AuthorizingRealm;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.realm.SimpleAccountRealm;
-import org.jsecurity.subject.PrincipalCollection;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authz.AuthorizationInfo;
+import org.ki.realm.AuthorizingRealm;
+import org.ki.realm.Realm;
+import org.ki.realm.SimpleAccountRealm;
+import org.ki.subject.PrincipalCollection;
 import static org.junit.Assert.*;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/test/org/jsecurity/authc/support/AbstractAuthenticatorTest.java b/core/test/org/ki/authc/support/AbstractAuthenticatorTest.java
similarity index 98%
rename from core/test/org/jsecurity/authc/support/AbstractAuthenticatorTest.java
rename to core/test/org/ki/authc/support/AbstractAuthenticatorTest.java
index 688282d..ea517aa 100644
--- a/core/test/org/jsecurity/authc/support/AbstractAuthenticatorTest.java
+++ b/core/test/org/ki/authc/support/AbstractAuthenticatorTest.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authc.support;
+package org.ki.authc.support;
 
 import static org.easymock.EasyMock.*;
-import org.jsecurity.authc.*;
+import org.ki.authc.*;
 import static org.junit.Assert.*;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/test/org/jsecurity/authz/AuthorizationExceptionTest.java b/core/test/org/ki/authz/AuthorizationExceptionTest.java
similarity index 93%
rename from core/test/org/jsecurity/authz/AuthorizationExceptionTest.java
rename to core/test/org/ki/authz/AuthorizationExceptionTest.java
index 5c22e82..016bad0 100644
--- a/core/test/org/jsecurity/authz/AuthorizationExceptionTest.java
+++ b/core/test/org/ki/authz/AuthorizationExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authz;

+package org.ki.authz;

 

-import org.jsecurity.ExceptionTest;

+import org.ki.ExceptionTest;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/authz/HostUnauthorizedExceptionTest.java b/core/test/org/ki/authz/HostUnauthorizedExceptionTest.java
similarity index 93%
rename from core/test/org/jsecurity/authz/HostUnauthorizedExceptionTest.java
rename to core/test/org/ki/authz/HostUnauthorizedExceptionTest.java
index 13c7149..b100f45 100644
--- a/core/test/org/jsecurity/authz/HostUnauthorizedExceptionTest.java
+++ b/core/test/org/ki/authz/HostUnauthorizedExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authz;

+package org.ki.authz;

 

-import org.jsecurity.ExceptionTest;

+import org.ki.ExceptionTest;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/authz/UnauthenticatedExceptionTest.java b/core/test/org/ki/authz/UnauthenticatedExceptionTest.java
similarity index 93%
rename from core/test/org/jsecurity/authz/UnauthenticatedExceptionTest.java
rename to core/test/org/ki/authz/UnauthenticatedExceptionTest.java
index 0227420..e351c5a 100644
--- a/core/test/org/jsecurity/authz/UnauthenticatedExceptionTest.java
+++ b/core/test/org/ki/authz/UnauthenticatedExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authz;

+package org.ki.authz;

 

-import org.jsecurity.ExceptionTest;

+import org.ki.ExceptionTest;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/authz/UnauthorizedExceptionTest.java b/core/test/org/ki/authz/UnauthorizedExceptionTest.java
similarity index 93%
rename from core/test/org/jsecurity/authz/UnauthorizedExceptionTest.java
rename to core/test/org/ki/authz/UnauthorizedExceptionTest.java
index 080ddb4..aebb74f 100644
--- a/core/test/org/jsecurity/authz/UnauthorizedExceptionTest.java
+++ b/core/test/org/ki/authz/UnauthorizedExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.authz;

+package org.ki.authz;

 

-import org.jsecurity.ExceptionTest;

+import org.ki.ExceptionTest;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/authz/permission/AllPermissionTest.java b/core/test/org/ki/authz/permission/AllPermissionTest.java
similarity index 96%
rename from core/test/org/jsecurity/authz/permission/AllPermissionTest.java
rename to core/test/org/ki/authz/permission/AllPermissionTest.java
index 921c194..c840b75 100644
--- a/core/test/org/jsecurity/authz/permission/AllPermissionTest.java
+++ b/core/test/org/ki/authz/permission/AllPermissionTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
 import static org.junit.Assert.assertTrue;
 import org.junit.Test;
diff --git a/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java b/core/test/org/ki/authz/permission/WildcardPermissionTest.java
similarity index 99%
rename from core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java
rename to core/test/org/ki/authz/permission/WildcardPermissionTest.java
index 7ceb822..4af612d 100644
--- a/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java
+++ b/core/test/org/ki/authz/permission/WildcardPermissionTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.authz.permission;
+package org.ki.authz.permission;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
diff --git a/core/test/org/jsecurity/config/CompositeBean.java b/core/test/org/ki/config/CompositeBean.java
similarity index 97%
rename from core/test/org/jsecurity/config/CompositeBean.java
rename to core/test/org/ki/config/CompositeBean.java
index d5d2651..cf48d0a 100644
--- a/core/test/org/jsecurity/config/CompositeBean.java
+++ b/core/test/org/ki/config/CompositeBean.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/config/ReflectionBuilderTest.java b/core/test/org/ki/config/ReflectionBuilderTest.java
similarity index 86%
rename from core/test/org/jsecurity/config/ReflectionBuilderTest.java
rename to core/test/org/ki/config/ReflectionBuilderTest.java
index b1d8cb0..a944d54 100644
--- a/core/test/org/jsecurity/config/ReflectionBuilderTest.java
+++ b/core/test/org/ki/config/ReflectionBuilderTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 import static org.junit.Assert.*;

 import org.junit.Test;

@@ -33,7 +33,7 @@
     @Test

     public void testSimpleConfig() {

         Map<String, String> defs = new LinkedHashMap<String, String>();

-        defs.put("compositeBean", "org.jsecurity.config.CompositeBean");

+        defs.put("compositeBean", "org.ki.config.CompositeBean");

         defs.put("compositeBean.stringProp", "blah");

         defs.put("compositeBean.booleanProp", "true");

         defs.put("compositeBean.intProp", "42");

@@ -51,7 +51,7 @@
     @Test

     public void testSimpleConfigWithDollarSignStringValue() {

         Map<String, String> defs = new LinkedHashMap<String, String>();

-        defs.put("compositeBean", "org.jsecurity.config.CompositeBean");

+        defs.put("compositeBean", "org.ki.config.CompositeBean");

         defs.put("compositeBean.stringProp", "\\$500");

 

         ReflectionBuilder builder = new ReflectionBuilder();

@@ -64,9 +64,9 @@
     @Test

     public void testObjectReferenceConfig() {

         Map<String, String> defs = new LinkedHashMap<String, String>();

-        defs.put("simpleBean", "org.jsecurity.config.SimpleBean");

+        defs.put("simpleBean", "org.ki.config.SimpleBean");

         defs.put("simpleBean.intProp", "101");

-        defs.put("compositeBean", "org.jsecurity.config.CompositeBean");

+        defs.put("compositeBean", "org.ki.config.CompositeBean");

         defs.put("compositeBean.stringProp", "blah");

         defs.put("compositeBean.simpleBean", "$simpleBean");

 

@@ -86,8 +86,8 @@
     @Test(expected = ConfigurationException.class)

     public void testObjectReferenceConfigWithTypeMismatch() {

         Map<String, String> defs = new LinkedHashMap<String, String>();

-        defs.put("simpleBean", "org.jsecurity.config.SimpleBean");

-        defs.put("compositeBean", "org.jsecurity.config.CompositeBean");

+        defs.put("simpleBean", "org.ki.config.SimpleBean");

+        defs.put("compositeBean", "org.ki.config.CompositeBean");

         defs.put("compositeBean.simpleBean", "simpleBean");

         ReflectionBuilder builder = new ReflectionBuilder();

         builder.buildObjects(defs);

@@ -96,8 +96,8 @@
     @Test(expected = UnresolveableReferenceException.class)

     public void testObjectReferenceConfigWithInvalidReference() {

         Map<String, String> defs = new LinkedHashMap<String, String>();

-        defs.put("simpleBean", "org.jsecurity.config.SimpleBean");

-        defs.put("compositeBean", "org.jsecurity.config.CompositeBean");

+        defs.put("simpleBean", "org.ki.config.SimpleBean");

+        defs.put("compositeBean", "org.ki.config.CompositeBean");

         defs.put("compositeBean.simpleBean", "$foo");

         ReflectionBuilder builder = new ReflectionBuilder();

         builder.buildObjects(defs);

diff --git a/core/test/org/jsecurity/config/SimpleBean.java b/core/test/org/ki/config/SimpleBean.java
similarity index 97%
rename from core/test/org/jsecurity/config/SimpleBean.java
rename to core/test/org/ki/config/SimpleBean.java
index 8241346..7ab2f6f 100644
--- a/core/test/org/jsecurity/config/SimpleBean.java
+++ b/core/test/org/ki/config/SimpleBean.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.config;

+package org.ki.config;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/io/ResourceExceptionTest.java b/core/test/org/ki/io/ResourceExceptionTest.java
similarity index 93%
rename from core/test/org/jsecurity/io/ResourceExceptionTest.java
rename to core/test/org/ki/io/ResourceExceptionTest.java
index 49cd1cf..e36a1aa 100644
--- a/core/test/org/jsecurity/io/ResourceExceptionTest.java
+++ b/core/test/org/ki/io/ResourceExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.io;

+package org.ki.io;

 

-import org.jsecurity.ExceptionTest;

+import org.ki.ExceptionTest;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/io/SerializationExceptionTest.java b/core/test/org/ki/io/SerializationExceptionTest.java
similarity index 93%
rename from core/test/org/jsecurity/io/SerializationExceptionTest.java
rename to core/test/org/ki/io/SerializationExceptionTest.java
index 42da467..ba5beb9 100644
--- a/core/test/org/jsecurity/io/SerializationExceptionTest.java
+++ b/core/test/org/ki/io/SerializationExceptionTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.io;

+package org.ki.io;

 

-import org.jsecurity.ExceptionTest;

+import org.ki.ExceptionTest;

 

 /**

  * @author Les Hazlewood

diff --git a/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java b/core/test/org/ki/mgt/DefaultSecurityManagerTest.java
similarity index 91%
rename from core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java
rename to core/test/org/ki/mgt/DefaultSecurityManagerTest.java
index 1d1f850..6bee9f0 100644
--- a/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java
+++ b/core/test/org/ki/mgt/DefaultSecurityManagerTest.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.realm.text.PropertiesRealm;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.AbstractValidatingSessionManager;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.ThreadContext;
+import org.ki.SecurityUtils;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.realm.text.PropertiesRealm;
+import org.ki.session.Session;
+import org.ki.session.mgt.AbstractValidatingSessionManager;
+import org.ki.subject.Subject;
+import org.ki.util.ThreadContext;
 import org.junit.After;
 import static org.junit.Assert.*;
 import org.junit.Before;
diff --git a/core/test/org/jsecurity/mgt/VMSingletonDefaultSecurityManagerTest.java b/core/test/org/ki/mgt/VMSingletonDefaultSecurityManagerTest.java
similarity index 86%
rename from core/test/org/jsecurity/mgt/VMSingletonDefaultSecurityManagerTest.java
rename to core/test/org/ki/mgt/VMSingletonDefaultSecurityManagerTest.java
index 2dc241a..dec0199 100644
--- a/core/test/org/jsecurity/mgt/VMSingletonDefaultSecurityManagerTest.java
+++ b/core/test/org/ki/mgt/VMSingletonDefaultSecurityManagerTest.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.mgt;
+package org.ki.mgt;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.realm.text.PropertiesRealm;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.ThreadContext;
+import org.ki.SecurityUtils;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.realm.text.PropertiesRealm;
+import org.ki.subject.Subject;
+import org.ki.util.ThreadContext;
 import org.junit.After;
 import static org.junit.Assert.assertTrue;
 import org.junit.Before;
diff --git a/core/test/org/jsecurity/realm/AuthorizingRealmTest.java b/core/test/org/ki/realm/AuthorizingRealmTest.java
similarity index 93%
rename from core/test/org/jsecurity/realm/AuthorizingRealmTest.java
rename to core/test/org/ki/realm/AuthorizingRealmTest.java
index 9a5bbbb..ef31c6b 100644
--- a/core/test/org/jsecurity/realm/AuthorizingRealmTest.java
+++ b/core/test/org/ki/realm/AuthorizingRealmTest.java
@@ -16,20 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm;
+package org.ki.realm;
 
-import org.jsecurity.authc.*;
-import org.jsecurity.authc.credential.AllowAllCredentialsMatcher;
-import org.jsecurity.authc.credential.CredentialsMatcher;
-import org.jsecurity.authz.AuthorizationInfo;
-import org.jsecurity.authz.Permission;
-import org.jsecurity.authz.SimpleAuthorizationInfo;
-import org.jsecurity.authz.UnauthorizedException;
-import org.jsecurity.authz.permission.WildcardPermission;
-import org.jsecurity.mgt.DefaultSecurityManager;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.SimplePrincipalCollection;
-import org.jsecurity.subject.Subject;
+import org.ki.authc.*;
+import org.ki.authc.credential.AllowAllCredentialsMatcher;
+import org.ki.authc.credential.CredentialsMatcher;
+import org.ki.authz.AuthorizationInfo;
+import org.ki.authz.Permission;
+import org.ki.authz.SimpleAuthorizationInfo;
+import org.ki.authz.UnauthorizedException;
+import org.ki.authz.permission.WildcardPermission;
+import org.ki.mgt.DefaultSecurityManager;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.SimplePrincipalCollection;
+import org.ki.subject.Subject;
 import org.junit.After;
 import static org.junit.Assert.*;
 import org.junit.Before;
diff --git a/core/test/org/jsecurity/realm/UserIdPrincipal.java b/core/test/org/ki/realm/UserIdPrincipal.java
similarity index 97%
rename from core/test/org/jsecurity/realm/UserIdPrincipal.java
rename to core/test/org/ki/realm/UserIdPrincipal.java
index 93e6207..f056ab9 100644
--- a/core/test/org/jsecurity/realm/UserIdPrincipal.java
+++ b/core/test/org/ki/realm/UserIdPrincipal.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm;

+package org.ki.realm;

 

 import java.io.Serializable;

 import java.security.Principal;

diff --git a/core/test/org/jsecurity/realm/UsernamePrincipal.java b/core/test/org/ki/realm/UsernamePrincipal.java
similarity index 97%
rename from core/test/org/jsecurity/realm/UsernamePrincipal.java
rename to core/test/org/ki/realm/UsernamePrincipal.java
index 132b878..a68e8d6 100644
--- a/core/test/org/jsecurity/realm/UsernamePrincipal.java
+++ b/core/test/org/ki/realm/UsernamePrincipal.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.realm;

+package org.ki.realm;

 

 import java.io.Serializable;

 import java.security.Principal;

diff --git a/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java b/core/test/org/ki/realm/activedirectory/ActiveDirectoryRealmTest.java
similarity index 87%
rename from core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java
rename to core/test/org/ki/realm/activedirectory/ActiveDirectoryRealmTest.java
index 89ef55f..d8169ee 100644
--- a/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java
+++ b/core/test/org/ki/realm/activedirectory/ActiveDirectoryRealmTest.java
@@ -16,22 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.realm.activedirectory;
+package org.ki.realm.activedirectory;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.authc.*;
-import org.jsecurity.authc.credential.CredentialsMatcher;
-import org.jsecurity.authz.AuthorizationInfo;
-import org.jsecurity.authz.SimpleAuthorizationInfo;
-import org.jsecurity.mgt.DefaultSecurityManager;
-import org.jsecurity.realm.AuthorizingRealm;
-import org.jsecurity.realm.UserIdPrincipal;
-import org.jsecurity.realm.UsernamePrincipal;
-import org.jsecurity.realm.ldap.LdapContextFactory;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.SimplePrincipalCollection;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.ThreadContext;
+import org.ki.SecurityUtils;
+import org.ki.authc.*;
+import org.ki.authc.credential.CredentialsMatcher;
+import org.ki.authz.AuthorizationInfo;
+import org.ki.authz.SimpleAuthorizationInfo;
+import org.ki.mgt.DefaultSecurityManager;
+import org.ki.realm.AuthorizingRealm;
+import org.ki.realm.UserIdPrincipal;
+import org.ki.realm.UsernamePrincipal;
+import org.ki.realm.ldap.LdapContextFactory;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.SimplePrincipalCollection;
+import org.ki.subject.Subject;
+import org.ki.util.ThreadContext;
 import org.junit.After;
 import static org.junit.Assert.assertTrue;
 import org.junit.Before;
diff --git a/core/test/org/jsecurity/subject/DelegatingSubjectTest.java b/core/test/org/ki/subject/DelegatingSubjectTest.java
similarity index 92%
rename from core/test/org/jsecurity/subject/DelegatingSubjectTest.java
rename to core/test/org/ki/subject/DelegatingSubjectTest.java
index 62a51d7..77a6f09 100644
--- a/core/test/org/jsecurity/subject/DelegatingSubjectTest.java
+++ b/core/test/org/ki/subject/DelegatingSubjectTest.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.subject;

+package org.ki.subject;

 

-import org.jsecurity.mgt.DefaultSecurityManager;

-import org.jsecurity.session.Session;

-import org.jsecurity.util.ThreadContext;

+import org.ki.mgt.DefaultSecurityManager;

+import org.ki.session.Session;

+import org.ki.util.ThreadContext;

 import org.junit.After;

 import static org.junit.Assert.*;

 import org.junit.Before;

diff --git a/core/test/org/jsecurity/util/StringUtilsTest.java b/core/test/org/ki/util/StringUtilsTest.java
similarity index 98%
rename from core/test/org/jsecurity/util/StringUtilsTest.java
rename to core/test/org/ki/util/StringUtilsTest.java
index a3144c8..3ce1527 100644
--- a/core/test/org/jsecurity/util/StringUtilsTest.java
+++ b/core/test/org/ki/util/StringUtilsTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.util;
+package org.ki.util;
 
 import static org.junit.Assert.*;
 import org.junit.Test;
diff --git a/docs/reference/src/index.xml b/docs/reference/src/index.xml
index 41f3bb2..d2e3fca 100644
--- a/docs/reference/src/index.xml
+++ b/docs/reference/src/index.xml
@@ -143,9 +143,9 @@
         &sessions;
         &cryptography;
     </part>
-    <!-- <part id="jsecurity-web">
+    <!-- <part id="ki-web">
      <title>Web Support</title>
-     <partintro id="jsecurity-web-intro">
+     <partintro id="ki-web-intro">
        <para>
          This part of the reference documentation covers
                  JSecurity's web support, specifically using JSecurity in
@@ -184,9 +184,9 @@
      &web-integration;
      &portlet;
    </part>
-   <part id="jsecurity-integration">
+   <part id="ki-integration">
      <title>Integration</title>
-     <partintro id="jsecurity-integration-intro">
+     <partintro id="ki-integration-intro">
        <para>
          This part of the reference documentation covers JSecurity's
                  integration with other technologies that might be
diff --git a/ivy.xml b/ivy.xml
index 3f2cd37..2e24c49 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -20,7 +20,7 @@
 <ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
 
-    <info organisation="org.jsecurity" module="jsecurity" revision="0.9.0" status="snapshot"
+    <info organisation="org.ki" module="jsecurity" revision="0.9.0" status="snapshot"
           publication="20080814234001">
         <license name="Apache License, Version 2.0" url="http://www.apache.org/licenses/LICENSE-2.0.html"/>
         <ivyauthor name="Les Hazlewood" url="http://www.leshazlewood.com"/>
@@ -87,7 +87,7 @@
         <dependency org="org.easymock" name="easymockclassextension" rev="2.3" transitive="false" conf="test"/>
         <dependency org="junit" name="junit" rev="4.4" transitive="false" conf="test"/>
 
-        <dependency org="org.jsecurity" name="docbook-libs" rev="1.0.0" transitive="false" conf="docbook">
+        <dependency org="org.ki" name="docbook-libs" rev="1.0.0" transitive="false" conf="docbook">
             <artifact name="docbook-libs" type="zip" ext="zip"/>
         </dependency>
 
diff --git a/pom.xml b/pom.xml
index 56c41c8..b5e7829 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,16 +22,16 @@
 
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.apache.jsecurity</groupId>
-    <artifactId>jsecurity-root</artifactId>
+    <groupId>org.apache.ki</groupId>
+    <artifactId>ki-root</artifactId>
     <packaging>pom</packaging>
 
     <version>1.0-SNAPSHOT</version>
-    <name>Apache JSecurity</name>
+    <name>Apache Ki</name>
 
-    <url>http://incubator.apache.org/jsecurity/</url>
+    <url>http://incubator.apache.org/ki/</url>
     <description>
-        Apache JSecurity is a powerful and flexible open-source Java security framework that cleanly handles
+        Apache Ki is a powerful and flexible open-source Java security framework that cleanly handles
         authentication, authorization, enterprise session management, single sign-on and cryptography services.
     </description>
 
@@ -57,7 +57,7 @@
     <properties>
         <hsqldbVersion>1.8.0.7</hsqldbVersion>
         <jettyVersion>6.1.14</jettyVersion>
-        <jsecurityVersion>1.0-SNAPSHOT</jsecurityVersion>
+        <kiVersion>1.0-SNAPSHOT</kiVersion>
         <retroweaverVersion>2.0.5</retroweaverVersion>
         <springframeworkVersion>2.5.6</springframeworkVersion>
     </properties>
@@ -208,21 +208,21 @@
             </dependency>
 
             <dependency>
-                <groupId>org.apache.jsecurity</groupId>
-                <artifactId>jsecurity-core</artifactId>
-                <version>${jsecurityVersion}</version>
+                <groupId>org.apache.ki</groupId>
+                <artifactId>ki-core</artifactId>
+                <version>${kiVersion}</version>
             </dependency>
 
             <dependency>
-                <groupId>org.apache.jsecurity</groupId>
-                <artifactId>jsecurity-spring</artifactId>
-                <version>${jsecurityVersion}</version>
+                <groupId>org.apache.ki</groupId>
+                <artifactId>ki-spring</artifactId>
+                <version>${kiVersion}</version>
             </dependency>
 
             <dependency>
-                <groupId>org.apache.jsecurity</groupId>
-                <artifactId>jsecurity-web</artifactId>
-                <version>${jsecurityVersion}</version>
+                <groupId>org.apache.ki</groupId>
+                <artifactId>ki-web</artifactId>
+                <version>${kiVersion}</version>
             </dependency>
 
             <dependency>
diff --git a/samples/pom.xml b/samples/pom.xml
index 7676f49..2541c37 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -2,15 +2,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.jsecurity.samples</groupId>
-    <artifactId>jsecurity-samples</artifactId>
-    <name>Apache JSecurity :: Samples</name>
+    <groupId>org.apache.ki.samples</groupId>
+    <artifactId>ki-samples</artifactId>
+    <name>Apache Ki :: Samples</name>
     <packaging>pom</packaging>
 
     <modules>
diff --git a/samples/quickstart/pom.xml b/samples/quickstart/pom.xml
index cbe70e9..54353dc 100644
--- a/samples/quickstart/pom.xml
+++ b/samples/quickstart/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity.samples</groupId>
-        <artifactId>jsecurity-samples</artifactId>
+        <groupId>org.apache.ki.samples</groupId>
+        <artifactId>ki-samples</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
     <artifactId>samples-quickstart</artifactId>
-    <name>Apache JSecurity :: Samples :: Quick Start</name>
+    <name>Apache Ki :: Samples :: Quick Start</name>
     <packaging>jar</packaging>
 
     <build/>
@@ -17,8 +17,8 @@
     <dependencies>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
     </dependencies>
diff --git a/samples/quickstart/src/Quickstart.java b/samples/quickstart/src/Quickstart.java
index b2959d6..0fff189 100644
--- a/samples/quickstart/src/Quickstart.java
+++ b/samples/quickstart/src/Quickstart.java
@@ -19,11 +19,11 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.authc.*;
-import org.jsecurity.mgt.DefaultSecurityManager;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.authc.*;
+import org.ki.mgt.DefaultSecurityManager;
+import org.ki.session.Session;
+import org.ki.subject.Subject;
 
 /**
  * @author Les Hazlewood
diff --git a/samples/quickstart/src/log4j.properties b/samples/quickstart/src/log4j.properties
index 62ee20c..e1e259c 100644
--- a/samples/quickstart/src/log4j.properties
+++ b/samples/quickstart/src/log4j.properties
@@ -29,8 +29,8 @@
 log4j.logger.org.springframework=WARN
 
 # Default JSecurity logging
-log4j.logger.org.jsecurity=TRACE
+log4j.logger.org.ki=TRACE
 
 # Disable verbose logging
-log4j.logger.org.jsecurity.util.ThreadContext=WARN
-log4j.logger.org.jsecurity.cache.ehcache.EhCache=WARN
\ No newline at end of file
+log4j.logger.org.ki.util.ThreadContext=WARN
+log4j.logger.org.ki.cache.ehcache.EhCache=WARN
\ No newline at end of file
diff --git a/samples/spring-hibernate/web/WEB-INF/applicationContext.xml b/samples/spring-hibernate/web/WEB-INF/applicationContext.xml
index b25e833..9812061 100644
--- a/samples/spring-hibernate/web/WEB-INF/applicationContext.xml
+++ b/samples/spring-hibernate/web/WEB-INF/applicationContext.xml
@@ -32,9 +32,9 @@
     <context:annotation-config/>
 
     <!-- Scan sample packages for Spring annotations -->
-    <context:component-scan base-package="org.jsecurity.samples.sprhib.dao"/>
-    <context:component-scan base-package="org.jsecurity.samples.sprhib.security"/>
-    <context:component-scan base-package="org.jsecurity.samples.sprhib.service"/>
+    <context:component-scan base-package="org.ki.samples.sprhib.dao"/>
+    <context:component-scan base-package="org.ki.samples.sprhib.security"/>
+    <context:component-scan base-package="org.ki.samples.sprhib.service"/>
 
     <!-- Spring AOP auto-proxy creation (required to support JSecurity annotations) -->
     <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>
@@ -56,7 +56,7 @@
              DDL is auto-generated based on the *.hbm.xml mapping definitions below. -->
         <property name="schemaUpdate" value="true"/>
         <!-- Scan packages for JPA annotations -->
-        <property name="packagesToScan" value="org.jsecurity.samples.sprhib.model"/>
+        <property name="packagesToScan" value="org.ki.samples.sprhib.model"/>
         <property name="hibernateProperties">
             <props>
                 <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
@@ -86,19 +86,19 @@
          ========================================================= -->
 
     <!-- JSecurity's main business-tier object for web-enabled applications
-         (use org.jsecurity.mgt.DefaultSecurityManager instead when there is no web environment)-->
-    <bean id="securityManager" class="org.jsecurity.web.DefaultWebSecurityManager">
+         (use org.kifaultSecurityManager instead when there is no web environment)-->
+    <bean id="securityManager" class="org.ki.web.DefaultWebSecurityManager">
         <!-- Single realm app (realm configured next, below).  If you have multiple realms, use the 'realms'
       property instead. -->
         <property name="realm" ref="sampleRealm"/>
         <!-- Uncomment this next property if you want heterogenous session access or clusterable/distributable
              sessions.  The default value is 'http' which uses the Servlet container's HttpSession as the underlying
              Session implementation.
-        <property name="sessionMode" value="jsecurity"/> -->
+        <property name="sessionMode" value="ki"/> -->
     </bean>
 
 
     <!-- Post processor that automatically invokes init() and destroy() methods -->
-    <bean id="lifecycleBeanPostProcessor" class="org.jsecurity.spring.LifecycleBeanPostProcessor"/>
+    <bean id="lifecycleBeanPostProcessor" class="org.ki.spring.LifecycleBeanPostProcessor"/>
 
 </beans>
diff --git a/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml b/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml
index 3009bc8..31301c4 100644
--- a/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml
+++ b/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml
@@ -33,22 +33,22 @@
         Hibernate Object Caches
         =================================================================-->
 
-    <cache name="org.jsecurity.samples.sprhib.model.Role"
+    <cache name="org.ki.samples.sprhib.model.Role"
         maxElementsInMemory="100"
         timeToLiveSeconds="0"
         overflowToDisk="true"/>
 
-    <cache name="org.jsecurity.samples.sprhib.model.Role.permissions"
+    <cache name="org.ki.samples.sprhib.model.Role.permissions"
         maxElementsInMemory="100"
         timeToLiveSeconds="0"
         overflowToDisk="true"/>
 
-    <cache name="org.jsecurity.samples.sprhib.model.User"
+    <cache name="org.ki.samples.sprhib.model.User"
         maxElementsInMemory="1000"
         timeToLiveSeconds="3600"
         overflowToDisk="true"/>
 
-    <cache name="org.jsecurity.samples.sprhib.model.User.roles"
+    <cache name="org.ki.samples.sprhib.model.User.roles"
         maxElementsInMemory="1000"
         timeToLiveSeconds="3600"
         overflowToDisk="true"/>
diff --git a/samples/spring-hibernate/web/WEB-INF/classes/hibernate.cfg.xml b/samples/spring-hibernate/web/WEB-INF/classes/hibernate.cfg.xml
index 2050a9d..6429dec 100644
--- a/samples/spring-hibernate/web/WEB-INF/classes/hibernate.cfg.xml
+++ b/samples/spring-hibernate/web/WEB-INF/classes/hibernate.cfg.xml
@@ -28,8 +28,8 @@
     <!-- DB schema will be updated if needed -->
     <property name="hbm2ddl.auto">update</property>
 
-    <mapping class="org.jsecurity.samples.sprhib.model.Role"/>
-    <mapping class="org.jsecurity.samples.sprhib.model.User"/>
+    <mapping class="org.ki.samples.sprhib.model.Role"/>
+    <mapping class="org.ki.samples.sprhib.model.User"/>
 
   </session-factory>
 </hibernate-configuration>
\ No newline at end of file
diff --git a/samples/spring-hibernate/web/WEB-INF/classes/log4j.properties b/samples/spring-hibernate/web/WEB-INF/classes/log4j.properties
index 54ffb3f..43b1f6a 100644
--- a/samples/spring-hibernate/web/WEB-INF/classes/log4j.properties
+++ b/samples/spring-hibernate/web/WEB-INF/classes/log4j.properties
@@ -32,8 +32,8 @@
 log4j.logger.org.hibernate=WARN
 
 # Default JSecurity logging
-log4j.logger.org.jsecurity=TRACE
+log4j.logger.org.ki=TRACE
 
 # Disable verbose logging
-log4j.logger.org.jsecurity.util.ThreadContext=WARN
-log4j.logger.org.jsecurity.cache.ehcache.EhCache=WARN
+log4j.logger.org.ki.util.ThreadContext=WARN
+log4j.logger.org.ki.cache.ehcache.EhCache=WARN
diff --git a/samples/spring-hibernate/web/WEB-INF/sprhib-servlet.xml b/samples/spring-hibernate/web/WEB-INF/sprhib-servlet.xml
index fd4ae4b..1874b3d 100644
--- a/samples/spring-hibernate/web/WEB-INF/sprhib-servlet.xml
+++ b/samples/spring-hibernate/web/WEB-INF/sprhib-servlet.xml
@@ -29,11 +29,11 @@
 
     <!-- Enable annotation component scanning and autowiring of web package -->
     <context:annotation-config/>
-    <context:component-scan base-package="org.jsecurity.samples.sprhib.web"/>
+    <context:component-scan base-package="org.ki.samples.sprhib.web"/>
 
     <!-- Required for security annotations to work in this servlet -->
     <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>
-    <bean class="org.jsecurity.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/>
+    <bean class="org.ki.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/>
 
 
     <!-- Enable annotation-based controllers using @Controller annotations -->
diff --git a/samples/spring-hibernate/web/WEB-INF/web.xml b/samples/spring-hibernate/web/WEB-INF/web.xml
index 0a0f39d..cad6a7b 100644
--- a/samples/spring-hibernate/web/WEB-INF/web.xml
+++ b/samples/spring-hibernate/web/WEB-INF/web.xml
@@ -61,7 +61,7 @@
 
     <filter>
         <filter-name>JSecurityFilter</filter-name>
-        <filter-class>org.jsecurity.spring.SpringJSecurityFilter</filter-class>
+        <filter-class>org.ki.spring.SpringJSecurityFilter</filter-class>
         <init-param>
             <param-name>config</param-name>
             <param-value>
@@ -76,7 +76,7 @@
 
                 [filters]
                 # Override the authentication filter to pass thru so we can handle login logic in our controller
-                authc = org.jsecurity.web.filter.authc.PassThruAuthenticationFilter
+                authc = org.ki.web.filter.authc.PassThruAuthenticationFilter
                 jsecurity.loginUrl = /s/login
                 jsecurity.unauthorizedUrl = /unauthorized.jsp
                 authc.successUrl = /s/home
diff --git a/samples/spring/etc/ehcache.xml b/samples/spring/etc/ehcache.xml
index e8501d2..bd5dd4f 100644
--- a/samples/spring/etc/ehcache.xml
+++ b/samples/spring/etc/ehcache.xml
@@ -89,7 +89,7 @@
          diskPersistent="true"

          diskExpiryThreadIntervalSeconds="600"/>

 

-  <cache name="org.jsecurity.realm.SimpleAccountRealm.authorization"

+  <cache name="org.ki.realm.SimpleAccountRealm.authorization"

          maxElementsInMemory="100"

          eternal="false"

          timeToLiveSeconds="600"

diff --git a/samples/spring/etc/webstart.spring.xml b/samples/spring/etc/webstart.spring.xml
index 6a4d92b..dba7215 100644
--- a/samples/spring/etc/webstart.spring.xml
+++ b/samples/spring/etc/webstart.spring.xml
@@ -25,18 +25,18 @@
 <beans>

 

   <bean id="webStartView"

-        class="org.jsecurity.samples.spring.ui.WebStartView">

+        class="org.ki.samples.spring.ui.WebStartView">

     <property name="sampleManager" ref="sampleManager"/>

   </bean>

 

   <bean id="sampleManager"

         class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">

     <property name="serviceUrl" value="http://localhost:8080/jsecurity-spring/remoting/sampleManager"/>

-    <property name="serviceInterface" value="org.jsecurity.samples.spring.SampleManager"/>

+    <property name="serviceInterface" value="org.ki.samples.spring.SampleManager"/>

     <property name="remoteInvocationFactory" ref="secureRemoteInvocationFactory"/>

   </bean>

 

   <bean id="secureRemoteInvocationFactory"

-        class="org.jsecurity.spring.remoting.SecureRemoteInvocationFactory"/>

+        class="org.ki.spring.remoting.SecureRemoteInvocationFactory"/>

 

 </beans>

diff --git a/samples/spring/pom.xml b/samples/spring/pom.xml
index 6022490..89314da 100644
--- a/samples/spring/pom.xml
+++ b/samples/spring/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity.samples</groupId>
-        <artifactId>jsecurity-samples</artifactId>
+        <groupId>org.apache.ki.samples</groupId>
+        <artifactId>ki-samples</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
     <artifactId>samples-spring</artifactId>
-    <name>Apache JSecurity :: Samples :: Spring</name>
+    <name>Apache Ki :: Samples :: Spring</name>
     <packaging>war</packaging>
 
     <build>
@@ -36,7 +36,7 @@
                 <artifactId>maven-jetty-plugin</artifactId>
                 <version>${jettyVersion}</version>
                 <configuration>
-                    <contextPath>/jsec</contextPath>
+                    <contextPath>/ki</contextPath>
                     <!-- non-standard source locations -->
                     <webAppSourceDirectory>${basedir}/webroot</webAppSourceDirectory>
                     <connectors>
@@ -88,18 +88,18 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-spring</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-spring</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-web</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-web</artifactId>
         </dependency>
 
         <dependency>
diff --git a/samples/spring/src/org/jsecurity/samples/spring/BootstrapDataPopulator.java b/samples/spring/src/org/ki/samples/spring/BootstrapDataPopulator.java
similarity index 95%
rename from samples/spring/src/org/jsecurity/samples/spring/BootstrapDataPopulator.java
rename to samples/spring/src/org/ki/samples/spring/BootstrapDataPopulator.java
index 25881d9..93259ff 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/BootstrapDataPopulator.java
+++ b/samples/spring/src/org/ki/samples/spring/BootstrapDataPopulator.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.samples.spring;
+package org.ki.samples.spring;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.crypto.hash.Sha256Hash;
+import org.ki.crypto.hash.Sha256Hash;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.jdbc.core.JdbcTemplate;
 
@@ -28,8 +28,8 @@
 
 /**
  * A data populator that creates a set of security tables and test data that can be used by the
- * JSecurity Spring sample application to demonstrate the use of the {@link org.jsecurity.realm.jdbc.JdbcRealm}
- * The tables created by this class follow the default table and column names that {@link org.jsecurity.realm.jdbc.JdbcRealm} uses.
+ * JSecurity Spring sample application to demonstrate the use of the {@link org.ki.realm.jdbc.JdbcRealm}
+ * The tables created by this class follow the default table and column names that {@link org.ki.realm.jdbc.JdbcRealm} uses.
  *
  * @author Les Hazlewood
  */
diff --git a/samples/spring/src/org/jsecurity/samples/spring/DefaultSampleManager.java b/samples/spring/src/org/ki/samples/spring/DefaultSampleManager.java
similarity index 95%
rename from samples/spring/src/org/jsecurity/samples/spring/DefaultSampleManager.java
rename to samples/spring/src/org/ki/samples/spring/DefaultSampleManager.java
index 75a1887..e82d531 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/DefaultSampleManager.java
+++ b/samples/spring/src/org/ki/samples/spring/DefaultSampleManager.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.samples.spring;

+package org.ki.samples.spring;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.SecurityUtils;

-import org.jsecurity.session.Session;

-import org.jsecurity.subject.Subject;

+import org.ki.SecurityUtils;

+import org.ki.session.Session;

+import org.ki.subject.Subject;

 

 /**

  * Default implementation of the {@link SampleManager} interface that stores

diff --git a/samples/spring/src/org/jsecurity/samples/spring/SampleManager.java b/samples/spring/src/org/ki/samples/spring/SampleManager.java
similarity index 91%
rename from samples/spring/src/org/jsecurity/samples/spring/SampleManager.java
rename to samples/spring/src/org/ki/samples/spring/SampleManager.java
index 5a452ec..e631bb2 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/SampleManager.java
+++ b/samples/spring/src/org/ki/samples/spring/SampleManager.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.samples.spring;

+package org.ki.samples.spring;

 

-import org.jsecurity.authz.annotation.RequiresPermissions;

-import org.jsecurity.authz.annotation.RequiresRoles;

+import org.ki.authz.annotation.RequiresPermissions;

+import org.ki.authz.annotation.RequiresRoles;

 

 /**

  * Business manager interface used for sample application.

diff --git a/samples/spring/src/org/jsecurity/samples/spring/ui/WebStartDriver.java b/samples/spring/src/org/ki/samples/spring/ui/WebStartDriver.java
similarity index 96%
rename from samples/spring/src/org/jsecurity/samples/spring/ui/WebStartDriver.java
rename to samples/spring/src/org/ki/samples/spring/ui/WebStartDriver.java
index 6799318..20b1c07 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/ui/WebStartDriver.java
+++ b/samples/spring/src/org/ki/samples/spring/ui/WebStartDriver.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.samples.spring.ui;

+package org.ki.samples.spring.ui;

 

 import org.springframework.context.support.ClassPathXmlApplicationContext;

 

diff --git a/samples/spring/src/org/jsecurity/samples/spring/ui/WebStartView.java b/samples/spring/src/org/ki/samples/spring/ui/WebStartView.java
similarity index 96%
rename from samples/spring/src/org/jsecurity/samples/spring/ui/WebStartView.java
rename to samples/spring/src/org/ki/samples/spring/ui/WebStartView.java
index 656a1e0..1612a09 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/ui/WebStartView.java
+++ b/samples/spring/src/org/ki/samples/spring/ui/WebStartView.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.samples.spring.ui;

+package org.ki.samples.spring.ui;

 

-import org.jsecurity.authz.AuthorizationException;

-import org.jsecurity.samples.spring.DefaultSampleManager;

-import org.jsecurity.samples.spring.SampleManager;

+import org.ki.authz.AuthorizationException;

+import org.ki.samples.spring.DefaultSampleManager;

+import org.ki.samples.spring.SampleManager;

 import org.springframework.beans.factory.InitializingBean;

 import org.springframework.core.io.ClassPathResource;

 

diff --git a/samples/spring/src/org/jsecurity/samples/spring/web/IndexController.java b/samples/spring/src/org/ki/samples/spring/web/IndexController.java
similarity index 95%
rename from samples/spring/src/org/jsecurity/samples/spring/web/IndexController.java
rename to samples/spring/src/org/ki/samples/spring/web/IndexController.java
index 84029e1..92f0ded 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/web/IndexController.java
+++ b/samples/spring/src/org/ki/samples/spring/web/IndexController.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.samples.spring.web;
+package org.ki.samples.spring.web;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.samples.spring.SampleManager;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.samples.spring.SampleManager;
+import org.ki.subject.Subject;
 import org.springframework.validation.BindException;
 import org.springframework.validation.Errors;
 import org.springframework.web.servlet.ModelAndView;
diff --git a/samples/spring/src/org/jsecurity/samples/spring/web/JnlpController.java b/samples/spring/src/org/ki/samples/spring/web/JnlpController.java
similarity index 95%
rename from samples/spring/src/org/jsecurity/samples/spring/web/JnlpController.java
rename to samples/spring/src/org/ki/samples/spring/web/JnlpController.java
index 1fb030e..69bec50 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/web/JnlpController.java
+++ b/samples/spring/src/org/ki/samples/spring/web/JnlpController.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.samples.spring.web;

+package org.ki.samples.spring.web;

 

-import org.jsecurity.SecurityUtils;

-import org.jsecurity.session.Session;

-import org.jsecurity.subject.Subject;

+import org.ki.SecurityUtils;

+import org.ki.session.Session;

+import org.ki.subject.Subject;

 import org.springframework.web.servlet.ModelAndView;

 import org.springframework.web.servlet.mvc.AbstractController;

 

diff --git a/samples/spring/src/org/jsecurity/samples/spring/web/LoginCommand.java b/samples/spring/src/org/ki/samples/spring/web/LoginCommand.java
similarity index 97%
rename from samples/spring/src/org/jsecurity/samples/spring/web/LoginCommand.java
rename to samples/spring/src/org/ki/samples/spring/web/LoginCommand.java
index ee28451..7cc52e9 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/web/LoginCommand.java
+++ b/samples/spring/src/org/ki/samples/spring/web/LoginCommand.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.samples.spring.web;
+package org.ki.samples.spring.web;
 
 /**
  * Command object that parameters are bound to when logging into the sample
diff --git a/samples/spring/src/org/jsecurity/samples/spring/web/LoginController.java b/samples/spring/src/org/ki/samples/spring/web/LoginController.java
similarity index 94%
rename from samples/spring/src/org/jsecurity/samples/spring/web/LoginController.java
rename to samples/spring/src/org/ki/samples/spring/web/LoginController.java
index f89a983..8629145 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/web/LoginController.java
+++ b/samples/spring/src/org/ki/samples/spring/web/LoginController.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.samples.spring.web;
+package org.ki.samples.spring.web;
 
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.mgt.SecurityManager;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.mgt.SecurityManager;
 import org.springframework.validation.BindException;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.SimpleFormController;
diff --git a/samples/spring/src/org/jsecurity/samples/spring/web/LogoutController.java b/samples/spring/src/org/ki/samples/spring/web/LogoutController.java
similarity index 90%
rename from samples/spring/src/org/jsecurity/samples/spring/web/LogoutController.java
rename to samples/spring/src/org/ki/samples/spring/web/LogoutController.java
index 37b8181..717210f 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/web/LogoutController.java
+++ b/samples/spring/src/org/ki/samples/spring/web/LogoutController.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.samples.spring.web;
+package org.ki.samples.spring.web;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.subject.Subject;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.AbstractController;
 
@@ -29,7 +29,7 @@
 
 /**
  * Controller responsible for logging out the current user by invoking
- * {@link org.jsecurity.subject.Subject#logout()}
+ * {@link org.ki.subject.Subject#logout()}
  *
  * @author Jeremy Haile
  * @since 0.1
diff --git a/samples/spring/src/org/jsecurity/samples/spring/web/SessionValueCommand.java b/samples/spring/src/org/ki/samples/spring/web/SessionValueCommand.java
similarity index 97%
rename from samples/spring/src/org/jsecurity/samples/spring/web/SessionValueCommand.java
rename to samples/spring/src/org/ki/samples/spring/web/SessionValueCommand.java
index e2cb8c5..4bff511 100644
--- a/samples/spring/src/org/jsecurity/samples/spring/web/SessionValueCommand.java
+++ b/samples/spring/src/org/ki/samples/spring/web/SessionValueCommand.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.samples.spring.web;

+package org.ki.samples.spring.web;

 

 /**

  * Command object used to bind parameters when submitting a value to be

diff --git a/samples/spring/webroot/WEB-INF/applicationContext.xml b/samples/spring/webroot/WEB-INF/applicationContext.xml
index 47751ae..8aafd0e 100644
--- a/samples/spring/webroot/WEB-INF/applicationContext.xml
+++ b/samples/spring/webroot/WEB-INF/applicationContext.xml
@@ -28,19 +28,19 @@
         <property name="username" value="sa"/>

     </bean>

     <!-- Populates the sample database with sample users and roles. -->

-    <bean id="bootstrapDataPopulator" class="org.jsecurity.samples.spring.BootstrapDataPopulator">

+    <bean id="bootstrapDataPopulator" class="org.ki.samples.spring.BootstrapDataPopulator">

         <property name="dataSource" ref="dataSource"/>

     </bean>

 

     <!-- Simulated business-tier "Manager", not JSecurity related, just an example -->

-    <bean id="sampleManager" class="org.jsecurity.samples.spring.DefaultSampleManager"/>

+    <bean id="sampleManager" class="org.ki.samples.spring.DefaultSampleManager"/>

 

     <!-- =========================================================

          JSecurity Core Components - Not Spring Specific

          ========================================================= -->

     <!-- JSecurity's main business-tier object for web-enabled applications

-         (use org.jsecurity.mgt.DefaultSecurityManager instead when there is no web environment)-->

-    <bean id="securityManager" class="org.jsecurity.web.DefaultWebSecurityManager">

+         (use org.kifaultSecurityManager instead when there is no web environment)-->

+    <bean id="securityManager" class="org.ki.web.DefaultWebSecurityManager">

         <!-- Single realm app.  If you have multiple realms, use the 'realms' property instead. -->

         <property name="realm" ref="jdbcRealm"/>

         <property name="sessionMode" value="jsecurity"/>

@@ -49,12 +49,12 @@
     <!-- Used by the SecurityManager to access security data (users, roles, etc).

          Many other realm implementations can be used too (PropertiesRealm,

          LdapRealm, etc. -->

-    <bean id="jdbcRealm" class="org.jsecurity.realm.jdbc.JdbcRealm">

+    <bean id="jdbcRealm" class="org.ki.realm.jdbc.JdbcRealm">

         <property name="dataSource" ref="dataSource"/>

         <property name="credentialsMatcher">

             <!-- The 'bootstrapDataPopulator' Sha256 hashes the password

                  (using the username as the salt) then base64 encodes it: -->

-            <bean class="org.jsecurity.authc.credential.Sha256CredentialsMatcher">

+            <bean class="org.ki.authc.credential.Sha256CredentialsMatcher">

                 <!-- true means hex encoded, false means base64 encoded -->

                 <property name="storedCredentialsHexEncoded" value="false"/>

                 <!-- We salt the password using the username, the most common practice: -->

@@ -72,19 +72,19 @@
             definition and

          2) even know which JSecurity objects require these methods to be

             called. -->

-    <bean id="lifecycleBeanPostProcessor" class="org.jsecurity.spring.LifecycleBeanPostProcessor"/>

+    <bean id="lifecycleBeanPostProcessor" class="org.ki.spring.LifecycleBeanPostProcessor"/>

 

     <!-- Enable JSecurity Annotations for Spring-configured beans.  Only run after

          the lifecycleBeanProcessor has run: -->

     <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"

           depends-on="lifecycleBeanPostProcessor"/>

-    <bean class="org.jsecurity.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">

+    <bean class="org.ki.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">

         <property name="securityManager" ref="securityManager"/>

     </bean>

 

     <!-- Secure Spring remoting:  Ensure any Spring Remoting method invocations can be associated

          with a Subject for security checks. -->

-    <bean id="secureRemoteInvocationExecutor" class="org.jsecurity.spring.remoting.SecureRemoteInvocationExecutor">

+    <bean id="secureRemoteInvocationExecutor" class="org.ki.spring.remoting.SecureRemoteInvocationExecutor">

         <property name="securityManager" ref="securityManager"/>

     </bean>

 

diff --git a/samples/spring/webroot/WEB-INF/classes/log4j.properties b/samples/spring/webroot/WEB-INF/classes/log4j.properties
index 4b63695..877a87b 100644
--- a/samples/spring/webroot/WEB-INF/classes/log4j.properties
+++ b/samples/spring/webroot/WEB-INF/classes/log4j.properties
@@ -29,8 +29,8 @@
 log4j.logger.org.springframework=WARN
 
 # Default JSecurity logging
-log4j.logger.org.jsecurity=TRACE
+log4j.logger.org.ki=TRACE
 
 # Disable verbose logging
-log4j.logger.org.jsecurity.util.ThreadContext=WARN
-log4j.logger.org.jsecurity.cache.ehcache.EhCache=WARN
+log4j.logger.org.ki.util.ThreadContext=WARN
+log4j.logger.org.ki.cache.ehcache.EhCache=WARN
diff --git a/samples/spring/webroot/WEB-INF/remoting-servlet.xml b/samples/spring/webroot/WEB-INF/remoting-servlet.xml
index 2fe1470..6bf6c46 100644
--- a/samples/spring/webroot/WEB-INF/remoting-servlet.xml
+++ b/samples/spring/webroot/WEB-INF/remoting-servlet.xml
@@ -26,7 +26,7 @@
 

     <bean name="/sampleManager" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">

         <property name="service" ref="sampleManager"/>

-        <property name="serviceInterface" value="org.jsecurity.samples.spring.SampleManager"/>

+        <property name="serviceInterface" value="org.ki.samples.spring.SampleManager"/>

         <property name="remoteInvocationExecutor" ref="secureRemoteInvocationExecutor"/>

     </bean>

 

diff --git a/samples/spring/webroot/WEB-INF/resources/jsecurity.jnlp.jsp b/samples/spring/webroot/WEB-INF/resources/jsecurity.jnlp.jsp
index a2d5a9e..911ef08 100644
--- a/samples/spring/webroot/WEB-INF/resources/jsecurity.jnlp.jsp
+++ b/samples/spring/webroot/WEB-INF/resources/jsecurity.jnlp.jsp
@@ -43,5 +43,5 @@
         <jar href="slf4j-api.jar"/>

         <property name="jsecurity.session.id" value="${sessionId}"/>

     </resources>

-    <application-desc main-class="org.jsecurity.samples.spring.ui.WebStartDriver"/>

+    <application-desc main-class="org.ki.samples.spring.ui.WebStartDriver"/>

 </jnlp>
\ No newline at end of file
diff --git a/samples/spring/webroot/WEB-INF/sample-servlet.xml b/samples/spring/webroot/WEB-INF/sample-servlet.xml
index 0bb56ed..cc3d27d 100644
--- a/samples/spring/webroot/WEB-INF/sample-servlet.xml
+++ b/samples/spring/webroot/WEB-INF/sample-servlet.xml
@@ -46,21 +46,21 @@
     <!-- =========================================================
          Spring controllers
          ========================================================= -->
-    <bean name="loginController" class="org.jsecurity.samples.spring.web.LoginController">
-        <property name="commandClass" value="org.jsecurity.samples.spring.web.LoginCommand"/>
+    <bean name="loginController" class="org.ki.samples.spring.web.LoginController">
+        <property name="commandClass" value="org.ki.samples.spring.web.LoginCommand"/>
         <property name="formView" value="login"/>
         <property name="successView" value="redirect:/s/index"/>
         <property name="securityManager" ref="securityManager"/>
     </bean>
 
-    <bean name="logoutController" class="org.jsecurity.samples.spring.web.LogoutController"/>
+    <bean name="logoutController" class="org.ki.samples.spring.web.LogoutController"/>
 
-    <bean id="jnlpController" class="org.jsecurity.samples.spring.web.JnlpController">
+    <bean id="jnlpController" class="org.ki.samples.spring.web.JnlpController">
         <property name="jnlpView" value="jsecurity.jnlp"/>
     </bean>
 
-    <bean id="indexController" class="org.jsecurity.samples.spring.web.IndexController">
-        <property name="commandClass" value="org.jsecurity.samples.spring.web.SessionValueCommand"/>
+    <bean id="indexController" class="org.ki.samples.spring.web.IndexController">
+        <property name="commandClass" value="org.ki.samples.spring.web.SessionValueCommand"/>
         <property name="formView" value="sampleIndex"/>
         <property name="successView" value="sampleIndex"/>
         <property name="sampleManager" ref="sampleManager"/>
diff --git a/samples/spring/webroot/WEB-INF/web.xml b/samples/spring/webroot/WEB-INF/web.xml
index bf4d960..0b667f9 100644
--- a/samples/spring/webroot/WEB-INF/web.xml
+++ b/samples/spring/webroot/WEB-INF/web.xml
@@ -57,7 +57,7 @@
          ================================================================== -->
     <filter>
         <filter-name>JSecurityFilter</filter-name>
-        <filter-class>org.jsecurity.spring.SpringJSecurityFilter</filter-class>
+        <filter-class>org.ki.spring.SpringJSecurityFilter</filter-class>
 
         <init-param>
             <param-name>config</param-name>
diff --git a/samples/standalone/src/jsecurity.ini b/samples/standalone/src/jsecurity.ini
index 389e4bc..d1d3564 100644
--- a/samples/standalone/src/jsecurity.ini
+++ b/samples/standalone/src/jsecurity.ini
@@ -27,7 +27,7 @@
 # This simple example uses only a single realm, but you could add more for more complicated requirements.

 

 # We'll use credentials hashing, since that keeps the users' credentials (passwords, private keys, etc) safe:

-myRealmCredentialsMatcher = org.jsecurity.authc.credential.Sha256CredentialsMatcher

+myRealmCredentialsMatcher = org.ki.authc.credential.Sha256CredentialsMatcher

 

 # now define the realm, and specify that it use the above credentials matcher:

 myRealm = MyRealm

diff --git a/samples/standalone/src/log4j.properties b/samples/standalone/src/log4j.properties
index 7235c6f..bc5d3a0 100644
--- a/samples/standalone/src/log4j.properties
+++ b/samples/standalone/src/log4j.properties
@@ -29,9 +29,9 @@
 log4j.logger.org.springframework=WARN
 
 # Default JSecurity logging
-log4j.logger.org.jsecurity=TRACE
+log4j.logger.org.ki=TRACE
 
 # Disable verbose logging
-log4j.logger.org.jsecurity.util.ThreadContext=WARN
-log4j.logger.org.jsecurity.cache.ehcache.EhCache=WARN
+log4j.logger.org.ki.util.ThreadContext=WARN
+log4j.logger.org.ki.cache.ehcache.EhCache=WARN
 
diff --git a/samples/web/pom.xml b/samples/web/pom.xml
index 554d6d8..348b02e 100644
--- a/samples/web/pom.xml
+++ b/samples/web/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity.samples</groupId>
-        <artifactId>jsecurity-samples</artifactId>
+        <groupId>org.apache.ki.samples</groupId>
+        <artifactId>ki-samples</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
     <artifactId>samples-web</artifactId>
-    <name>Apache JSecurity :: Samples :: Web</name>
+    <name>Apache Ki :: Samples :: Web</name>
     <packaging>war</packaging>
 
     <build>
@@ -33,7 +33,7 @@
                 <artifactId>maven-jetty-plugin</artifactId>
                 <version>${jettyVersion}</version>
                 <configuration>
-                    <contextPath>/jsec</contextPath>
+                    <contextPath>/ki</contextPath>
                     <!-- non-standard source locations -->
                     <webAppSourceDirectory>${basedir}/webroot</webAppSourceDirectory>
                     <connectors>
@@ -83,13 +83,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-web</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-web</artifactId>
         </dependency>
 
         <dependency>
diff --git a/samples/web/webroot/WEB-INF/classes/log4j.properties b/samples/web/webroot/WEB-INF/classes/log4j.properties
index 5e4fd79..7d1ac07 100644
--- a/samples/web/webroot/WEB-INF/classes/log4j.properties
+++ b/samples/web/webroot/WEB-INF/classes/log4j.properties
@@ -40,8 +40,8 @@
 # JSecurity
 # =============================================================================
 # JSecurity security framework
-log4j.logger.org.jsecurity.realm.text.PropertiesRealm=INFO
-log4j.logger.org.jsecurity.cache.ehcache.EhCache=INFO
-log4j.logger.org.jsecurity.io=INFO
-log4j.logger.org.jsecurity.web.servlet=INFO
-log4j.logger.org.jsecurity.util.ThreadContext=INFO
\ No newline at end of file
+log4j.logger.org.ki.realm.text.PropertiesRealm=INFO
+log4j.logger.org.ki.cache.ehcache.EhCache=INFO
+log4j.logger.org.ki.io=INFO
+log4j.logger.org.ki.web.servlet=INFO
+log4j.logger.org.ki.util.ThreadContext=INFO
\ No newline at end of file
diff --git a/samples/web/webroot/WEB-INF/web.xml b/samples/web/webroot/WEB-INF/web.xml
index 1d2dc3c..100d7da 100644
--- a/samples/web/webroot/WEB-INF/web.xml
+++ b/samples/web/webroot/WEB-INF/web.xml
@@ -24,7 +24,7 @@
 
     <filter>
         <filter-name>JSecurityFilter</filter-name>
-        <filter-class>org.jsecurity.web.servlet.JSecurityFilter</filter-class>
+        <filter-class>org.ki.web.servlet.JSecurityFilter</filter-class>
         <init-param>
             <param-name>config</param-name>
             <param-value>
@@ -36,7 +36,7 @@
 
                 [main]
 
-                demoRealm = org.jsecurity.realm.text.PropertiesRealm
+                demoRealm = org.ki.realm.text.PropertiesRealm
 
                 [filters]
                 jsecurity.loginUrl = /login.jsp
diff --git a/samples/web/webroot/include.jsp b/samples/web/webroot/include.jsp
index 8e16411..5b12a10 100644
--- a/samples/web/webroot/include.jsp
+++ b/samples/web/webroot/include.jsp
@@ -16,7 +16,7 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   --%>
-<%@ page import="org.jsecurity.SecurityUtils" %>
+<%@ page import="org.ki.SecurityUtils" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <%@ taglib prefix="jsec" uri="http://www.jsecurity.org/tags" %>
\ No newline at end of file
diff --git a/support/ehcache/pom.xml b/support/ehcache/pom.xml
index 494e35b..4ab1d6f 100644
--- a/support/ehcache/pom.xml
+++ b/support/ehcache/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>jsecurity-ehcache</artifactId>
-    <name>Apache JSecurity :: Support :: EHCache</name>
+    <artifactId>ki-ehcache</artifactId>
+    <name>Apache Ki :: Support :: EHCache</name>
     <packaging>jar</packaging>
 
     <build/>
@@ -17,8 +17,8 @@
     <dependencies>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
         <dependency>
diff --git a/support/ehcache/src/org/jsecurity/cache/ehcache/EhCache.java b/support/ehcache/src/org/ki/cache/ehcache/EhCache.java
similarity index 96%
rename from support/ehcache/src/org/jsecurity/cache/ehcache/EhCache.java
rename to support/ehcache/src/org/ki/cache/ehcache/EhCache.java
index 19649ba..95a71dc 100644
--- a/support/ehcache/src/org/jsecurity/cache/ehcache/EhCache.java
+++ b/support/ehcache/src/org/ki/cache/ehcache/EhCache.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.cache.ehcache;
+package org.ki.cache.ehcache;
 
 import net.sf.ehcache.Element;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.cache.Cache;
-import org.jsecurity.cache.CacheException;
+import org.ki.cache.Cache;
+import org.ki.cache.CacheException;
 
 import java.util.Collections;
 import java.util.LinkedHashSet;
@@ -30,7 +30,7 @@
 import java.util.Set;
 
 /**
- * JSecurity {@link org.jsecurity.cache.Cache} implementation that wraps an {@link net.sf.ehcache.Ehcache} instance.
+ * JSecurity {@link org.ki.cache.Cache} implementation that wraps an {@link net.sf.ehcache.Ehcache} instance.
  *
  * @author Jeremy Haile
  * @author Les Hazlewood
diff --git a/support/ehcache/src/org/jsecurity/cache/ehcache/EhCacheManager.java b/support/ehcache/src/org/ki/cache/ehcache/EhCacheManager.java
similarity index 95%
rename from support/ehcache/src/org/jsecurity/cache/ehcache/EhCacheManager.java
rename to support/ehcache/src/org/ki/cache/ehcache/EhCacheManager.java
index 67b4ee0..db63a98 100644
--- a/support/ehcache/src/org/jsecurity/cache/ehcache/EhCacheManager.java
+++ b/support/ehcache/src/org/ki/cache/ehcache/EhCacheManager.java
@@ -16,17 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.cache.ehcache;
+package org.ki.cache.ehcache;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.cache.Cache;
-import org.jsecurity.cache.CacheException;
-import org.jsecurity.cache.CacheManager;
-import org.jsecurity.io.ResourceUtils;
-import org.jsecurity.session.mgt.eis.CachingSessionDAO;
-import org.jsecurity.util.Destroyable;
-import org.jsecurity.util.Initializable;
+import org.ki.cache.Cache;
+import org.ki.cache.CacheException;
+import org.ki.cache.CacheManager;
+import org.ki.io.ResourceUtils;
+import org.ki.session.mgt.eis.CachingSessionDAO;
+import org.ki.util.Destroyable;
+import org.ki.util.Initializable;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -86,7 +86,7 @@
     /**
      * Classpath file location of the ehcache CacheManager config file.
      */
-    private String cacheManagerConfigFile = "classpath:org/jsecurity/cache/ehcache/ehcache.xml";
+    private String cacheManagerConfigFile = "classpath:org/ki/cache/ehcache/ehcache.xml";
 
     /**
      * Default no argument constructor
@@ -130,7 +130,7 @@
     /**
      * Sets the resource location of the config file used to initialize the wrapped
      * EhCache CacheManager instance.  The string can be any resource path supported by the
-     * {@link org.jsecurity.io.ResourceUtils#getInputStreamForPath(String)} call.
+     * {@link org.ki.io.ResourceUtils#getInputStreamForPath(String)} call.
      *
      * <p>This property is ignored if the CacheManager instance is injected directly - that is, it is only used to
      * lazily create a CacheManager if one is not already provided.</p>
@@ -236,7 +236,7 @@
      * something not desireable for JSecurity sessions), this class manages an internal default configuration for
      * this case.</p>
      *
-     * @throws org.jsecurity.cache.CacheException
+     * @throws org.ki.cache.CacheException
      *          if there are any CacheExceptions thrown by EhCache.
      * @see net.sf.ehcache.CacheManager#create
      */
diff --git a/support/ehcache/src/org/jsecurity/cache/ehcache/ehcache.xml b/support/ehcache/src/org/ki/cache/ehcache/ehcache.xml
similarity index 97%
rename from support/ehcache/src/org/jsecurity/cache/ehcache/ehcache.xml
rename to support/ehcache/src/org/ki/cache/ehcache/ehcache.xml
index d55b492..d857eea 100644
--- a/support/ehcache/src/org/jsecurity/cache/ehcache/ehcache.xml
+++ b/support/ehcache/src/org/ki/cache/ehcache/ehcache.xml
@@ -80,14 +80,14 @@
 
 diskPersistent=true since we want an enterprise session management feature - ability to use sessions after
 even after a JVM restart.  -->
-    <!-- <cache name="jsecurity-activeSessionCache"
+    <!-- <cache name="ki-activeSessionCache"
    maxElementsInMemory="20000"
    eternal="true"
    overflowToDisk="true"
    diskPersistent="true"
    diskExpiryThreadIntervalSeconds="600"/> -->
 
-    <cache name="org.jsecurity.realm.text.PropertiesRealm-0-accounts"
+    <cache name="org.ki.realm.text.PropertiesRealm-0-accounts"
            maxElementsInMemory="1000"
            eternal="true"
            overflowToDisk="true"/>
diff --git a/support/ehcache/src/org/jsecurity/cache/ehcache/package-info.java b/support/ehcache/src/org/ki/cache/ehcache/package-info.java
similarity index 96%
rename from support/ehcache/src/org/jsecurity/cache/ehcache/package-info.java
rename to support/ehcache/src/org/ki/cache/ehcache/package-info.java
index 8724f40..bfab093 100644
--- a/support/ehcache/src/org/jsecurity/cache/ehcache/package-info.java
+++ b/support/ehcache/src/org/ki/cache/ehcache/package-info.java
@@ -20,4 +20,4 @@
  * <a href="http://ehcache.sourceforge.net" target="_top">Ehcache</a>-based implementations of JSecurity's
  * cache interfaces.
  */
-package org.jsecurity.cache.ehcache;
\ No newline at end of file
+package org.ki.cache.ehcache;
\ No newline at end of file
diff --git a/support/pom.xml b/support/pom.xml
index 4e5a7ba..616e6c4 100644
--- a/support/pom.xml
+++ b/support/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>jsecurity-support</artifactId>
-    <name>Apache JSecurity :: Suport</name>
+    <artifactId>ki-support</artifactId>
+    <name>Apache Ki :: Suport</name>
     <packaging>pom</packaging>
 
     <modules>
diff --git a/support/quartz/pom.xml b/support/quartz/pom.xml
index 0a19be3..831db4d 100644
--- a/support/quartz/pom.xml
+++ b/support/quartz/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>jsecurity-quartz</artifactId>
-    <name>Apache JSecurity :: Support :: Quartz</name>
+    <artifactId>ki-quartz</artifactId>
+    <name>Apache Ki :: Support :: Quartz</name>
     <packaging>jar</packaging>
 
     <build/>
@@ -17,8 +17,8 @@
     <dependencies>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
         <dependency>
diff --git a/support/quartz/src/org/jsecurity/session/mgt/quartz/QuartzSessionValidationJob.java b/support/quartz/src/org/ki/session/mgt/quartz/QuartzSessionValidationJob.java
similarity index 93%
rename from support/quartz/src/org/jsecurity/session/mgt/quartz/QuartzSessionValidationJob.java
rename to support/quartz/src/org/ki/session/mgt/quartz/QuartzSessionValidationJob.java
index a57144f..6e1d0f4 100644
--- a/support/quartz/src/org/jsecurity/session/mgt/quartz/QuartzSessionValidationJob.java
+++ b/support/quartz/src/org/ki/session/mgt/quartz/QuartzSessionValidationJob.java
@@ -16,18 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt.quartz;
+package org.ki.session.mgt.quartz;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.session.mgt.ValidatingSessionManager;
+import org.ki.session.mgt.ValidatingSessionManager;
 import org.quartz.Job;
 import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 
 /**
- * A quartz job that basically just calls the {@link org.jsecurity.session.mgt.ValidatingSessionManager#validateSessions()}
+ * A quartz job that basically just calls the {@link org.ki.session.mgt.ValidatingSessionManager#validateSessions()}
  * method on a configured session manager.  The session manager will automatically be injected by the
  * superclass if it is in the job data map or the scheduler map.
  *
diff --git a/support/quartz/src/org/jsecurity/session/mgt/quartz/QuartzSessionValidationScheduler.java b/support/quartz/src/org/ki/session/mgt/quartz/QuartzSessionValidationScheduler.java
similarity index 94%
rename from support/quartz/src/org/jsecurity/session/mgt/quartz/QuartzSessionValidationScheduler.java
rename to support/quartz/src/org/ki/session/mgt/quartz/QuartzSessionValidationScheduler.java
index 1d5434c..5f30b08 100644
--- a/support/quartz/src/org/jsecurity/session/mgt/quartz/QuartzSessionValidationScheduler.java
+++ b/support/quartz/src/org/ki/session/mgt/quartz/QuartzSessionValidationScheduler.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.session.mgt.quartz;
+package org.ki.session.mgt.quartz;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.session.mgt.DefaultSessionManager;
-import org.jsecurity.session.mgt.SessionValidationScheduler;
-import org.jsecurity.session.mgt.ValidatingSessionManager;
+import org.ki.session.mgt.DefaultSessionManager;
+import org.ki.session.mgt.SessionValidationScheduler;
+import org.ki.session.mgt.ValidatingSessionManager;
 import org.quartz.JobDetail;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
@@ -31,7 +31,7 @@
 
 /**
  * An implementation of the {@link SessionValidationScheduler SessionValidationScheduler} that uses Quartz to schedule a
- * job to call {@link org.jsecurity.session.mgt.ValidatingSessionManager#validateSessions()} on
+ * job to call {@link org.ki.session.mgt.ValidatingSessionManager#validateSessions()} on
  * a regular basis.
  *
  * @author Jeremy Haile
@@ -126,7 +126,7 @@
 
     /**
      * Specifies how frequently (in milliseconds) this Scheduler will call the
-     * {@link org.jsecurity.session.mgt.ValidatingSessionManager#validateSessions() ValidatingSessionManager#validateSessions()} method.
+     * {@link org.ki.session.mgt.ValidatingSessionManager#validateSessions() ValidatingSessionManager#validateSessions()} method.
      *
      * <p>Unless this method is called, the default value is {@link #DEFAULT_SESSION_VALIDATION_INTERVAL}.
      *
diff --git a/support/quartz/src/org/jsecurity/session/mgt/quartz/package-info.java b/support/quartz/src/org/ki/session/mgt/quartz/package-info.java
similarity index 95%
rename from support/quartz/src/org/jsecurity/session/mgt/quartz/package-info.java
rename to support/quartz/src/org/ki/session/mgt/quartz/package-info.java
index cf9cde8..c40a3f8 100644
--- a/support/quartz/src/org/jsecurity/session/mgt/quartz/package-info.java
+++ b/support/quartz/src/org/ki/session/mgt/quartz/package-info.java
@@ -21,4 +21,4 @@
  * components that help <tt>SessionManager</tt> implementations maintain sessions (timed expiration, orphan cleanup,
  * etc).
  */
-package org.jsecurity.session.mgt.quartz;
\ No newline at end of file
+package org.ki.session.mgt.quartz;
\ No newline at end of file
diff --git a/support/spring/pom.xml b/support/spring/pom.xml
index 439a1ca..b6c71f6 100644
--- a/support/spring/pom.xml
+++ b/support/spring/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>jsecurity-spring</artifactId>
-    <name>Apache JSecurity :: Support :: Spring</name>
+    <artifactId>ki-spring</artifactId>
+    <name>Apache Ki :: Support :: Spring</name>
     <packaging>jar</packaging>
 
     <build/>
@@ -23,13 +23,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-web</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-web</artifactId>
         </dependency>
 
         <dependency>
diff --git a/support/spring/src/org/jsecurity/spring/LifecycleBeanPostProcessor.java b/support/spring/src/org/ki/spring/LifecycleBeanPostProcessor.java
similarity index 91%
rename from support/spring/src/org/jsecurity/spring/LifecycleBeanPostProcessor.java
rename to support/spring/src/org/ki/spring/LifecycleBeanPostProcessor.java
index 1710f30..0f21544 100644
--- a/support/spring/src/org/jsecurity/spring/LifecycleBeanPostProcessor.java
+++ b/support/spring/src/org/ki/spring/LifecycleBeanPostProcessor.java
@@ -16,20 +16,20 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.spring;

+package org.ki.spring;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.util.Destroyable;

-import org.jsecurity.util.Initializable;

+import org.ki.util.Destroyable;

+import org.ki.util.Initializable;

 import org.springframework.beans.BeansException;

 import org.springframework.beans.FatalBeanException;

 import org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor;

 

 /**

  * <p>Bean post processor for Spring that automatically calls the <tt>init()</tt> and/or

- * <tt>destroy()</tt> methods on JSecurity objects that implement the {@link org.jsecurity.util.Initializable}

- * or {@link org.jsecurity.util.Destroyable} interfaces, respectfully.  This post processor makes it easier

+ * <tt>destroy()</tt> methods on JSecurity objects that implement the {@link org.ki.util.Initializable}

+ * or {@link org.ki.util.Destroyable} interfaces, respectfully.  This post processor makes it easier

  * to configure JSecurity beans in Spring, since the user never has to worry about whether or not if they

  * have to specify init-method and destroy-method bean attributes.</p>

  *

@@ -48,7 +48,7 @@
     private static final Log log = LogFactory.getLog(LifecycleBeanPostProcessor.class);

 

     /**

-     * Calls the <tt>init()</tt> methods on the bean if it implements {@link org.jsecurity.util.Initializable}

+     * Calls the <tt>init()</tt> methods on the bean if it implements {@link org.ki.util.Initializable}

      *

      * @param object the object being initialized.

      * @param name   the name of the bean being initialized.

@@ -81,7 +81,7 @@
 

 

     /**

-     * Calls the <tt>destroy()</tt> methods on the bean if it implements {@link org.jsecurity.util.Destroyable}

+     * Calls the <tt>destroy()</tt> methods on the bean if it implements {@link org.ki.util.Destroyable}

      *

      * @param object the object being initialized.

      * @param name   the name of the bean being initialized.

diff --git a/support/spring/src/org/jsecurity/spring/SpringIniWebConfiguration.java b/support/spring/src/org/ki/spring/SpringIniWebConfiguration.java
similarity index 94%
rename from support/spring/src/org/jsecurity/spring/SpringIniWebConfiguration.java
rename to support/spring/src/org/ki/spring/SpringIniWebConfiguration.java
index ef982c4..5d33dcb 100644
--- a/support/spring/src/org/jsecurity/spring/SpringIniWebConfiguration.java
+++ b/support/spring/src/org/ki/spring/SpringIniWebConfiguration.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.spring;
+package org.ki.spring;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.JSecurityException;
-import org.jsecurity.mgt.RealmSecurityManager;
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.realm.Realm;
-import org.jsecurity.web.config.IniWebConfiguration;
+import org.ki.JSecurityException;
+import org.ki.mgt.RealmSecurityManager;
+import org.ki.mgt.SecurityManager;
+import org.ki.realm.Realm;
+import org.ki.web.config.IniWebConfiguration;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextException;
 import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -37,7 +37,7 @@
  * <p>JSecurity configuration that relies on Spring to define and initialize the JSecurity SecurityManager
  * instance (and all of its dependencies) and makes it available to the JSecurityFilter by performing a Spring bean
  * lookup.  The URL/filter definitions are still .ini based and loaded according to the behavior of the parent class
- * {@link org.jsecurity.web.config.IniWebConfiguration}</p>
+ * {@link org.ki.web.config.IniWebConfiguration}</p>
  * <p/>
  * That is, this class is offers a hybrid means of configuring JSecurity in Spring apps deployed in a web container:
  * Spring XML config for the SecurityManager and its dependencies (realms, etc), and .ini format for configuring
@@ -53,7 +53,7 @@
  * throw an exception that says you have to set the init-param to specify the bean name.</li>
  * <li>if no beans of type {@link SecurityManager}, look for any beans of type {@link Realm}.
  * If some are found, create a default security manager by calling
- * {@link org.jsecurity.web.config.IniWebConfiguration#createSecurityManager(java.util.Map) super.createSecurityManager(Map)}
+ * {@link org.ki.web.config.IniWebConfiguration#createSecurityManager(java.util.Map) super.createSecurityManager(Map)}
  * and set the Realms on that SecurityManager instance.</li>
  * <li>If none of the above, throw an exception that explains the options.</li>
  * <ol>
diff --git a/support/spring/src/org/jsecurity/spring/SpringJSecurityFilter.java b/support/spring/src/org/ki/spring/SpringJSecurityFilter.java
similarity index 96%
rename from support/spring/src/org/jsecurity/spring/SpringJSecurityFilter.java
rename to support/spring/src/org/ki/spring/SpringJSecurityFilter.java
index 1c9d7c5..4ad42ef 100644
--- a/support/spring/src/org/jsecurity/spring/SpringJSecurityFilter.java
+++ b/support/spring/src/org/ki/spring/SpringJSecurityFilter.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.spring;
+package org.ki.spring;
 
-import org.jsecurity.web.servlet.JSecurityFilter;
+import org.ki.web.servlet.JSecurityFilter;
 
 /**
  * Extension of JSecurityFilter that uses {@link SpringIniWebConfiguration} to configure JSecurity in a Spring web
diff --git a/support/spring/src/org/jsecurity/spring/package-info.java b/support/spring/src/org/ki/spring/package-info.java
similarity index 96%
rename from support/spring/src/org/jsecurity/spring/package-info.java
rename to support/spring/src/org/ki/spring/package-info.java
index 1388bf8..5ff355c 100644
--- a/support/spring/src/org/jsecurity/spring/package-info.java
+++ b/support/spring/src/org/ki/spring/package-info.java
@@ -20,4 +20,4 @@
  * <a href="http://www.springframework.org" target="_top">Spring Application Framework</a> support for enabling

  * JSecurity in spring applications.

  */

-package org.jsecurity.spring;
\ No newline at end of file
+package org.ki.spring;
\ No newline at end of file
diff --git a/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationExecutor.java b/support/spring/src/org/ki/spring/remoting/SecureRemoteInvocationExecutor.java
similarity index 95%
rename from support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationExecutor.java
rename to support/spring/src/org/ki/spring/remoting/SecureRemoteInvocationExecutor.java
index 5afeede..c72ba08 100644
--- a/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationExecutor.java
+++ b/support/spring/src/org/ki/spring/remoting/SecureRemoteInvocationExecutor.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.spring.remoting;
+package org.ki.spring.remoting;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.util.ThreadContext;
+import org.ki.mgt.SecurityManager;
+import org.ki.util.ThreadContext;
 import org.springframework.remoting.support.DefaultRemoteInvocationExecutor;
 import org.springframework.remoting.support.RemoteInvocation;
 
@@ -65,7 +65,7 @@
     |  A C C E S S O R S / M O D I F I E R S    |
     ============================================*/
 
-    public void setSecurityManager(org.jsecurity.mgt.SecurityManager securityManager) {
+    public void setSecurityManager(org.ki.mgt.SecurityManager securityManager) {
         this.securityManager = securityManager;
     }
 
diff --git a/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java b/support/spring/src/org/ki/spring/remoting/SecureRemoteInvocationFactory.java
similarity index 89%
rename from support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java
rename to support/spring/src/org/ki/spring/remoting/SecureRemoteInvocationFactory.java
index 8a608b9..fc8a83d 100644
--- a/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java
+++ b/support/spring/src/org/ki/spring/remoting/SecureRemoteInvocationFactory.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.spring.remoting;
+package org.ki.spring.remoting;
 
 import org.aopalliance.intercept.MethodInvocation;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.session.Session;
+import org.ki.subject.Subject;
 import org.springframework.remoting.support.DefaultRemoteInvocationFactory;
 import org.springframework.remoting.support.RemoteInvocation;
 import org.springframework.remoting.support.RemoteInvocationFactory;
@@ -48,7 +48,7 @@
 
     public static final String SESSION_ID_KEY = Session.class.getName() + "_ID_KEY";
 
-    private static final String SESSION_ID_SYSTEM_PROPERTY_NAME = "jsecurity.session.id";
+    private static final String SESSION_ID_SYSTEM_PROPERTY_NAME = "ki.session.id";
 
     /**
      * Creates a {@link RemoteInvocation} with the current session ID as an
@@ -71,12 +71,12 @@
         if (sessionId == null) {
             if (log.isTraceEnabled()) {
                 log.trace("No Session found for the currently executing subject via subject.getSession(false).  " +
-                        "Attempting to revert back to the 'jsecurity.session.id' system property...");
+                        "Attempting to revert back to the 'ki.session.id' system property...");
             }
         }
         sessionId = System.getProperty(SESSION_ID_SYSTEM_PROPERTY_NAME);
         if (sessionId == null && log.isTraceEnabled()) {
-            log.trace("No 'jsecurity.session.id' system property found.  Heuristics have been exhausted; " +
+            log.trace("No 'ki.session.id' system property found.  Heuristics have been exhausted; " +
                     "RemoteInvocation will not contain a sessionId.");
         }
         RemoteInvocation ri = new RemoteInvocation(methodInvocation);
diff --git a/support/spring/src/org/jsecurity/spring/remoting/package-info.java b/support/spring/src/org/ki/spring/remoting/package-info.java
similarity index 96%
rename from support/spring/src/org/jsecurity/spring/remoting/package-info.java
rename to support/spring/src/org/ki/spring/remoting/package-info.java
index d78a261..21aad4f 100644
--- a/support/spring/src/org/jsecurity/spring/remoting/package-info.java
+++ b/support/spring/src/org/ki/spring/remoting/package-info.java
@@ -20,4 +20,4 @@
  * Support to enable Spring-based remote method invocations to carry a JSecurity session ID as part of the

  * invocation payload, allowing remote clients to perform security operations.

  */

-package org.jsecurity.spring.remoting;
\ No newline at end of file
+package org.ki.spring.remoting;
\ No newline at end of file
diff --git a/support/spring/src/org/jsecurity/spring/security/interceptor/AopAllianceAnnotationsAuthorizingMethodInterceptor.java b/support/spring/src/org/ki/spring/security/interceptor/AopAllianceAnnotationsAuthorizingMethodInterceptor.java
similarity index 88%
rename from support/spring/src/org/jsecurity/spring/security/interceptor/AopAllianceAnnotationsAuthorizingMethodInterceptor.java
rename to support/spring/src/org/ki/spring/security/interceptor/AopAllianceAnnotationsAuthorizingMethodInterceptor.java
index a2e42e1..433e069 100644
--- a/support/spring/src/org/jsecurity/spring/security/interceptor/AopAllianceAnnotationsAuthorizingMethodInterceptor.java
+++ b/support/spring/src/org/ki/spring/security/interceptor/AopAllianceAnnotationsAuthorizingMethodInterceptor.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.spring.security.interceptor;
+package org.ki.spring.security.interceptor;
 
 import org.aopalliance.intercept.MethodInterceptor;
 import org.aopalliance.intercept.MethodInvocation;
-import org.jsecurity.authz.aop.AnnotationsAuthorizingMethodInterceptor;
+import org.ki.authz.aop.AnnotationsAuthorizingMethodInterceptor;
 
 import java.lang.reflect.Method;
 
@@ -43,10 +43,10 @@
      * @param implSpecificMethodInvocation AOP Alliance {@link org.aopalliance.intercept.MethodInvocation MethodInvocation}
      * @return a JSecurity {@link MethodInvocation MethodInvocation} instance that wraps the AOP Alliance instance.
      */
-    protected org.jsecurity.aop.MethodInvocation createMethodInvocation(Object implSpecificMethodInvocation) {
+    protected org.ki.aop.MethodInvocation createMethodInvocation(Object implSpecificMethodInvocation) {
         final MethodInvocation mi = (MethodInvocation) implSpecificMethodInvocation;
 
-        return new org.jsecurity.aop.MethodInvocation() {
+        return new org.ki.aop.MethodInvocation() {
             public Method getMethod() {
                 return mi.getMethod();
             }
@@ -80,14 +80,14 @@
 
     /**
      * Creates a JSecurity {@link MethodInvocation MethodInvocation} instance and then immediately calls
-     * {@link org.jsecurity.authz.aop.AuthorizingMethodInterceptor#invoke super.invoke}.
+     * {@link org.ki.authz.aop.AuthorizingMethodInterceptor#invoke super.invoke}.
      *
      * @param methodInvocation the AOP Alliance-specific <code>methodInvocation</code> instance.
      * @return the return value from invoking the method invocation.
      * @throws Throwable if the underlying AOP Alliance method invocation throws a <code>Throwable</code>.
      */
     public Object invoke(MethodInvocation methodInvocation) throws Throwable {
-        org.jsecurity.aop.MethodInvocation mi = createMethodInvocation(methodInvocation);
+        org.ki.aop.MethodInvocation mi = createMethodInvocation(methodInvocation);
         return super.invoke(mi);
     }
 }
diff --git a/support/spring/src/org/jsecurity/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java b/support/spring/src/org/ki/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
similarity index 85%
rename from support/spring/src/org/jsecurity/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
rename to support/spring/src/org/ki/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
index a74a6c4..bc9723f 100644
--- a/support/spring/src/org/jsecurity/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
+++ b/support/spring/src/org/ki/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.spring.security.interceptor;
+package org.ki.spring.security.interceptor;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authz.annotation.*;
-import org.jsecurity.mgt.SecurityManager;
+import org.ki.authz.annotation.*;
+import org.ki.mgt.SecurityManager;
 import org.springframework.aop.support.StaticMethodMatcherPointcutAdvisor;
 import org.springframework.beans.factory.InitializingBean;
 
@@ -57,11 +57,11 @@
      * Returns <tt>true</tt> if the method has any JSecurity annotations, false otherwise.
      * The annotations inspected are:
      * <ul>
-     * <li>{@link org.jsecurity.authz.annotation.RequiresAuthentication RequiresAuthentication}</li>
-     * <li>{@link org.jsecurity.authz.annotation.RequiresUser RequiresUser}</li>
-     * <li>{@link org.jsecurity.authz.annotation.RequiresGuest RequiresGuest}</li>
-     * <li>{@link org.jsecurity.authz.annotation.RequiresRoles RequiresRoles}</li>
-     * <li>{@link org.jsecurity.authz.annotation.RequiresPermissions RequiresPermissions}</li>
+     * <li>{@link org.ki.authz.annotation.RequiresAuthentication RequiresAuthentication}</li>
+     * <li>{@link org.ki.authz.annotation.RequiresUser RequiresUser}</li>
+     * <li>{@link org.ki.authz.annotation.RequiresGuest RequiresGuest}</li>
+     * <li>{@link org.ki.authz.annotation.RequiresRoles RequiresRoles}</li>
+     * <li>{@link org.ki.authz.annotation.RequiresPermissions RequiresPermissions}</li>
      * </ul>
      *
      * @param method      the method to check for a JSecurity annotation
diff --git a/support/spring/src/org/jsecurity/spring/security/interceptor/package-info.java b/support/spring/src/org/ki/spring/security/interceptor/package-info.java
similarity index 94%
rename from support/spring/src/org/jsecurity/spring/security/interceptor/package-info.java
rename to support/spring/src/org/ki/spring/security/interceptor/package-info.java
index 6cfb959..0d2b82c 100644
--- a/support/spring/src/org/jsecurity/spring/security/interceptor/package-info.java
+++ b/support/spring/src/org/ki/spring/security/interceptor/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Spring AOP support for enabling JSecurity annotations in Spring-configured applications. 

  */

-package org.jsecurity.spring.security.interceptor;
\ No newline at end of file
+package org.ki.spring.security.interceptor;
\ No newline at end of file
diff --git a/support/spring/test/org/jsecurity/spring/SpringJSecurityFilterTest.java b/support/spring/test/org/ki/spring/SpringJSecurityFilterTest.java
similarity index 95%
rename from support/spring/test/org/jsecurity/spring/SpringJSecurityFilterTest.java
rename to support/spring/test/org/ki/spring/SpringJSecurityFilterTest.java
index de2f676..f3e9235 100644
--- a/support/spring/test/org/jsecurity/spring/SpringJSecurityFilterTest.java
+++ b/support/spring/test/org/ki/spring/SpringJSecurityFilterTest.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.spring;

+package org.ki.spring;

 

 import static org.easymock.EasyMock.*;

-import org.jsecurity.mgt.SecurityManager;

-import org.jsecurity.web.servlet.JSecurityFilter;

+import org.ki.mgt.SecurityManager;

+import org.ki.web.servlet.JSecurityFilter;

 import org.junit.Test;

 import org.springframework.web.context.WebApplicationContext;

 

diff --git a/web/pom.xml b/web/pom.xml
index d73cac2..37758c4 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -2,14 +2,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
     <parent>
-        <groupId>org.apache.jsecurity</groupId>
-        <artifactId>jsecurity-root</artifactId>
+        <groupId>org.apache.ki</groupId>
+        <artifactId>ki-root</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>jsecurity-web</artifactId>
-    <name>Apache JSecurity :: Web</name>
+    <artifactId>ki-web</artifactId>
+    <name>Apache Ki :: Web</name>
     <packaging>jar</packaging>
 
     <build>
@@ -46,8 +46,8 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.jsecurity</groupId>
-            <artifactId>jsecurity-core</artifactId>
+            <groupId>org.apache.ki</groupId>
+            <artifactId>ki-core</artifactId>
         </dependency>
 
         <dependency>
diff --git a/web/src/org/jsecurity/web/DefaultWebSecurityManager.java b/web/src/org/ki/web/DefaultWebSecurityManager.java
similarity index 91%
rename from web/src/org/jsecurity/web/DefaultWebSecurityManager.java
rename to web/src/org/ki/web/DefaultWebSecurityManager.java
index 2f62e23..0818d10 100644
--- a/web/src/org/jsecurity/web/DefaultWebSecurityManager.java
+++ b/web/src/org/ki/web/DefaultWebSecurityManager.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.web;

+package org.ki.web;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

-import org.jsecurity.mgt.DefaultSecurityManager;

-import org.jsecurity.realm.Realm;

-import org.jsecurity.session.mgt.SessionManager;

-import org.jsecurity.util.LifecycleUtils;

-import org.jsecurity.web.session.DefaultWebSessionManager;

-import org.jsecurity.web.session.ServletContainerSessionManager;

-import org.jsecurity.web.session.WebSessionManager;

-import org.jsecurity.web.servlet.JSecurityHttpServletRequest;

-import org.jsecurity.subject.PrincipalCollection;

+import org.ki.mgt.DefaultSecurityManager;

+import org.ki.realm.Realm;

+import org.ki.session.mgt.SessionManager;

+import org.ki.util.LifecycleUtils;

+import org.ki.web.session.DefaultWebSessionManager;

+import org.ki.web.session.ServletContainerSessionManager;

+import org.ki.web.session.WebSessionManager;

+import org.ki.web.servlet.JSecurityHttpServletRequest;

+import org.ki.subject.PrincipalCollection;

 

 import javax.servlet.ServletRequest;

 import java.util.Collection;

@@ -47,7 +47,7 @@
     private static final Log log = LogFactory.getLog(DefaultWebSecurityManager.class);

 

     public static final String HTTP_SESSION_MODE = "http";

-    public static final String JSECURITY_SESSION_MODE = "jsecurity";

+    public static final String JSECURITY_SESSION_MODE = "ki";

 

     /**

      * The key that is used to store subject principals in the session.

@@ -107,7 +107,7 @@
             String msg = "The convenience passthrough methods for setting session id cookie attributes " +

                     "are only available when the underlying SessionManager implementation is " +

                     DefaultWebSessionManager.class.getName() + ", which is enabled by default when the " +

-                    "sessionMode is 'jsecurity'.";

+                    "sessionMode is 'ki'.";

             throw new IllegalStateException(msg);

         }

         return (DefaultWebSessionManager) sessionManager;

diff --git a/web/src/org/jsecurity/web/RedirectView.java b/web/src/org/ki/web/RedirectView.java
similarity index 99%
rename from web/src/org/jsecurity/web/RedirectView.java
rename to web/src/org/ki/web/RedirectView.java
index b554c52..e2ddbf8 100644
--- a/web/src/org/jsecurity/web/RedirectView.java
+++ b/web/src/org/ki/web/RedirectView.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.util.JavaEnvironment;
+import org.ki.util.JavaEnvironment;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
diff --git a/web/src/org/jsecurity/web/SavedRequest.java b/web/src/org/ki/web/SavedRequest.java
similarity index 98%
rename from web/src/org/jsecurity/web/SavedRequest.java
rename to web/src/org/ki/web/SavedRequest.java
index 047b752..2431125 100644
--- a/web/src/org/jsecurity/web/SavedRequest.java
+++ b/web/src/org/ki/web/SavedRequest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.Serializable;
diff --git a/web/src/org/jsecurity/web/WebRememberMeManager.java b/web/src/org/ki/web/WebRememberMeManager.java
similarity index 96%
rename from web/src/org/jsecurity/web/WebRememberMeManager.java
rename to web/src/org/ki/web/WebRememberMeManager.java
index b5cb775..62e8e3c 100644
--- a/web/src/org/jsecurity/web/WebRememberMeManager.java
+++ b/web/src/org/ki/web/WebRememberMeManager.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.codec.Base64;
-import org.jsecurity.mgt.AbstractRememberMeManager;
-import org.jsecurity.web.attr.CookieAttribute;
-import org.jsecurity.web.attr.WebAttribute;
-import org.jsecurity.web.servlet.JSecurityHttpServletRequest;
+import org.ki.codec.Base64;
+import org.ki.mgt.AbstractRememberMeManager;
+import org.ki.web.attr.CookieAttribute;
+import org.ki.web.attr.WebAttribute;
+import org.ki.web.servlet.JSecurityHttpServletRequest;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -34,7 +34,7 @@
  * the identity value between web requests.
  *
  * <p>This class's default <code>WebAttribute</code> instance is a {@link CookieAttribute CookieAttribute}, storing
- * the Subject's {@link org.jsecurity.subject.Subject#getPrincipals principals} in a <code>Cookie</code>.  Note that
+ * the Subject's {@link org.ki.subject.Subject#getPrincipals principals} in a <code>Cookie</code>.  Note that
  * because this class subclasses the <code>AbstractRememberMeManager</code> which already provides serialization and
  * encryption logic, this class utilizes both for added security before setting the cookie value.</p>
  *
diff --git a/web/src/org/jsecurity/web/WebSubjectFactory.java b/web/src/org/ki/web/WebSubjectFactory.java
similarity index 91%
rename from web/src/org/jsecurity/web/WebSubjectFactory.java
rename to web/src/org/ki/web/WebSubjectFactory.java
index 773e469..1630551 100644
--- a/web/src/org/jsecurity/web/WebSubjectFactory.java
+++ b/web/src/org/ki/web/WebSubjectFactory.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
-import org.jsecurity.mgt.DefaultSubjectFactory;
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.mgt.SessionSubjectBinder;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.web.session.WebSessionManager;
+import org.ki.mgt.DefaultSubjectFactory;
+import org.ki.mgt.SecurityManager;
+import org.ki.mgt.SessionSubjectBinder;
+import org.ki.session.Session;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.Subject;
+import org.ki.web.session.WebSessionManager;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/WebUtils.java b/web/src/org/ki/web/WebUtils.java
similarity index 98%
rename from web/src/org/jsecurity/web/WebUtils.java
rename to web/src/org/ki/web/WebUtils.java
index 773d707..e8f7aff 100644
--- a/web/src/org/jsecurity/web/WebUtils.java
+++ b/web/src/org/ki/web/WebUtils.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.StringUtils;
-import org.jsecurity.util.ThreadContext;
+import org.ki.SecurityUtils;
+import org.ki.session.Session;
+import org.ki.subject.Subject;
+import org.ki.util.StringUtils;
+import org.ki.util.ThreadContext;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/attr/AbstractWebAttribute.java b/web/src/org/ki/web/attr/AbstractWebAttribute.java
similarity index 98%
rename from web/src/org/jsecurity/web/attr/AbstractWebAttribute.java
rename to web/src/org/ki/web/attr/AbstractWebAttribute.java
index 2d147e0..b4bf6b0 100644
--- a/web/src/org/jsecurity/web/attr/AbstractWebAttribute.java
+++ b/web/src/org/ki/web/attr/AbstractWebAttribute.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.attr;
+package org.ki.web.attr;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.JSecurityException;
-import org.jsecurity.util.ClassUtils;
+import org.ki.JSecurityException;
+import org.ki.util.ClassUtils;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/attr/CookieAttribute.java b/web/src/org/ki/web/attr/CookieAttribute.java
similarity index 98%
rename from web/src/org/jsecurity/web/attr/CookieAttribute.java
rename to web/src/org/ki/web/attr/CookieAttribute.java
index d5d4e0a..bb53506 100644
--- a/web/src/org/jsecurity/web/attr/CookieAttribute.java
+++ b/web/src/org/ki/web/attr/CookieAttribute.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.attr;
+package org.ki.web.attr;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.util.StringUtils;
-import static org.jsecurity.web.WebUtils.toHttp;
+import org.ki.util.StringUtils;
+import static org.ki.web.WebUtils.toHttp;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/attr/RequestParamAttribute.java b/web/src/org/ki/web/attr/RequestParamAttribute.java
similarity index 98%
rename from web/src/org/jsecurity/web/attr/RequestParamAttribute.java
rename to web/src/org/ki/web/attr/RequestParamAttribute.java
index 96c6cda..86f670a 100644
--- a/web/src/org/jsecurity/web/attr/RequestParamAttribute.java
+++ b/web/src/org/ki/web/attr/RequestParamAttribute.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.attr;
+package org.ki.web.attr;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/web/src/org/jsecurity/web/attr/WebAttribute.java b/web/src/org/ki/web/attr/WebAttribute.java
similarity index 97%
rename from web/src/org/jsecurity/web/attr/WebAttribute.java
rename to web/src/org/ki/web/attr/WebAttribute.java
index 47ef5b1..0b7b673 100644
--- a/web/src/org/jsecurity/web/attr/WebAttribute.java
+++ b/web/src/org/ki/web/attr/WebAttribute.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.attr;
+package org.ki.web.attr;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/attr/package-info.java b/web/src/org/ki/web/attr/package-info.java
similarity index 91%
rename from web/src/org/jsecurity/web/attr/package-info.java
rename to web/src/org/ki/web/attr/package-info.java
index e822720..663c627 100644
--- a/web/src/org/jsecurity/web/attr/package-info.java
+++ b/web/src/org/ki/web/attr/package-info.java
@@ -17,7 +17,7 @@
  * under the License.

  */

 /**

- * Supporting implementation of JSecurity's concept of a {@link org.jsecurity.web.attr.WebAttribute WebAttribute}, a

+ * Supporting implementation of JSecurity's concept of a {@link org.ki.web.attr.WebAttribute WebAttribute}, a

  * component that can save and recall an object beyond transient requests.

  */

-package org.jsecurity.web.attr;
\ No newline at end of file
+package org.ki.web.attr;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/config/IniWebConfiguration.java b/web/src/org/ki/web/config/IniWebConfiguration.java
similarity index 91%
rename from web/src/org/jsecurity/web/config/IniWebConfiguration.java
rename to web/src/org/ki/web/config/IniWebConfiguration.java
index 59979e8..12efdab 100644
--- a/web/src/org/jsecurity/web/config/IniWebConfiguration.java
+++ b/web/src/org/ki/web/config/IniWebConfiguration.java
@@ -16,28 +16,28 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.config;
+package org.ki.web.config;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.config.ConfigurationException;
-import org.jsecurity.config.IniConfiguration;
-import org.jsecurity.config.ReflectionBuilder;
-import org.jsecurity.mgt.RealmSecurityManager;
-import org.jsecurity.util.AntPathMatcher;
-import org.jsecurity.util.PatternMatcher;
-import static org.jsecurity.util.StringUtils.split;
-import org.jsecurity.web.DefaultWebSecurityManager;
-import org.jsecurity.web.WebUtils;
-import org.jsecurity.web.filter.PathConfigProcessor;
-import org.jsecurity.web.filter.authc.AnonymousFilter;
-import org.jsecurity.web.filter.authc.BasicHttpAuthenticationFilter;
-import org.jsecurity.web.filter.authc.FormAuthenticationFilter;
-import org.jsecurity.web.filter.authc.UserFilter;
-import org.jsecurity.web.filter.authz.PermissionsAuthorizationFilter;
-import org.jsecurity.web.filter.authz.RolesAuthorizationFilter;
-import org.jsecurity.web.servlet.AdviceFilter;
-import org.jsecurity.web.servlet.ProxiedFilterChain;
+import org.ki.config.ConfigurationException;
+import org.ki.config.IniConfiguration;
+import org.ki.config.ReflectionBuilder;
+import org.ki.mgt.RealmSecurityManager;
+import org.ki.util.AntPathMatcher;
+import org.ki.util.PatternMatcher;
+import static org.ki.util.StringUtils.split;
+import org.ki.web.DefaultWebSecurityManager;
+import org.ki.web.WebUtils;
+import org.ki.web.filter.PathConfigProcessor;
+import org.ki.web.filter.authc.AnonymousFilter;
+import org.ki.web.filter.authc.BasicHttpAuthenticationFilter;
+import org.ki.web.filter.authc.FormAuthenticationFilter;
+import org.ki.web.filter.authc.UserFilter;
+import org.ki.web.filter.authz.PermissionsAuthorizationFilter;
+import org.ki.web.filter.authz.RolesAuthorizationFilter;
+import org.ki.web.servlet.AdviceFilter;
+import org.ki.web.servlet.ProxiedFilterChain;
 
 import javax.servlet.*;
 import java.util.*;
@@ -71,7 +71,7 @@
     /**
      * Returns the <code>PatternMatcher</code> used when determining if an incoming request's path
      * matches a configured filter chain path in the <code>[urls]</code> section.  Unless overridden, the
-     * default implementation is an {@link org.jsecurity.util.AntPathMatcher AntPathMatcher}.
+     * default implementation is an {@link org.ki.util.AntPathMatcher AntPathMatcher}.
      *
      * @return the <code>PatternMatcher</code> used when determining if an incoming request's path
      *         matches a configured filter chain path in the <code>[urls]</code> section.
@@ -84,7 +84,7 @@
     /**
      * Sets the <code>PatternMatcher</code> used when determining if an incoming request's path
      * matches a configured filter chain path in the <code>[urls]</code> section.  Unless overridden, the
-     * default implementation is an {@link org.jsecurity.util.AntPathMatcher AntPathMatcher}.
+     * default implementation is an {@link org.ki.util.AntPathMatcher AntPathMatcher}.
      *
      * @param pathMatcher the <code>PatternMatcher</code> used when determining if an incoming request's path
      *                    matches a configured filter chain path in the <code>[urls]</code> section.
@@ -165,7 +165,7 @@
      * calls this method.
      * <p/>
      * The default implementation merely returns
-     * <code>new {@link org.jsecurity.web.servlet.ProxiedFilterChain FilterChainWrapper(filters, originalChain)}</code>,
+     * <code>new {@link org.ki.web.servlet.ProxiedFilterChain FilterChainWrapper(filters, originalChain)}</code>,
      * and can be overridden by subclasses for custom creation.
      *
      * @param filters       the configured filter chain for the incoming request application path
@@ -182,7 +182,7 @@
      * <code>false</code> otherwise.
      * <p/>
      * Simply delegates to
-     * <b><code>{@link #getPathMatcher() getPathMatcher()}.{@link org.jsecurity.util.PatternMatcher#matches(String, String) matches(pattern,path)}</code></b>,
+     * <b><code>{@link #getPathMatcher() getPathMatcher()}.{@link org.ki.util.PatternMatcher#matches(String, String) matches(pattern,path)}</code></b>,
      * but can be overridden by subclasses for custom matching behavior.
      *
      * @param pattern the pattern to match against
@@ -212,7 +212,7 @@
      * the JSecurity environment for the web application.
      * <p/>
      * The default implementation simply returns
-     * <code>new {@link org.jsecurity.web.DefaultWebSecurityManager DefaultWebSecurityManager()};</code>
+     * <code>new {@link org.ki.web.DefaultWebSecurityManager DefaultWebSecurityManager()};</code>
      *
      * @return a new, uninitialized <code>SecurityManager</code> instance that will be used to build up
      *         the JSecurity environment for the web application.
diff --git a/web/src/org/jsecurity/web/config/WebConfiguration.java b/web/src/org/ki/web/config/WebConfiguration.java
similarity index 96%
rename from web/src/org/jsecurity/web/config/WebConfiguration.java
rename to web/src/org/ki/web/config/WebConfiguration.java
index b894c6b..b5ac438 100644
--- a/web/src/org/jsecurity/web/config/WebConfiguration.java
+++ b/web/src/org/ki/web/config/WebConfiguration.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.config;
+package org.ki.web.config;
 
-import org.jsecurity.config.Configuration;
+import org.ki.config.Configuration;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
diff --git a/web/src/org/jsecurity/web/config/package-info.java b/web/src/org/ki/web/config/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/config/package-info.java
rename to web/src/org/ki/web/config/package-info.java
index 32791ab..b776e02 100644
--- a/web/src/org/jsecurity/web/config/package-info.java
+++ b/web/src/org/ki/web/config/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Web-specific implementation extensions to the <code>org.jsecurity.config</code> components.

  */

-package org.jsecurity.web.config;
\ No newline at end of file
+package org.ki.web.config;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/filter/AccessControlFilter.java b/web/src/org/ki/web/filter/AccessControlFilter.java
similarity index 97%
rename from web/src/org/jsecurity/web/filter/AccessControlFilter.java
rename to web/src/org/ki/web/filter/AccessControlFilter.java
index 225ce1d..4048aaa 100644
--- a/web/src/org/jsecurity/web/filter/AccessControlFilter.java
+++ b/web/src/org/ki/web/filter/AccessControlFilter.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter;
+package org.ki.web.filter;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.web.WebUtils;
+import org.ki.SecurityUtils;
+import org.ki.subject.Subject;
+import org.ki.web.WebUtils;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -89,7 +89,7 @@
      * Convenience method that acquires the Subject associated with the request.
      * <p/>
      * The default implementation simply returns
-     * {@link org.jsecurity.SecurityUtils#getSubject() SecurityUtils.getSubject()}.
+     * {@link org.ki.SecurityUtils#getSubject() SecurityUtils.getSubject()}.
      *
      * @param request  the incoming <code>ServletRequest</code>
      * @param response the outgoing <code>ServletResponse</code>
diff --git a/web/src/org/jsecurity/web/filter/PathConfigProcessor.java b/web/src/org/ki/web/filter/PathConfigProcessor.java
similarity index 96%
rename from web/src/org/jsecurity/web/filter/PathConfigProcessor.java
rename to web/src/org/ki/web/filter/PathConfigProcessor.java
index 5c84b2f..c3f4478 100644
--- a/web/src/org/jsecurity/web/filter/PathConfigProcessor.java
+++ b/web/src/org/ki/web/filter/PathConfigProcessor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter;
+package org.ki.web.filter;
 
 import javax.servlet.Filter;
 
diff --git a/web/src/org/jsecurity/web/filter/PathMatchingFilter.java b/web/src/org/ki/web/filter/PathMatchingFilter.java
similarity index 96%
rename from web/src/org/jsecurity/web/filter/PathMatchingFilter.java
rename to web/src/org/ki/web/filter/PathMatchingFilter.java
index 32ef50a..ba0acf2 100644
--- a/web/src/org/jsecurity/web/filter/PathMatchingFilter.java
+++ b/web/src/org/ki/web/filter/PathMatchingFilter.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter;
+package org.ki.web.filter;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.util.AntPathMatcher;
-import org.jsecurity.util.PatternMatcher;
-import static org.jsecurity.util.StringUtils.split;
-import org.jsecurity.web.WebUtils;
-import org.jsecurity.web.servlet.AdviceFilter;
+import org.ki.util.AntPathMatcher;
+import org.ki.util.PatternMatcher;
+import static org.ki.util.StringUtils.split;
+import org.ki.web.WebUtils;
+import org.ki.web.servlet.AdviceFilter;
 
 import javax.servlet.Filter;
 import javax.servlet.ServletRequest;
diff --git a/web/src/org/jsecurity/web/filter/authc/AnonymousFilter.java b/web/src/org/ki/web/filter/authc/AnonymousFilter.java
similarity index 96%
rename from web/src/org/jsecurity/web/filter/authc/AnonymousFilter.java
rename to web/src/org/ki/web/filter/authc/AnonymousFilter.java
index 56c2913..3fefa6e 100644
--- a/web/src/org/jsecurity/web/filter/authc/AnonymousFilter.java
+++ b/web/src/org/ki/web/filter/authc/AnonymousFilter.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authc;
+package org.ki.web.filter.authc;
 
-import org.jsecurity.web.filter.PathMatchingFilter;
+import org.ki.web.filter.PathMatchingFilter;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/filter/authc/AuthenticatingFilter.java b/web/src/org/ki/web/filter/authc/AuthenticatingFilter.java
similarity index 94%
rename from web/src/org/jsecurity/web/filter/authc/AuthenticatingFilter.java
rename to web/src/org/ki/web/filter/authc/AuthenticatingFilter.java
index c247c2c..1cca197 100644
--- a/web/src/org/jsecurity/web/filter/authc/AuthenticatingFilter.java
+++ b/web/src/org/ki/web/filter/authc/AuthenticatingFilter.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.web.filter.authc;

+package org.ki.web.filter.authc;

 

-import org.jsecurity.authc.AuthenticationException;

-import org.jsecurity.authc.AuthenticationToken;

-import org.jsecurity.authc.UsernamePasswordToken;

-import org.jsecurity.subject.Subject;

-import org.jsecurity.web.WebUtils;

+import org.ki.authc.AuthenticationException;

+import org.ki.authc.AuthenticationToken;

+import org.ki.authc.UsernamePasswordToken;

+import org.ki.subject.Subject;

+import org.ki.web.WebUtils;

 

 import javax.servlet.ServletRequest;

 import javax.servlet.ServletResponse;

diff --git a/web/src/org/jsecurity/web/filter/authc/AuthenticationFilter.java b/web/src/org/ki/web/filter/authc/AuthenticationFilter.java
similarity index 92%
rename from web/src/org/jsecurity/web/filter/authc/AuthenticationFilter.java
rename to web/src/org/ki/web/filter/authc/AuthenticationFilter.java
index f61b08d..6d15a67 100644
--- a/web/src/org/jsecurity/web/filter/authc/AuthenticationFilter.java
+++ b/web/src/org/ki/web/filter/authc/AuthenticationFilter.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authc;
+package org.ki.web.filter.authc;
 
-import org.jsecurity.subject.Subject;
-import org.jsecurity.web.SavedRequest;
-import org.jsecurity.web.WebUtils;
-import org.jsecurity.web.filter.AccessControlFilter;
+import org.ki.subject.Subject;
+import org.ki.web.SavedRequest;
+import org.ki.web.WebUtils;
+import org.ki.web.filter.AccessControlFilter;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -65,7 +65,7 @@
      * <p/>
      * The default implementation {@link #getSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse) acquires}
      * the currently executing Subject and then returns
-     * {@link org.jsecurity.subject.Subject#isAuthenticated() subject.isAuthenticated()};
+     * {@link org.ki.subject.Subject#isAuthenticated() subject.isAuthenticated()};
      *
      * @return true if the subject is authenticated; false if the subject is unauthenticated
      */
diff --git a/web/src/org/jsecurity/web/filter/authc/BasicHttpAuthenticationFilter.java b/web/src/org/ki/web/filter/authc/BasicHttpAuthenticationFilter.java
similarity index 97%
rename from web/src/org/jsecurity/web/filter/authc/BasicHttpAuthenticationFilter.java
rename to web/src/org/ki/web/filter/authc/BasicHttpAuthenticationFilter.java
index 629cb49..42a9a27 100644
--- a/web/src/org/jsecurity/web/filter/authc/BasicHttpAuthenticationFilter.java
+++ b/web/src/org/ki/web/filter/authc/BasicHttpAuthenticationFilter.java
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authc;
+package org.ki.web.filter.authc;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.codec.Base64;
-import org.jsecurity.web.WebUtils;
+import org.ki.authc.AuthenticationToken;
+import org.ki.codec.Base64;
+import org.ki.web.WebUtils;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -30,7 +30,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * Requires the requesting user to be {@link org.jsecurity.subject.Subject#isAuthenticated() authenticated} for the
+ * Requires the requesting user to be {@link org.ki.subject.Subject#isAuthenticated() authenticated} for the
  * request to continue, and if they're not, forces the user to login via the HTTP Basic protocol-specific challenge.
  * Upon successful login, they're allowed to continue on to the requested resource/url.
  *
@@ -53,7 +53,7 @@
  *
  * <p>The {@link #onAccessDenied(javax.servlet.ServletRequest, javax.servlet.ServletResponse)} method will
  * only be called if the subject making the request is not
- * {@link org.jsecurity.subject.Subject#isAuthenticated() authenticated} </p>
+ * {@link org.ki.subject.Subject#isAuthenticated() authenticated} </p>
  *
  * @author Allan Ditzel
  * @author Les Hazlewood
diff --git a/web/src/org/jsecurity/web/filter/authc/FormAuthenticationFilter.java b/web/src/org/ki/web/filter/authc/FormAuthenticationFilter.java
similarity index 93%
rename from web/src/org/jsecurity/web/filter/authc/FormAuthenticationFilter.java
rename to web/src/org/ki/web/filter/authc/FormAuthenticationFilter.java
index 33c5554..a14ce28 100644
--- a/web/src/org/jsecurity/web/filter/authc/FormAuthenticationFilter.java
+++ b/web/src/org/ki/web/filter/authc/FormAuthenticationFilter.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authc;
+package org.ki.web.filter.authc;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authc.AuthenticationException;
-import org.jsecurity.authc.AuthenticationToken;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.subject.Subject;
-import org.jsecurity.web.WebUtils;
+import org.ki.authc.AuthenticationException;
+import org.ki.authc.AuthenticationToken;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.subject.Subject;
+import org.ki.web.WebUtils;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -37,7 +37,7 @@
  * <p>This filter constructs a {@link UsernamePasswordToken UsernamePasswordToken} with the values found in
  * {@link #setUsernameParam(String) username}, {@link #setPasswordParam(String) password},
  * and {@link #setRememberMeParam(String) rememberMe} request parameters.  It then calls
- * {@link org.jsecurity.subject.Subject#login(org.jsecurity.authc.AuthenticationToken) Subject.login(usernamePasswordToken)},
+ * {@link org.ki.subject.Subject#login(org.ki.authc.AuthenticationToken) Subject.login(usernamePasswordToken)},
  * effectively automatically performing a login attempt.  Note that the login attempt will only occur when the
  * {@link #isLoginSubmission(javax.servlet.ServletRequest, javax.servlet.ServletResponse) isLoginSubmission(request,response)}
  * is <code>true</code>, which by default occurs when the request is for the {@link #setLoginUrl(String) loginUrl} and
@@ -49,12 +49,12 @@
  * (e.g. no account, incorrect password, etc).
  *
  * <p>If you would prefer to handle the authentication validation and login in your own code, consider using the
- * {@link org.jsecurity.web.filter.authc.PassThruAuthenticationFilter} instead, which allows requests to the
+ * {@link org.ki.web.filter.authc.PassThruAuthenticationFilter} instead, which allows requests to the
  * {@link #loginUrl} to pass through to your application's code directly.
  *
  * @author Les Hazlewood
  * @author Jeremy Haile
- * @see org.jsecurity.web.filter.authc.PassThruAuthenticationFilter
+ * @see org.ki.web.filter.authc.PassThruAuthenticationFilter
  * @since 0.9
  */
 public class FormAuthenticationFilter extends AuthenticatingFilter {
diff --git a/web/src/org/jsecurity/web/filter/authc/PassThruAuthenticationFilter.java b/web/src/org/ki/web/filter/authc/PassThruAuthenticationFilter.java
similarity index 89%
rename from web/src/org/jsecurity/web/filter/authc/PassThruAuthenticationFilter.java
rename to web/src/org/ki/web/filter/authc/PassThruAuthenticationFilter.java
index f9ff960..015cf2d 100644
--- a/web/src/org/jsecurity/web/filter/authc/PassThruAuthenticationFilter.java
+++ b/web/src/org/ki/web/filter/authc/PassThruAuthenticationFilter.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authc;
+package org.ki.web.filter.authc;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -30,12 +30,12 @@
  * on a login submission (by default an HTTP POST to the login URL), the <code>FormAuthenticationFilter</code> filter
  * attempts to automatically authenticate the user by passing the <code>username</code> and <code>password</code>
  * request parameter values to
- * {@link org.jsecurity.subject.Subject#login(org.jsecurity.authc.AuthenticationToken) Subject.login(usernamePasswordToken)}
+ * {@link org.ki.subject.Subject#login(org.ki.authc.AuthenticationToken) Subject.login(usernamePasswordToken)}
  * directly.
  * <p/>
  * Conversely, this controller always passes all requests to the {@link #setLoginUrl loginUrl} through, both GETs and
  * POSTs.  This is useful in cases where the developer wants to write their own login behavior, which should include a
- * call to {@link org.jsecurity.subject.Subject#login(org.jsecurity.authc.AuthenticationToken) Subject.login(AuthenticationToken)}
+ * call to {@link org.ki.subject.Subject#login(org.ki.authc.AuthenticationToken) Subject.login(AuthenticationToken)}
  * at some point.  For example,  if the developer has their own custom MVC login controller or validator,
  * this <code>PassThruAuthenticationFilter</code> may be appropriate.
  *
diff --git a/web/src/org/jsecurity/web/filter/authc/UserFilter.java b/web/src/org/ki/web/filter/authc/UserFilter.java
similarity index 95%
rename from web/src/org/jsecurity/web/filter/authc/UserFilter.java
rename to web/src/org/ki/web/filter/authc/UserFilter.java
index 44b8470..2214af2 100644
--- a/web/src/org/jsecurity/web/filter/authc/UserFilter.java
+++ b/web/src/org/ki/web/filter/authc/UserFilter.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authc;
+package org.ki.web.filter.authc;
 
-import org.jsecurity.subject.Subject;
-import org.jsecurity.web.filter.AccessControlFilter;
+import org.ki.subject.Subject;
+import org.ki.web.filter.AccessControlFilter;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/filter/authc/package-info.java b/web/src/org/ki/web/filter/authc/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/filter/authc/package-info.java
rename to web/src/org/ki/web/filter/authc/package-info.java
index 987c4c5..26fed6f 100644
--- a/web/src/org/jsecurity/web/filter/authc/package-info.java
+++ b/web/src/org/ki/web/filter/authc/package-info.java
@@ -20,4 +20,4 @@
  * Servlet {@link javax.servlet.Filter Filter} implementations specific to controlling access based on a

  * subject's authentication status, or those that can execute authentications (log-ins) directly.

  */

-package org.jsecurity.web.filter.authc;
\ No newline at end of file
+package org.ki.web.filter.authc;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/filter/authz/AuthorizationFilter.java b/web/src/org/ki/web/filter/authz/AuthorizationFilter.java
similarity index 92%
rename from web/src/org/jsecurity/web/filter/authz/AuthorizationFilter.java
rename to web/src/org/ki/web/filter/authz/AuthorizationFilter.java
index 8b8f20c..9cda91d 100644
--- a/web/src/org/jsecurity/web/filter/authz/AuthorizationFilter.java
+++ b/web/src/org/ki/web/filter/authz/AuthorizationFilter.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authz;
+package org.ki.web.filter.authz;
 
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.StringUtils;
-import org.jsecurity.web.WebUtils;
-import org.jsecurity.web.filter.AccessControlFilter;
+import org.ki.subject.Subject;
+import org.ki.util.StringUtils;
+import org.ki.web.WebUtils;
+import org.ki.web.filter.AccessControlFilter;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/filter/authz/PermissionsAuthorizationFilter.java b/web/src/org/ki/web/filter/authz/PermissionsAuthorizationFilter.java
similarity index 95%
rename from web/src/org/jsecurity/web/filter/authz/PermissionsAuthorizationFilter.java
rename to web/src/org/ki/web/filter/authz/PermissionsAuthorizationFilter.java
index cb79f7a..ca93938 100644
--- a/web/src/org/jsecurity/web/filter/authz/PermissionsAuthorizationFilter.java
+++ b/web/src/org/ki/web/filter/authz/PermissionsAuthorizationFilter.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authz;
+package org.ki.web.filter.authz;
 
-import org.jsecurity.subject.Subject;
+import org.ki.subject.Subject;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/filter/authz/RolesAuthorizationFilter.java b/web/src/org/ki/web/filter/authz/RolesAuthorizationFilter.java
similarity index 93%
rename from web/src/org/jsecurity/web/filter/authz/RolesAuthorizationFilter.java
rename to web/src/org/ki/web/filter/authz/RolesAuthorizationFilter.java
index 2a584c1..2f2b0b5 100644
--- a/web/src/org/jsecurity/web/filter/authz/RolesAuthorizationFilter.java
+++ b/web/src/org/ki/web/filter/authz/RolesAuthorizationFilter.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.filter.authz;
+package org.ki.web.filter.authz;
 
-import org.jsecurity.subject.Subject;
-import org.jsecurity.util.CollectionUtils;
+import org.ki.subject.Subject;
+import org.ki.util.CollectionUtils;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/filter/authz/package-info.java b/web/src/org/ki/web/filter/authz/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/filter/authz/package-info.java
rename to web/src/org/ki/web/filter/authz/package-info.java
index a0aecb3..737b16a 100644
--- a/web/src/org/jsecurity/web/filter/authz/package-info.java
+++ b/web/src/org/ki/web/filter/authz/package-info.java
@@ -20,4 +20,4 @@
  * Servlet {@link javax.servlet.Filter Filter} implementations that perform authorization (access control)

  * checks based on the Subject's abilities (for example, role or permission checks).

  */

-package org.jsecurity.web.filter.authz;
\ No newline at end of file
+package org.ki.web.filter.authz;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/filter/package-info.java b/web/src/org/ki/web/filter/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/filter/package-info.java
rename to web/src/org/ki/web/filter/package-info.java
index 00a652c..c99ed01 100644
--- a/web/src/org/jsecurity/web/filter/package-info.java
+++ b/web/src/org/ki/web/filter/package-info.java
@@ -20,4 +20,4 @@
  * Base package supporting all Servlet {@link javax.servlet.Filter Filter} implementations used to control

  * access to web pages and URL resources.

  */

-package org.jsecurity.web.filter;
\ No newline at end of file
+package org.ki.web.filter;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/package-info.java b/web/src/org/ki/web/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/package-info.java
rename to web/src/org/ki/web/package-info.java
index b10a89b..6d1f56b 100644
--- a/web/src/org/jsecurity/web/package-info.java
+++ b/web/src/org/ki/web/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Framework support for any web-enabled application.

  */

-package org.jsecurity.web;
\ No newline at end of file
+package org.ki.web;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/servlet/AdviceFilter.java b/web/src/org/ki/web/servlet/AdviceFilter.java
similarity index 99%
rename from web/src/org/jsecurity/web/servlet/AdviceFilter.java
rename to web/src/org/ki/web/servlet/AdviceFilter.java
index 4fafc86..b971df5 100644
--- a/web/src/org/jsecurity/web/servlet/AdviceFilter.java
+++ b/web/src/org/ki/web/servlet/AdviceFilter.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.web.servlet;

+package org.ki.web.servlet;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/web/src/org/jsecurity/web/servlet/JSecurityFilter.java b/web/src/org/ki/web/servlet/JSecurityFilter.java
similarity index 87%
rename from web/src/org/jsecurity/web/servlet/JSecurityFilter.java
rename to web/src/org/ki/web/servlet/JSecurityFilter.java
index d08df1d..259b538 100644
--- a/web/src/org/jsecurity/web/servlet/JSecurityFilter.java
+++ b/web/src/org/ki/web/servlet/JSecurityFilter.java
@@ -16,22 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.config.Configuration;
-import org.jsecurity.config.ConfigurationException;
-import org.jsecurity.mgt.SecurityManager;
-import org.jsecurity.util.ClassUtils;
-import org.jsecurity.util.LifecycleUtils;
-import static org.jsecurity.util.StringUtils.clean;
-import org.jsecurity.util.ThreadContext;
-import org.jsecurity.web.DefaultWebSecurityManager;
-import org.jsecurity.web.WebUtils;
-import org.jsecurity.web.config.IniWebConfiguration;
-import org.jsecurity.web.config.WebConfiguration;
+import org.ki.config.Configuration;
+import org.ki.config.ConfigurationException;
+import org.ki.mgt.SecurityManager;
+import org.ki.util.ClassUtils;
+import org.ki.util.LifecycleUtils;
+import static org.ki.util.StringUtils.clean;
+import org.ki.util.ThreadContext;
+import org.ki.web.DefaultWebSecurityManager;
+import org.ki.web.WebUtils;
+import org.ki.web.config.IniWebConfiguration;
+import org.ki.web.config.WebConfiguration;
 
 import javax.servlet.*;
 import javax.servlet.http.HttpServletRequest;
@@ -67,8 +67,8 @@
  * # (and client-agnostic) session management.  You can enable this by uncommenting the following line
  * # and changing 'http' to 'jsecurity'
  * #
- * #securityManager = {@link org.jsecurity.web.DefaultWebSecurityManager org.jsecurity.web.DefaultWebSecurityManager}
- * #securityManager.{@link org.jsecurity.web.DefaultWebSecurityManager#setSessionMode(String) sessionMode} = http
+ * #securityManager = {@link org.ki.web.DefaultWebSecurityManager org.jsecurity.web.DefaultWebSecurityManager}
+ * #securityManager.{@link org.ki.web.DefaultWebSecurityManager#setSessionMode(String) sessionMode} = http
  * <p/>
  * [filters]
  * # This section defines the 'pool' of all Filters available to the url path definitions in the [urls] section below.
@@ -82,36 +82,36 @@
  * # affect the user experience.
  * #
  * # Form-based Authentication filter:
- * #<a name="authc"></a>authc = {@link org.jsecurity.web.filter.authc.FormAuthenticationFilter}
- * #authc.{@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#setLoginUrl(String) loginUrl} = /login.jsp
- * #authc.{@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#setUsernameParam(String) usernameParam} = username
- * #authc.{@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#setPasswordParam(String) passwordParam} = password
- * #authc.{@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#setRememberMeParam(String) rememberMeParam} = rememberMe
- * #authc.{@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#setSuccessUrl(String) successUrl}  = /login.jsp
- * #authc.{@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#setFailureKeyAttribute(String) failureKeyAttribute} = {@link org.jsecurity.web.filter.authc.FormAuthenticationFilter#DEFAULT_ERROR_KEY_ATTRIBUTE_NAME}
+ * #<a name="authc"></a>authc = {@link org.ki.web.filter.authc.FormAuthenticationFilter}
+ * #authc.{@link org.ki.web.filter.authc.FormAuthenticationFilter#setLoginUrl(String) loginUrl} = /login.jsp
+ * #authc.{@link org.ki.web.filter.authc.FormAuthenticationFilter#setUsernameParam(String) usernameParam} = username
+ * #authc.{@link org.ki.web.filter.authc.FormAuthenticationFilter#setPasswordParam(String) passwordParam} = password
+ * #authc.{@link org.ki.web.filter.authc.FormAuthenticationFilter#setRememberMeParam(String) rememberMeParam} = rememberMe
+ * #authc.{@link org.ki.web.filter.authc.FormAuthenticationFilter#setSuccessUrl(String) successUrl}  = /login.jsp
+ * #authc.{@link org.ki.web.filter.authc.FormAuthenticationFilter#setFailureKeyAttribute(String) failureKeyAttribute} = {@link org.ki.web.filter.authc.FormAuthenticationFilter#DEFAULT_ERROR_KEY_ATTRIBUTE_NAME}
  * #
  * # Http BASIC Authentication filter:
- * #<a name="authcBasic"></a>authcBasic = {@link org.jsecurity.web.filter.authc.BasicHttpAuthenticationFilter}
- * #authcBasic.{@link org.jsecurity.web.filter.authc.BasicHttpAuthenticationFilter#setApplicationName(String) applicationName} = application
+ * #<a name="authcBasic"></a>authcBasic = {@link org.ki.web.filter.authc.BasicHttpAuthenticationFilter}
+ * #authcBasic.{@link org.ki.web.filter.authc.BasicHttpAuthenticationFilter#setApplicationName(String) applicationName} = application
  * #
  * # Roles filter: requires the requesting user to have one or more roles for the request to continue.
  * # If they do not have the specified roles, they are redirected to the specified URL.
- * #<a name="roles"></a>roles = {@link org.jsecurity.web.filter.authz.RolesAuthorizationFilter}
- * #roles.{@link org.jsecurity.web.filter.authz.RolesAuthorizationFilter#setUnauthorizedUrl(String) unauthorizedUrl} =
+ * #<a name="roles"></a>roles = {@link org.ki.web.filter.authz.RolesAuthorizationFilter}
+ * #roles.{@link org.ki.web.filter.authz.RolesAuthorizationFilter#setUnauthorizedUrl(String) unauthorizedUrl} =
  * # (note the above url is null by default, which will cause an HTTP 403 (Access Denied) response instead
  * # of redirecting to a page.  If you want to show a 'nice page' instead, you should specify that url.
  * #
  * # Permissions filter: requires the requesting user to have one or more permissions for the request to
  * # continue, and if they do not, redirects them to the specified URL.
- * #<a name="perms"></a>perms = {@link org.jsecurity.web.filter.authz.PermissionsAuthorizationFilter}
- * #perms.{@link org.jsecurity.web.filter.authz.PermissionsAuthorizationFilter#setUnauthorizedUrl(String) unauthorizedUrl} =
+ * #<a name="perms"></a>perms = {@link org.ki.web.filter.authz.PermissionsAuthorizationFilter}
+ * #perms.{@link org.ki.web.filter.authz.PermissionsAuthorizationFilter#setUnauthorizedUrl(String) unauthorizedUrl} =
  * # (note the above url is null by default, which will cause an HTTP 403 (Access Denied) response instead
  * # of redirecting to a page.  If you want to show a 'nice page' instead, you should specify that url.  Many
  * # applications like to use the same url specified in roles.unauthorizedUrl above.
  * #
  * #
  * # Define your own filters here.  To properly handle url path matching (see the [urls] section below), your
- * # filter should extend the {@link org.jsecurity.web.filter.PathMatchingFilter PathMatchingFilter} abstract class.
+ * # filter should extend the {@link org.ki.web.filter.PathMatchingFilter PathMatchingFilter} abstract class.
  * <p/>
  * [urls]
  * # This section defines url path mappings.  Each mapping entry must be on a single line and conform to the
diff --git a/web/src/org/jsecurity/web/servlet/JSecurityHttpServletRequest.java b/web/src/org/ki/web/servlet/JSecurityHttpServletRequest.java
similarity index 97%
rename from web/src/org/jsecurity/web/servlet/JSecurityHttpServletRequest.java
rename to web/src/org/ki/web/servlet/JSecurityHttpServletRequest.java
index 1684e3b..be3be7c 100644
--- a/web/src/org/jsecurity/web/servlet/JSecurityHttpServletRequest.java
+++ b/web/src/org/ki/web/servlet/JSecurityHttpServletRequest.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.session.Session;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.session.Session;
+import org.ki.subject.Subject;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
diff --git a/web/src/org/jsecurity/web/servlet/JSecurityHttpServletResponse.java b/web/src/org/ki/web/servlet/JSecurityHttpServletResponse.java
similarity index 99%
rename from web/src/org/jsecurity/web/servlet/JSecurityHttpServletResponse.java
rename to web/src/org/ki/web/servlet/JSecurityHttpServletResponse.java
index 0995e19..0e5767b 100644
--- a/web/src/org/jsecurity/web/servlet/JSecurityHttpServletResponse.java
+++ b/web/src/org/ki/web/servlet/JSecurityHttpServletResponse.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
diff --git a/web/src/org/jsecurity/web/servlet/JSecurityHttpSession.java b/web/src/org/ki/web/servlet/JSecurityHttpSession.java
similarity index 97%
rename from web/src/org/jsecurity/web/servlet/JSecurityHttpSession.java
rename to web/src/org/ki/web/servlet/JSecurityHttpSession.java
index 61e3ba5..ba0da79 100644
--- a/web/src/org/jsecurity/web/servlet/JSecurityHttpSession.java
+++ b/web/src/org/ki/web/servlet/JSecurityHttpSession.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.web.session.WebSession;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.Session;
+import org.ki.web.session.WebSession;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.*;
diff --git a/web/src/org/jsecurity/web/servlet/OncePerRequestFilter.java b/web/src/org/ki/web/servlet/OncePerRequestFilter.java
similarity index 98%
rename from web/src/org/jsecurity/web/servlet/OncePerRequestFilter.java
rename to web/src/org/ki/web/servlet/OncePerRequestFilter.java
index a7d8606..1d744ac 100644
--- a/web/src/org/jsecurity/web/servlet/OncePerRequestFilter.java
+++ b/web/src/org/ki/web/servlet/OncePerRequestFilter.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.util.Nameable;
+import org.ki.util.Nameable;
 
 import javax.servlet.*;
 import java.io.IOException;
diff --git a/web/src/org/jsecurity/web/servlet/ProxiedFilterChain.java b/web/src/org/ki/web/servlet/ProxiedFilterChain.java
similarity index 98%
rename from web/src/org/jsecurity/web/servlet/ProxiedFilterChain.java
rename to web/src/org/ki/web/servlet/ProxiedFilterChain.java
index e6f8306..15387cd 100644
--- a/web/src/org/jsecurity/web/servlet/ProxiedFilterChain.java
+++ b/web/src/org/ki/web/servlet/ProxiedFilterChain.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/web/src/org/jsecurity/web/servlet/ServletContextSupport.java b/web/src/org/ki/web/servlet/ServletContextSupport.java
similarity index 98%
rename from web/src/org/jsecurity/web/servlet/ServletContextSupport.java
rename to web/src/org/ki/web/servlet/ServletContextSupport.java
index 9d2f76b..eb01203 100644
--- a/web/src/org/jsecurity/web/servlet/ServletContextSupport.java
+++ b/web/src/org/ki/web/servlet/ServletContextSupport.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
 import javax.servlet.ServletContext;
 
diff --git a/web/src/org/jsecurity/web/servlet/package-info.java b/web/src/org/ki/web/servlet/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/servlet/package-info.java
rename to web/src/org/ki/web/servlet/package-info.java
index 60dd3f3..0a8e3bb 100644
--- a/web/src/org/jsecurity/web/servlet/package-info.java
+++ b/web/src/org/ki/web/servlet/package-info.java
@@ -20,4 +20,4 @@
  * Support implementations that depend heavily on the <tt>javax.servlet.*</tt> API and are meant to be

  * directly used in web.xml (Servlet Filters, Servlet Context Listeners, Servlets, etc)

  */

-package org.jsecurity.web.servlet;
\ No newline at end of file
+package org.ki.web.servlet;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/session/DefaultWebSessionManager.java b/web/src/org/ki/web/session/DefaultWebSessionManager.java
similarity index 94%
rename from web/src/org/jsecurity/web/session/DefaultWebSessionManager.java
rename to web/src/org/ki/web/session/DefaultWebSessionManager.java
index 9ad6104..d804e45 100644
--- a/web/src/org/jsecurity/web/session/DefaultWebSessionManager.java
+++ b/web/src/org/ki/web/session/DefaultWebSessionManager.java
@@ -16,21 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.session;
+package org.ki.web.session;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.HostUnauthorizedException;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.DefaultSessionManager;
-import org.jsecurity.web.WebUtils;
-import org.jsecurity.web.attr.CookieAttribute;
-import org.jsecurity.web.attr.RequestParamAttribute;
-import org.jsecurity.web.attr.WebAttribute;
-import org.jsecurity.web.servlet.JSecurityHttpServletRequest;
-import org.jsecurity.web.servlet.JSecurityHttpSession;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.HostUnauthorizedException;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.Session;
+import org.ki.session.mgt.DefaultSessionManager;
+import org.ki.web.WebUtils;
+import org.ki.web.attr.CookieAttribute;
+import org.ki.web.attr.RequestParamAttribute;
+import org.ki.web.attr.WebAttribute;
+import org.ki.web.servlet.JSecurityHttpServletRequest;
+import org.ki.web.servlet.JSecurityHttpSession;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -247,9 +247,9 @@
      * @param request  incoming servlet request
      * @param response outgoing servlet response
      * @return the Session associated with the incoming request or <tt>null</tt> if one does not exist.
-     * @throws org.jsecurity.session.InvalidSessionException
+     * @throws org.ki.session.InvalidSessionException
      *          if the associated Session has expired prior to invoking this method.
-     * @throws org.jsecurity.authz.AuthorizationException
+     * @throws org.ki.authz.AuthorizationException
      *          if the caller is not authorized to access the session associated with the request.
      */
     public final Session getSession(ServletRequest request, ServletResponse response)
diff --git a/web/src/org/jsecurity/web/session/ServletContainerSessionManager.java b/web/src/org/ki/web/session/ServletContainerSessionManager.java
similarity index 92%
rename from web/src/org/jsecurity/web/session/ServletContainerSessionManager.java
rename to web/src/org/ki/web/session/ServletContainerSessionManager.java
index a7f4262..94ca899 100644
--- a/web/src/org/jsecurity/web/session/ServletContainerSessionManager.java
+++ b/web/src/org/ki/web/session/ServletContainerSessionManager.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.session;
+package org.ki.web.session;
 
-import org.jsecurity.authz.AuthorizationException;
-import org.jsecurity.authz.HostUnauthorizedException;
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.AbstractSessionManager;
-import org.jsecurity.web.WebUtils;
+import org.ki.authz.AuthorizationException;
+import org.ki.authz.HostUnauthorizedException;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.Session;
+import org.ki.session.mgt.AbstractSessionManager;
+import org.ki.web.WebUtils;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/session/WebSession.java b/web/src/org/ki/web/session/WebSession.java
similarity index 96%
rename from web/src/org/jsecurity/web/session/WebSession.java
rename to web/src/org/ki/web/session/WebSession.java
index 4b4df61..f797f12 100644
--- a/web/src/org/jsecurity/web/session/WebSession.java
+++ b/web/src/org/ki/web/session/WebSession.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.session;
+package org.ki.web.session;
 
-import org.jsecurity.session.InvalidSessionException;
-import org.jsecurity.session.Session;
-import org.jsecurity.web.servlet.JSecurityHttpSession;
+import org.ki.session.InvalidSessionException;
+import org.ki.session.Session;
+import org.ki.web.servlet.JSecurityHttpSession;
 
 import javax.servlet.http.HttpSession;
 import java.io.Serializable;
diff --git a/web/src/org/jsecurity/web/session/WebSessionManager.java b/web/src/org/ki/web/session/WebSessionManager.java
similarity index 93%
rename from web/src/org/jsecurity/web/session/WebSessionManager.java
rename to web/src/org/ki/web/session/WebSessionManager.java
index b2f1fa0..480a6ad 100644
--- a/web/src/org/jsecurity/web/session/WebSessionManager.java
+++ b/web/src/org/ki/web/session/WebSessionManager.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.session;
+package org.ki.web.session;
 
-import org.jsecurity.session.Session;
-import org.jsecurity.session.mgt.SessionManager;
+import org.ki.session.Session;
+import org.ki.session.mgt.SessionManager;
 
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
diff --git a/web/src/org/jsecurity/web/session/package-info.java b/web/src/org/ki/web/session/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/session/package-info.java
rename to web/src/org/ki/web/session/package-info.java
index 8f59c05..a7ce707 100644
--- a/web/src/org/jsecurity/web/session/package-info.java
+++ b/web/src/org/ki/web/session/package-info.java
@@ -19,4 +19,4 @@
 /**

  * Components supporting Session management in web-enabled applications.

  */

-package org.jsecurity.web.session;
\ No newline at end of file
+package org.ki.web.session;
\ No newline at end of file
diff --git a/web/src/org/jsecurity/web/tags/AuthenticatedTag.java b/web/src/org/ki/web/tags/AuthenticatedTag.java
similarity index 98%
rename from web/src/org/jsecurity/web/tags/AuthenticatedTag.java
rename to web/src/org/ki/web/tags/AuthenticatedTag.java
index 9e146b7..05c7652 100644
--- a/web/src/org/jsecurity/web/tags/AuthenticatedTag.java
+++ b/web/src/org/ki/web/tags/AuthenticatedTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.web.tags;

+package org.ki.web.tags;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/web/src/org/jsecurity/web/tags/GuestTag.java b/web/src/org/ki/web/tags/GuestTag.java
similarity index 98%
rename from web/src/org/jsecurity/web/tags/GuestTag.java
rename to web/src/org/ki/web/tags/GuestTag.java
index a272a1b..bcf81fe 100644
--- a/web/src/org/jsecurity/web/tags/GuestTag.java
+++ b/web/src/org/ki/web/tags/GuestTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/web/src/org/jsecurity/web/tags/HasAnyRolesTag.java b/web/src/org/ki/web/tags/HasAnyRolesTag.java
similarity index 95%
rename from web/src/org/jsecurity/web/tags/HasAnyRolesTag.java
rename to web/src/org/ki/web/tags/HasAnyRolesTag.java
index 1b54ab2..5d2f16f 100644
--- a/web/src/org/jsecurity/web/tags/HasAnyRolesTag.java
+++ b/web/src/org/ki/web/tags/HasAnyRolesTag.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
-import org.jsecurity.subject.Subject;
+import org.ki.subject.Subject;
 
 /**
  * Displays body content if the current user has any of the roles specified.
diff --git a/web/src/org/jsecurity/web/tags/HasPermissionTag.java b/web/src/org/ki/web/tags/HasPermissionTag.java
similarity index 96%
rename from web/src/org/jsecurity/web/tags/HasPermissionTag.java
rename to web/src/org/ki/web/tags/HasPermissionTag.java
index 4929d33..9e632c0 100644
--- a/web/src/org/jsecurity/web/tags/HasPermissionTag.java
+++ b/web/src/org/ki/web/tags/HasPermissionTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 /**
  * @author Les Hazlewood
diff --git a/web/src/org/jsecurity/web/tags/HasRoleTag.java b/web/src/org/ki/web/tags/HasRoleTag.java
similarity index 96%
rename from web/src/org/jsecurity/web/tags/HasRoleTag.java
rename to web/src/org/ki/web/tags/HasRoleTag.java
index 84a33cb..418e9ac 100644
--- a/web/src/org/jsecurity/web/tags/HasRoleTag.java
+++ b/web/src/org/ki/web/tags/HasRoleTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 /**
  * @author Les Hazlewood
diff --git a/web/src/org/jsecurity/web/tags/LacksPermissionTag.java b/web/src/org/ki/web/tags/LacksPermissionTag.java
similarity index 96%
rename from web/src/org/jsecurity/web/tags/LacksPermissionTag.java
rename to web/src/org/ki/web/tags/LacksPermissionTag.java
index 6456827..6af74d9 100644
--- a/web/src/org/jsecurity/web/tags/LacksPermissionTag.java
+++ b/web/src/org/ki/web/tags/LacksPermissionTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 /**
  * @author Les Hazlewood
diff --git a/web/src/org/jsecurity/web/tags/LacksRoleTag.java b/web/src/org/ki/web/tags/LacksRoleTag.java
similarity index 96%
rename from web/src/org/jsecurity/web/tags/LacksRoleTag.java
rename to web/src/org/ki/web/tags/LacksRoleTag.java
index b267777..2df0d86 100644
--- a/web/src/org/jsecurity/web/tags/LacksRoleTag.java
+++ b/web/src/org/ki/web/tags/LacksRoleTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 /**
  * @author Les Hazlewood
diff --git a/web/src/org/jsecurity/web/tags/NotAuthenticatedTag.java b/web/src/org/ki/web/tags/NotAuthenticatedTag.java
similarity index 98%
rename from web/src/org/jsecurity/web/tags/NotAuthenticatedTag.java
rename to web/src/org/ki/web/tags/NotAuthenticatedTag.java
index fa26519..5bf6a3c 100644
--- a/web/src/org/jsecurity/web/tags/NotAuthenticatedTag.java
+++ b/web/src/org/ki/web/tags/NotAuthenticatedTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.web.tags;

+package org.ki.web.tags;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/web/src/org/jsecurity/web/tags/PermissionTag.java b/web/src/org/ki/web/tags/PermissionTag.java
similarity index 98%
rename from web/src/org/jsecurity/web/tags/PermissionTag.java
rename to web/src/org/ki/web/tags/PermissionTag.java
index b7a8aee..37b62b7 100644
--- a/web/src/org/jsecurity/web/tags/PermissionTag.java
+++ b/web/src/org/ki/web/tags/PermissionTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.TagSupport;
diff --git a/web/src/org/jsecurity/web/tags/PrincipalTag.java b/web/src/org/ki/web/tags/PrincipalTag.java
similarity index 99%
rename from web/src/org/jsecurity/web/tags/PrincipalTag.java
rename to web/src/org/ki/web/tags/PrincipalTag.java
index 416b97a..b14a01d 100644
--- a/web/src/org/jsecurity/web/tags/PrincipalTag.java
+++ b/web/src/org/ki/web/tags/PrincipalTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations

  * under the License.

  */

-package org.jsecurity.web.tags;

+package org.ki.web.tags;

 

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

diff --git a/web/src/org/jsecurity/web/tags/RoleTag.java b/web/src/org/ki/web/tags/RoleTag.java
similarity index 97%
rename from web/src/org/jsecurity/web/tags/RoleTag.java
rename to web/src/org/ki/web/tags/RoleTag.java
index 1b4bbda..af549fd 100644
--- a/web/src/org/jsecurity/web/tags/RoleTag.java
+++ b/web/src/org/ki/web/tags/RoleTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.TagSupport;
diff --git a/web/src/org/jsecurity/web/tags/SecureTag.java b/web/src/org/ki/web/tags/SecureTag.java
similarity index 93%
rename from web/src/org/jsecurity/web/tags/SecureTag.java
rename to web/src/org/ki/web/tags/SecureTag.java
index 2d8d8ba..2e40ad0 100644
--- a/web/src/org/jsecurity/web/tags/SecureTag.java
+++ b/web/src/org/ki/web/tags/SecureTag.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jsecurity.SecurityUtils;
-import org.jsecurity.subject.Subject;
+import org.ki.SecurityUtils;
+import org.ki.subject.Subject;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.TagSupport;
diff --git a/web/src/org/jsecurity/web/tags/UserTag.java b/web/src/org/ki/web/tags/UserTag.java
similarity index 98%
rename from web/src/org/jsecurity/web/tags/UserTag.java
rename to web/src/org/ki/web/tags/UserTag.java
index 428a46e..a30a6d1 100644
--- a/web/src/org/jsecurity/web/tags/UserTag.java
+++ b/web/src/org/ki/web/tags/UserTag.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.tags;
+package org.ki.web.tags;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
diff --git a/web/src/org/jsecurity/web/tags/jsecurity.tld b/web/src/org/ki/web/tags/jsecurity.tld
similarity index 88%
rename from web/src/org/jsecurity/web/tags/jsecurity.tld
rename to web/src/org/ki/web/tags/jsecurity.tld
index 9f539b6..a95ccb7 100644
--- a/web/src/org/jsecurity/web/tags/jsecurity.tld
+++ b/web/src/org/ki/web/tags/jsecurity.tld
@@ -34,7 +34,7 @@
 
   <tag>
     <name>hasPermission</name>
-    <tag-class>org.jsecurity.web.tags.HasPermissionTag</tag-class>
+    <tag-class>org.ki.web.tags.HasPermissionTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current Subject (user)
       'has' (implies) the specified permission (i.e the user has the specified ability).
@@ -48,7 +48,7 @@
 
   <tag>
     <name>lacksPermission</name>
-    <tag-class>org.jsecurity.web.tags.LacksPermissionTag</tag-class>
+    <tag-class>org.ki.web.tags.LacksPermissionTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current Subject (user) does
       NOT have (not imply) the specified permission (i.e. the user lacks the specified ability)
@@ -62,7 +62,7 @@
 
   <tag>
     <name>hasRole</name>
-    <tag-class>org.jsecurity.web.tags.HasRoleTag</tag-class>
+    <tag-class>org.ki.web.tags.HasRoleTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current user has the specified role.</description>
     <attribute>
@@ -75,7 +75,7 @@
 
   <tag>
     <name>hasAnyRoles</name>
-    <tag-class>org.jsecurity.web.tags.HasAnyRolesTag</tag-class>
+    <tag-class>org.ki.web.tags.HasAnyRolesTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current user has one of the specified roles from a
       comma-separated list of role names.
@@ -89,7 +89,7 @@
 
   <tag>
     <name>lacksRole</name>
-    <tag-class>org.jsecurity.web.tags.LacksRoleTag</tag-class>
+    <tag-class>org.ki.web.tags.LacksRoleTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current user does NOT have the specified role
       (i.e. they explicitly lack the specified role)
@@ -103,7 +103,7 @@
 
   <tag>
     <name>authenticated</name>
-    <tag-class>org.jsecurity.web.tags.AuthenticatedTag</tag-class>
+    <tag-class>org.ki.web.tags.AuthenticatedTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current user has successfully authenticated
       _during their current session_. It is more restrictive than the 'user' tag.
@@ -113,7 +113,7 @@
 
   <tag>
     <name>notAuthenticated</name>
-    <tag-class>org.jsecurity.web.tags.NotAuthenticatedTag</tag-class>
+    <tag-class>org.ki.web.tags.NotAuthenticatedTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current user has NOT succesfully authenticated
       _during their current session_. It is logically opposite to the 'authenticated' tag.
@@ -122,7 +122,7 @@
 
   <tag>
     <name>user</name>
-    <tag-class>org.jsecurity.web.tags.UserTag</tag-class>
+    <tag-class>org.ki.web.tags.UserTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current Subject has a known identity, either
       from a previous login or from 'RememberMe' services. Note that this is semantically different
@@ -133,7 +133,7 @@
 
   <tag>
     <name>guest</name>
-    <tag-class>org.jsecurity.web.tags.GuestTag</tag-class>
+    <tag-class>org.ki.web.tags.GuestTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays body content only if the current Subject IS NOT known to the system, either
       because they have not logged in or they have no corresponding 'RememberMe' identity. It is logically
@@ -143,7 +143,7 @@
 
   <tag>
     <name>principal</name>
-    <tag-class>org.jsecurity.web.tags.PrincipalTag</tag-class>
+    <tag-class>org.ki.web.tags.PrincipalTag</tag-class>
     <body-content>JSP</body-content>
     <description>Displays the user's principal or a property of the user's principal.</description>
     <attribute>
diff --git a/web/src/org/jsecurity/web/tags/package-info.java b/web/src/org/ki/web/tags/package-info.java
similarity index 96%
rename from web/src/org/jsecurity/web/tags/package-info.java
rename to web/src/org/ki/web/tags/package-info.java
index a89c19f..82d52cd 100644
--- a/web/src/org/jsecurity/web/tags/package-info.java
+++ b/web/src/org/ki/web/tags/package-info.java
@@ -22,4 +22,4 @@
  * JSecurity JSP Tags can be used to evalute or not evaluate (show or not show) parts of a JSP page based on the

  * current user's authentication status and/or authorization (access control) abilities.

  */

-package org.jsecurity.web.tags;
\ No newline at end of file
+package org.ki.web.tags;
\ No newline at end of file
diff --git a/web/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java b/web/test/org/ki/web/DefaultWebSecurityManagerTest.java
similarity index 95%
rename from web/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java
rename to web/test/org/ki/web/DefaultWebSecurityManagerTest.java
index 684d3e6..cfc8f7e 100644
--- a/web/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java
+++ b/web/test/org/ki/web/DefaultWebSecurityManagerTest.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
-import org.jsecurity.util.ThreadContext;
+import org.ki.util.ThreadContext;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/web/test/org/jsecurity/web/WebRememberMeManagerTest.java b/web/test/org/ki/web/WebRememberMeManagerTest.java
similarity index 95%
rename from web/test/org/jsecurity/web/WebRememberMeManagerTest.java
rename to web/test/org/ki/web/WebRememberMeManagerTest.java
index 49cdcb1..d614f5e 100644
--- a/web/test/org/jsecurity/web/WebRememberMeManagerTest.java
+++ b/web/test/org/ki/web/WebRememberMeManagerTest.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web;
+package org.ki.web;
 
 import static org.easymock.EasyMock.*;
-import org.jsecurity.authc.AuthenticationInfo;
-import org.jsecurity.authc.SimpleAuthenticationInfo;
-import org.jsecurity.authc.UsernamePasswordToken;
-import org.jsecurity.subject.PrincipalCollection;
-import org.jsecurity.subject.SimplePrincipalCollection;
+import org.ki.authc.AuthenticationInfo;
+import org.ki.authc.SimpleAuthenticationInfo;
+import org.ki.authc.UsernamePasswordToken;
+import org.ki.subject.PrincipalCollection;
+import org.ki.subject.SimplePrincipalCollection;
 import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 
diff --git a/web/test/org/jsecurity/web/attr/CookieAttributeTest.java b/web/test/org/ki/web/attr/CookieAttributeTest.java
similarity index 99%
rename from web/test/org/jsecurity/web/attr/CookieAttributeTest.java
rename to web/test/org/ki/web/attr/CookieAttributeTest.java
index 5c284ae..a055092 100644
--- a/web/test/org/jsecurity/web/attr/CookieAttributeTest.java
+++ b/web/test/org/ki/web/attr/CookieAttributeTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.attr;
+package org.ki.web.attr;
 
 import junit.framework.TestCase;
 import static org.easymock.EasyMock.*;
diff --git a/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java b/web/test/org/ki/web/servlet/JSecurityFilterTest.java
similarity index 98%
rename from web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
rename to web/test/org/ki/web/servlet/JSecurityFilterTest.java
index 227c6b4..44e0a94 100644
--- a/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
+++ b/web/test/org/ki/web/servlet/JSecurityFilterTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.jsecurity.web.servlet;
+package org.ki.web.servlet;
 
 import static org.easymock.EasyMock.*;
 import org.junit.Test;