- 浏览: 224956 次
- 性别:
- 来自: 北京
最新评论
-
film:
6510C10D FF15 B8170065 cal ...
crack vba protect password -
film:
我有新的的注册码和激活码
科来发布技术交流版6.8--->成功实现激活码注册机 -
lei511:
不错
加油
Ajax的工作原理
jeecms修改后台路径
jeecms-V6版本
修改web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>JeeCmsV6</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/application-context.xml /WEB-INF/config/cache-context.xml /WEB-INF/config/captcha-context.xml /WEB-INF/config/jeecms/jeecore-context.xml /WEB-INF/config/jeecms/jeecms-context.xml /WEB-INF/config/shiro-context.xml /WEB-INF/config/plug/**/*-context.xml /WEB-INF/config/quartz-task.xml </param-value> </context-param> <filter> <filter-name>processTime</filter-name> <filter-class>com.jeecms.common.web.ProcessTimeFilter</filter-class> </filter> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter> <filter-name>osivFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <!--@分隔--> <filter> <filter-name>XssFilter</filter-name> <filter-class>com.jeecms.common.web.XssFilter</filter-class> <init-param> <param-name>excludeUrls</param-name> <param-value>/member/contribute</param-value> </init-param> <init-param> <param-name>SplitChar</param-name> <param-value>@</param-value> </init-param> <init-param> <param-name>FilterChar</param-name> <param-value>'@"@\@#@:@%@></param-value> </init-param> <init-param> <param-name>ReplaceChar</param-name> <param-value>‘@“@\@#@:@%@></param-value> </init-param> </filter> <filter-mapping> <filter-name>processTime</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>osivFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>processTime</filter-name> <url-pattern>*.jspx</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>*.jspx</url-pattern> </filter-mapping> <filter-mapping> <filter-name>osivFilter</filter-name> <url-pattern>*.jspx</url-pattern> </filter-mapping> <filter-mapping> <filter-name>processTime</filter-name> <url-pattern>*.jhtml</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>*.jhtml</url-pattern> </filter-mapping> <filter-mapping> <filter-name>osivFilter</filter-name> <url-pattern>*.jhtml</url-pattern> </filter-mapping> <filter-mapping> <filter-name>processTime</filter-name> <url-pattern>*.htm</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>*.htm</url-pattern> </filter-mapping> <filter-mapping> <filter-name>osivFilter</filter-name> <url-pattern>*.htm</url-pattern> </filter-mapping> <filter-mapping> <filter-name>processTime</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>osivFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>osivFilter</filter-name> <url-pattern>/</url-pattern> </filter-mapping> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>XssFilter</filter-name> <url-pattern>/login.jspx</url-pattern> </filter-mapping> <filter-mapping> <filter-name>XssFilter</filter-name> <!-- <url-pattern>/jeeadmin/jeecms/login.do</url-pattern>-->
<url-pattern>/cmsadpath/login.do</url-pattern> </filter-mapping> <servlet> <servlet-name>JeeCmsAdmin</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/jeecms-servlet-admin.xml /WEB-INF/config/plug/**/*-servlet-admin-action.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>JeeCmsFront</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/jeecms-servlet-front.xml /WEB-INF/config/plug/**/*-servlet-front-action.xml </param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>Jcaptcha</servlet-name> <servlet-class>com.jeecms.common.captcha.JcaptchaServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Jcaptcha</servlet-name> <url-pattern>/captcha.svl</url-pattern> </servlet-mapping> <servlet> <servlet-name>DbFile</servlet-name> <servlet-class>com.jeecms.core.action.front.DbFileServlet</servlet-class> </servlet> <servlet> <servlet-name>SnapScreen</servlet-name> <servlet-class>com.jeecms.core.action.front.SnapScreenServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SnapScreen</servlet-name> <url-pattern>/snapscreen.svl</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JeeCmsAdmin</servlet-name> <!-- <url-pattern>/jeeadmin/jeecms/*</url-pattern>--> <url-pattern>/cmsadpath/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JeeCmsFront</servlet-name> <url-pattern>*.jhtml</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JeeCmsFront</servlet-name> <url-pattern>*.jspx</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JeeCmsFront</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JeeCmsFront</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DbFile</servlet-name> <url-pattern>/dbfile.svl</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <session-config> <session-timeout>20</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.shtml</welcome-file> <welcome-file>index.jhtml</welcome-file> </welcome-file-list> <error-page> <error-code>403</error-code> <location>/WEB-INF/error/403.html</location> </error-page> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <error-page> <error-code>500</error-code> <location>/WEB-INF/error/500.html</location> </error-page> <mime-mapping> <extension>rar</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>doc</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>wps</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>et</extension> <mime-type>application/zip</mime-type> </mime-mapping> </web-app>
修改shiro-context.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd" default-lazy-init="true"> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login.jspx" /> <property name="successUrl" value="/" /> <property name="filters"> <util:map> <entry key="authc" value-ref="authcFilter" /> <entry key="user" value-ref="userFilter" /> <entry key="logout" value-ref="logoutFilter" /> </util:map> </property> <!--anon匿名 authc登录认证 user用户已登录 logout退出filter--> <property name="filterChainDefinitions"> <value> *.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--> /cmsadpath/login.do = authc /cmsadpath/logout.do = logout /cmsadpath/** =user </value> </property> </bean> <!-- Shiro Filter --> <bean id="adminUrlBean" class="com.jeecms.core.security.CmsAdminUrl"> <!-- <property name="adminLogin" value="/jeeadmin/jeecms/login.do"/>--> <!-- <property name="adminPrefix" value="/jeeadmin/jeecms/"/>-->
<property name="adminLogin" value="/cmsadpath/login.do"/> <property name="adminPrefix" value="/cmsadpath/"/>
</bean> <bean id="authcFilter" class="com.jeecms.core.security.CmsAuthenticationFilter" parent="adminUrlBean"> <!-- <property name="adminIndex" value="/jeeadmin/jeecms/index.do"/>-->
<property name="adminIndex" value="/cmsadpath/index.do"/>
</bean> <bean id="userFilter" class="com.jeecms.core.security.CmsUserFilter" parent="adminUrlBean"/> <bean id="logoutFilter" class="com.jeecms.core.security.CmsLogoutFilter" parent="adminUrlBean"/> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="authorizingRealm" /> <property name="cacheManager" ref="shiroEhcacheManager"/> </bean> <bean id="authorizingRealm" class="com.jeecms.core.security.CmsAuthorizingRealm"> <property name="credentialsMatcher"> <bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher"> <property name="hashAlgorithmName" value="MD5"/> <!-- true means hex encoded, false means base64 encoded --> <property name="storedCredentialsHexEncoded" value="true"/> <!-- 迭代次数 --> <property name="hashIterations" value="1" /> </bean> </property> <property name="cmsUserMng" ref="cmsUserMng" /> </bean> <bean id="shiroEhcacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <property name="cacheManagerConfigFile"> <value>classpath:ehcache-shiro.xml</value> </property> </bean> <!-- Enable Shiro Annotations for Spring-configured beans. Only run after --> <!-- the lifecycleBeanProcessor has run: --> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" /> </beans>
修改jeecms-servlet-admin.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd" default-lazy-init="true"> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="cacheSeconds" value="-1"/> <property name="basenames" value="#{propertyUtils.getList('messages.admin.')}"/> </bean> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> <!-- <bean id="multipartResolver" class="com.jeecms.common.web.cos.CosMultipartResolver"/> --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class=" com.jeecms.common.web.springmvc.BindingInitializer"/> </property> </bean> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/WEB-INF/config/firewall.properties</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <ref bean="adminContextInterceptor"/> <ref bean="adminLocaleIntercept"/> <ref bean="fireWallInterceptor"/> </list> </property> </bean> <bean id="adminContextInterceptor" class="com.jeecms.cms.web.AdminContextInterceptor"> <!--<property name="adminId" value="1"/>--> <property name="auth" value="true"/> <property name="excludeUrls"> <list> <value>/login.do</value> <value>/logout.do</value> </list> </property> <property name="managepath" value="/cmsadpath"/> <!--"/"--> </bean> <bean id="adminLocaleIntercept" class="com.jeecms.cms.web.AdminLocaleInterceptor"/> <bean id="fireWallInterceptor" class="com.jeecms.cms.web.FireWallInterceptor"/> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager"/> </bean> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> <property name="cookieName" value="clientlanguage"/> <property name="cookieMaxAge" value="-1"/> </bean> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.springframework.web.bind.MissingServletRequestParameterException">/error/requiredParameter</prop> <prop key="org.springframework.beans.TypeMismatchException">/error/mismatchParameter</prop> <prop key="org.springframework.web.bind.ServletRequestBindingException">/error/bindException</prop> <prop key="org.apache.shiro.authz.AuthorizationException">/error/authrizationException</prop> </props> </property> </bean> <!-- <bean class="com.jeecms.common.web.springmvc.HandlerExceptionResolver"/> --> <bean id="freemarkerViewResolver" class="com.jeecms.common.web.springmvc.RichFreeMarkerViewResolver"> <property name="prefix" value="/jeecms_sys/"/> <property name="suffix" value=".html"/> <property name="contentType" value="text/html; charset=UTF-8"/> <property name="exposeRequestAttributes" value="false"/> <property name="exposeSessionAttributes" value="false"/> <property name="exposeSpringMacroHelpers" value="true"/> </bean> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF"/> <property name="freemarkerVariables"> <map> <!--在FCK编辑器中需要用到appBase,以确定connector路径。--> <!-- <entry key="appBase" value="/jeeadmin/jeecms"/>-->
<entry key="appBase" value="/cmsadpath"/>
<!--后台管理权限控制--> <entry key="cms_perm" value-ref="cms_perm"/> <entry key="text_cut" value-ref="text_cut"/> <entry key="html_cut" value-ref="html_cut"/> <entry key="cms_content_list" value-ref="cms_content_list"/> <entry key="cms_content_page" value-ref="cms_content_page"/> </map> </property> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">0</prop> <prop key="defaultEncoding">UTF-8</prop> <prop key="url_escaping_charset">UTF-8</prop> <prop key="locale">zh_CN</prop> <prop key="boolean_format">true,false</prop> <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> <prop key="date_format">yyyy-MM-dd</prop> <prop key="time_format">HH:mm:ss</prop> <prop key="number_format">0.######</prop> <prop key="whitespace_stripping">true</prop> <prop key="auto_import">/ftl/jeecms/index.ftl as p,/ftl/spring.ftl as s</prop> </props> </property> </bean> <context:annotation-config/> <!--包含action--> <import resource="jeecms/jeecms-servlet-admin-action.xml"/> </beans>
修改java文件(AdminContextInterceptor):
package com.jeecms.cms.web; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import org.springframework.web.util.UrlPathHelper; import com.jeecms.common.web.CookieUtils; import com.jeecms.core.entity.CmsSite; import com.jeecms.core.entity.CmsUser; import com.jeecms.core.manager.CmsSiteMng; import com.jeecms.core.manager.CmsUserMng; import com.jeecms.core.security.CmsAuthorizingRealm; import com.jeecms.core.web.util.CmsUtils; /** * CMS上下文信息拦截器 * * 包括登录信息、权限信息、站点信息 */ public class AdminContextInterceptor extends HandlerInterceptorAdapter { private static final Logger log = Logger.getLogger(AdminContextInterceptor.class); public static final String SITE_PARAM = "_site_id_param"; public static final String SITE_COOKIE = "_site_id_cookie"; public static final String SITE_PATH_PARAM = "path"; public static final String PERMISSION_MODEL = "_permission_key";
public static Integer SLASH_COUNT = 0;
public static String ManagerPath= "/"; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 获得站点 CmsSite oldSite=getByCookie(request); CmsSite site = getSite(request, response); CmsUtils.setSite(request, site); // Site加入线程变量 CmsThreadVariable.setSite(site); // 获得用户 CmsUser user = null; Subject subject = SecurityUtils.getSubject(); if (subject.isAuthenticated()) { String username = (String) subject.getPrincipal(); user = cmsUserMng.findByUsername(username); } // 此时用户可以为null CmsUtils.setUser(request, user); // User加入线程变量 CmsThreadVariable.setUser(user); String uri = getURI(request); if (exclude(uri)) { return true; } //切换站点移除shiro缓存 if(oldSite!=null&&!oldSite.equals(site)&&user!=null){ authorizingRealm.removeUserAuthorizationInfoCache(user.getUsername().toString()); } createJsessionId(request, response, site); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav) throws Exception { CmsUser user = CmsUtils.getUser(request); CmsSite site=CmsUtils.getSite(request); // 不控制权限时perm为null,PermistionDirective标签将以此作为依据不处理权限问题。 if (auth && user != null && !user.isSuper() && mav != null && mav.getModelMap() != null && mav.getViewName() != null && !mav.getViewName().startsWith("redirect:")) { mav.getModelMap().addAttribute(PERMISSION_MODEL, getUserPermission(site, user)); } } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // Sevlet容器有可能使用线程池,所以必须手动清空线程变量。 CmsThreadVariable.removeUser(); CmsThreadVariable.removeSite(); } /** * 按参数、cookie、域名、默认。 * * @param request * @return 不会返回null,如果站点不存在,则抛出异常。 */ private CmsSite getSite(HttpServletRequest request, HttpServletResponse response) { CmsSite site = getByParams(request, response); if (site == null) { site = getByCookie(request); } if (site == null) { site = getByDomain(request); } if (site == null) { site = getByDefault(); } if (site == null) { throw new RuntimeException("cannot get site!"); } else { return site; } } private CmsSite getByParams(HttpServletRequest request, HttpServletResponse response) { String p = request.getParameter(SITE_PARAM); if (!StringUtils.isBlank(p)) { try { Integer siteId = Integer.parseInt(p); CmsSite site = cmsSiteMng.findById(siteId); if (site != null) { // 若使用参数选择站点,则应该把站点保存至cookie中才好。 CookieUtils.addCookie(request, response, SITE_COOKIE, site .getId().toString(), null, null); return site; } } catch (NumberFormatException e) { log.warn("param site id format exception", e); } } return null; } private CmsSite getByCookie(HttpServletRequest request) { Cookie cookie = CookieUtils.getCookie(request, SITE_COOKIE); if (cookie != null) { String v = cookie.getValue(); if (!StringUtils.isBlank(v)) { try { Integer siteId = Integer.parseInt(v); return cmsSiteMng.findById(siteId); } catch (NumberFormatException e) { log.warn("cookie site id format exception", e); } } } return null; } private CmsSite getByDomain(HttpServletRequest request) { String domain = request.getServerName(); if (!StringUtils.isBlank(domain)) { return cmsSiteMng.findByDomain(domain); } return null; } private CmsSite getByDefault() { List<CmsSite> list = cmsSiteMng.getListFromCache(); if (list.size() > 0) { return list.get(0); } else { return null; } } private boolean exclude(String uri) { if (excludeUrls != null) { for (String exc : excludeUrls) { if (exc.equals(uri)) { return true; } } } return false; } private void createJsessionId(HttpServletRequest request,HttpServletResponse response,CmsSite site){ String JSESSIONID = request.getSession().getId();//获取当前JSESSIONID (不管是从主域还是二级域访问产生) Cookie cookie = new Cookie("JSESSIONID", JSESSIONID); cookie.setDomain(site.getBaseDomain()); //关键在这里,将cookie设成主域名访问,确保不同域之间都能获取到该cookie的值,从而确保session统一 response.addCookie(cookie); //将cookie返回到客户端 } /** * 获得第三个路径分隔符的位置 * * @param request * @throws IllegalStateException * 访问路径错误,没有三(四)个'/' */ 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 = SLASH_COUNT;//2->0 if (!StringUtils.isBlank(ctxPath)) { count++; } while (i < count && start != -1) { start = uri.indexOf('/', start + 1); i++; } if (start <= 0) { throw new IllegalStateException( //后台路径,/jeeadmin/jeecms/...->cmsadpath "admin access path not like '" + ManagerPath + "...' pattern: " + uri); } return uri.substring(start); } private Set<String>getUserPermission(CmsSite site,CmsUser user){ Set<String>viewPermissionSet=new HashSet<String>(); Set<String> perms = user.getPerms(site.getId(),viewPermissionSet); Set<String> userPermission=new HashSet<String>(); for(String perm:perms){ perm="/"+perm; if(perm.contains(":")){ perm=perm.replace(":", "/").replace("*", ""); } userPermission.add(perm); } return userPermission; } private CmsSiteMng cmsSiteMng; private CmsUserMng cmsUserMng; private boolean auth = true; private String[] excludeUrls; private String managePath; //后台路径 @Autowired private CmsAuthorizingRealm authorizingRealm; @Autowired public void setCmsSiteMng(CmsSiteMng cmsSiteMng) { this.cmsSiteMng = cmsSiteMng; } @Autowired public void setCmsUserMng(CmsUserMng cmsUserMng) { this.cmsUserMng = cmsUserMng; } public void setAuth(boolean auth) { this.auth = auth; } public void setExcludeUrls(String[] excludeUrls) { this.excludeUrls = excludeUrls; } public void setManagePath(String managePath){ this.managePath = managePath; ManagerPath = this.managePath;
<span style="font-family: Arial, Helvetica, sans-serif;"> int start = 0,count = -1;</span>
if (!this.managePath.equals("/")) { { start = managePath.indexOf('/', start + 1); count++; }while (start != -1); } SLASH_COUNT = count; } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关推荐
JEECMS后台地址修改:JEECMS修改后台地址比较麻烦,按照文档上的步骤操作可以进行修改
JEECMS V6后台地址修改懒人包 直接覆盖源码相应位置的文件,你可以使用/admin的路径直接访问后台
修改后台访问路径: 如:http://localhost:8080/jeeadmin/jeecms/login.do 改:http://localhost:8080/jeecms/admin/login.do
网站后台的一个Java源代码 网站后台的一个Java源代码3层结构
jeecms v2012版后台管理 1 栏目 1 栏目 1 1.1相关名词解释 2 1.2栏目模型管理: 3 1.3栏目添加 5 1.4 栏目修改、删除操作说明 7 2 内容 7 2.1功能区组成 7 2.2内容类型: 8 2.3内容类型专题管理 10 3 图片集 13 3.1...
JEECMS
欢迎使用JEECMS v9.2版,请按照以下步骤进行软件安装: 一、安装运行环境(JDK7+TOMCAT7+MYSQL5及以上,具体... 系统管理后台登录:http://localhost:8080/jeeadmin/jeecms/index.do 用户名:admin 密 码:password
jeecms9.2源代码文件 环境软件可以从以下网址中获得 Jdk 7.0 下载址: http://java.sun.com/javase/downloads/index.jsp Tomcat7 下载地址:https://tomcat.apache.org/download-70.cgi MySQL 5.0.22 下载地址:...
在二次开发方面,jeecmsV6支持元件式无限插件扩展方式,开发者根据jeecms的插件开发标准所开发出来的插件,插件与jeecms是平行的,无论是插件升级还是jeecms系统升级,都可以实现独立升级,插件与插件、插件与jeecms...
JEECMSv8.1是一款支持微信小程序、栏目模型、内容模型交叉自定义、以及具备支付和财务结算的内容电商为一体内容管理系统:通过后台的简单设置即可自定义出集新闻管理、图库管理、视频管理、下载系统、文库管理、政务...
jeecms v6 复制和移动栏目报错修改,直接覆盖这个页面就可以了
JEECMS是国内Java版开源网站内容管理系统 1.基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 2.采用SpringMVC3+Spring3+Hibernate3+Freemarker主流技术架构 3.懂html就能建站,提供最便利、...
JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 · 采用hibernate3+spring mvc+spring2+...
jeecms 标签使用说明 jeecms 标签使用说明 jeecms 标签使用说明
系统管理后台登录:http://localhost:8080/jeeadmin/jeecms/index.do 用户名:admin 密 码:password ===================================================== 感谢您使用JEECMS,系统使用过程中如遇到问题,...
jeecms开发源码包,jeecms网站上提供 自己修改之后的源码,有兴趣的可以共同讨论下
五、面向未来的过渡,JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版本,具有更大的灵活性和稳定性;-一、系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良好的学习平台; 二、核心模板...
摘要:JSP源码,CMS系统,JeeCMS jeecms v2012版是一款集新闻管理、图库管理、视频管理、下载系统、作品管理、产品发布及留言板于一体的综合性CMS系统。 jeecms v2012版新增功能如下: 1、新增统计功能 1.1...
jeecms完整全功能版——源代码,压缩包3,去掉后最gz,配合压缩包1解压。
本教程主要对JEECMS安装步骤以及在JEECMS安装过程中常见的问题进行了详细的介绍与解答。