// Path: src/com/cjlu/newspublish/services/RightService.java
// public interface RightService extends BaseService<Right> {
// 
// 	public void saveOrUpdateRight(Right model);
// 
// 	public void appendRightByURL(String url);
// 
// 	public void batchSaveRight(List<Right> allRights);
// 
// 	public List<Right> findRightsInRange(Integer[] ownRightIds);
// 
// 	public List<Right> findRightsNotInRange(Set<Right> rights);
// 
// 	public int getMaxRightPos();
// 
// 	public Page<Right> listAllRightPage(int i, int pageSize);
// 
// }
// 
// Path: src/com/cjlu/newspublish/utils/ValidateUtils.java
// public final class ValidateUtils {
// 	
// 	private ValidateUtils(){
// 		
// 	}
// 
// 	/**
// 	 * ÅÐ¶Ï×Ö·û´®µÄÓÐÐ§ÐÔ
// 	 */
// 	public static boolean isValid(String str) {
// 		if (str == null || "".equals(str.trim())) {
// 			return false;
// 		}
// 		return true;
// 	}
// 
// 	/**
// 	 * ÅÐ¶Ï¼¯ºÏµÄÓÐÐ§ÐÔ
// 	 */
// 	@SuppressWarnings("rawtypes")
// 	public static boolean isValid(Collection collection) {
// 		if (collection == null || collection.isEmpty()) {
// 			return false;
// 		}
// 		return true;
// 	}
// 
// 	/**
// 	 * ÅÐ¶ÏÊý×éÊÇ·ñÓÐÐ§
// 	 */
// 	public static boolean isValid(Object[] arr) {
// 		if (arr == null || arr.length == 0) {
// 			return false;
// 		}
// 		return true;
// 	}
// 
// 	@SuppressWarnings({ "unchecked", "rawtypes" })
// 	public static boolean hasRight(String nameSpace, String actionName,
// 			HttpServletRequest req, BaseAction baseAction) {
// 		if (!ValidateUtils.isValid(nameSpace) || "/".equals(nameSpace)) {
// 			nameSpace = "";
// 		}
// 		// ½«³¬Á´½ÓµÄ²ÎÊý²¿·ÖÂËµô ?xxxx
// 		if (actionName != null && actionName.contains("?")) {
// 			actionName = actionName.substring(0, actionName.indexOf("?"));
// 		}
// 		String url = nameSpace + "/" + actionName;
// 		HttpSession session = req.getSession();
// 
// 		ServletContext sc = session.getServletContext();
// 		Map<String, Right> map = (Map<String, Right>) sc
// 				.getAttribute("all_rights_map");
// 		Right r = map.get(url);
// 		// ¹«¹²×ÊÔ´?
// 		if (r == null || r.isCommon()) {
// 			return true;
// 		} else {
// 			Admin admin = (Admin) session.getAttribute("admin");
// 			// µÇÂ½?
// 			if (admin == null) {
// 				return false;
// 			} else {
// 				// userAware´¦Àí
// 				if (baseAction != null && baseAction instanceof AdminAware) {
// 					((AdminAware) baseAction).setAdmin(admin);
// 				}
// 				// ÓÐÈ¨ÏÞ?
// 				if (admin.hasRight(r)) {
// 					return true;
// 				} else {
// 					return false;
// 				}
// 			}
// 		}
// 	}
// }


import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.cjlu.newspublish.services.RightService;
import com.cjlu.newspublish.utils.ValidateUtils;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.interceptor.Interceptor;
package com.cjlu.newspublish.interceptor;




public class CatchUrlInterceptor implements Interceptor {

	private static final long serialVersionUID = 1L;

	@Override
	public void destroy() {

	}

