将jeeadmin/jeecms/index.do 改为admin/index.do为例 修改WebContent\WEB-INF\web.xml <servlet-mapping> <servlet-name>JeeCmsAdmin</servlet-name> <url-pattern>/jeeadmin/jeecms/*</url-pattern> </servlet-mapping> 改为 <servlet-mapping> <servlet-name>JeeCmsAdmin</servlet-name> <url-pattern>/admin/*</url-pattern> </servlet-mapping> 修改WebContent\WEB-INF\config\jeecms-servlet-admin.xml <entry key="appBase" value="/jeeadmin/jeecms"/> 改为 <entry key="appBase" value="/admin"/> 修改WebContent\WEB-INF\config\shiro-context.xml 把 *.jspx = anon *.jhtml = anon /member/forgot_password.jspx = anon /member/password_reset.jspx = anon /login.jspx = authc /logout.jspx = logout /member/** = user /jeeadmin/jeecms/login.do = authc /jeeadmin/jeecms/logout.do = logout /jeeadmin/jeecms/** =user 改为 *.jspx = anon *.jhtml = anon /member/forgot_password.jspx = anon /member/password_reset.jspx = anon /login.jspx = authc /logout.jspx = logout /member/** = user /admin/login.do = authc /admin/logout.do = logout /admin/** =user 把 <property name="adminLogin" value="/jeeadmin/jeecms/login.do"/> <property name="adminPrefix" value="/jeeadmin/jeecms/"/> 改为 <property name="adminLogin" value="/admin/login.do"/> <property name="adminPrefix" value="/admin/"/> 把 <property name="adminIndex" value="/jeeadmin/jeecms/index.do"/> 改为 <property name="adminIndex" value="/admin/index.do"/> 修改\src\com\jeecms\cms\web\AdminContextInterceptor.java 把 private static String getURI(HttpServletRequest request) throws IllegalStateException { UrlPathHelper helper = new UrlPathHelper(); String uri = helper.getOriginatingRequestUri(request); String ctxPath = helper.getOriginatingContextPath(request); int start = 0, i = 0, count = 2 if (!StringUtils.isBlank(ctxPath)) { count++; } while (i < count && start != -1) { start = uri.indexOf('/', start + 1); i++; } if (start <= 0) { throw new IllegalStateException("admin access path not like '/jeeadmin/jeecms/...' pattern: " + uri); } return uri.substring(start); } 改为 private static String getURI(HttpServletRequest request) throws IllegalStateException { UrlPathHelper helper = new UrlPathHelper(); String uri = helper.getOriginatingRequestUri(request); String ctxPath = helper.getOriginatingContextPath(request); // int start = 0, i = 0, count = 2;修改 int start = 0, i = 0, count = 1; if (!StringUtils.isBlank(ctxPath)) { count++; } while (i < count && start != -1) { start = uri.indexOf('/', start + 1); i++; } if (start <= 0) { throw new IllegalStateException("admin access path not like '/admin/...' pattern: " + uri); } return uri.substring(start); } 通过数据库修改密码 通过数据库修改 admin 密码 select * from core_user; | 1 | admin | jobar | 0230504dd5de96d2f6784d45d1bc7633 | 密码已经是被加密过的了。 密码加密类:com.ponyjava.common.util.Md5PwdEncoder 例如我想将密码设为 “zhaozh”, 就先用这个类加密,然后更新数据库就 ok 了。 public class Test { public static void main(String[] args) { Md5PwdEncoder encoder = new Md5PwdEncoder(); System.out.println(encoder.encodePassword("zhaozh")); } } 输出为:f06238ff925a61f9c62de7d64c64bad3 mysql> update core_user set password='f06238ff925a61f9c62de7d64c64bad3' where user_id='1'; 再次登录就 ok 了。