	@Override
	public void init() {

	}

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		ActionProxy proxy = invocation.getProxy();
		String nameSpace = proxy.getNamespace();
		String actionName = proxy.getActionName();
		if (!ValidateUtils.isValid(nameSpace) || nameSpace.equals("/")) {
			nameSpace = "";
		}
		String url = nameSpace + "/" + actionName;
		ServletContext servletContext = ServletActionContext
				.getServletContext();
		ApplicationContext applicationContext = WebApplicationContextUtils
				.getWebApplicationContext(servletContext);
// Path: src/com/cjlu/newspublish/services/RightService.java
// public interface RightService extends BaseService<Right> {
// 
// 	public void saveOrUpdateRight(Right model);
// 
// 	public void appendRightByURL(String url);
// 
// 	public void batchSaveRight(List<Right> allRights);
// 
// 	public List<Right> findRightsInRange(Integer[] ownRightIds);
// 
// 	public List<Right> findRightsNotInRange(Set<Right> rights);
// 
// 	public int getMaxRightPos();
// 
// 	public Page<Right> listAllRightPage(int i, int pageSize);
// 
// }
// 
// Path: src/com/cjlu/newspublish/utils/ValidateUtils.java
// public final class ValidateUtils {
// 	
// 	private ValidateUtils(){
// 		
// 	}
// 
// 	/**
// 	 * ÅÐ¶Ï×Ö·û´®µÄÓÐÐ§ÐÔ
// 	 */
// 	public static boolean isValid(String str) {
// 		if (str == null || "".equals(str.trim())) {
// 			return false;
// 		}
// 		return true;
// 	}
// 
// 	/**
// 	 * ÅÐ¶Ï¼¯ºÏµÄÓÐÐ§ÐÔ
// 	 */
// 	@SuppressWarnings("rawtypes")
// 	public static boolean isValid(Collection collection) {
// 		if (collection == null || collection.isEmpty()) {
// 			return false;
// 		}
// 		return true;
// 	}
// 
// 	/**
// 	 * ÅÐ¶ÏÊý×éÊÇ·ñÓÐÐ§
// 	 */
// 	public static boolean isValid(Object[] arr) {
// 		if (arr == null || arr.length == 0) {
// 			return false;
// 		}
// 		return true;
// 	}
// 
// 	@SuppressWarnings({ "unchecked", "rawtypes" })
// 	public static boolean hasRight(String nameSpace, String actionName,
// 			HttpServletRequest req, BaseAction baseAction) {
// 		if (!ValidateUtils.isValid(nameSpace) || "/".equals(nameSpace)) {
// 			nameSpace = "";
// 		}
// 		// ½«³¬Á´½ÓµÄ²ÎÊý²¿·ÖÂËµô ?xxxx
// 		if (actionName != null && actionName.contains("?")) {
// 			actionName = actionName.substring(0, actionName.indexOf("?"));
// 		}
// 		String url = nameSpace + "/" + actionName;
// 		HttpSession session = req.getSession();
// 
// 		ServletContext sc = session.getServletContext();
// 		Map<String, Right> map = (Map<String, Right>) sc
// 				.getAttribute("all_rights_map");
// 		Right r = map.get(url);
// 		// ¹«¹²×ÊÔ´?
// 		if (r == null || r.isCommon()) {
// 			return true;
// 		} else {
// 			Admin admin = (Admin) session.getAttribute("admin");
// 			// µÇÂ½?
// 			if (admin == null) {
// 				return false;
// 			} else {
// 				// userAware´¦Àí
// 				if (baseAction != null && baseAction instanceof AdminAware) {
// 					((AdminAware) baseAction).setAdmin(admin);
// 				}
// 				// ÓÐÈ¨ÏÞ?
// 				if (admin.hasRight(r)) {
// 					return true;
// 				} else {
// 					return false;
// 				}
// 			}
// 		}
// 	}
// }


// Path: src/com/cjlu/newspublish/interceptor/CatchUrlInterceptor.java
import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.cjlu.newspublish.services.RightService;
import com.cjlu.newspublish.utils.ValidateUtils;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.interceptor.Interceptor;

package com.cjlu.newspublish.interceptor;




public class CatchUrlInterceptor implements Interceptor {

	private static final long serialVersionUID = 1L;

	@Override
	public void destroy() {

	}

	@Override
	public void init() {

	}

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		ActionProxy proxy = invocation.getProxy();
		String nameSpace = proxy.getNamespace();
		String actionName = proxy.getActionName();
		if (!ValidateUtils.isValid(nameSpace) || nameSpace.equals("/")) {
			nameSpace = "";
		}
		String url = nameSpace + "/" + actionName;
		ServletContext servletContext = ServletActionContext
				.getServletContext();
		ApplicationContext applicationContext = WebApplicationContextUtils
				.getWebApplicationContext(servletContext);
		RightService rs = (RightService) applicationContext