Browse Source

Merge branch 'feature-power' of ssh://10.10.101.21/source/platform-b2b into feature-power

wangmh 8 years ago
parent
commit
914ea4e814
1 changed files with 44 additions and 39 deletions
  1. 44 39
      src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

+ 44 - 39
src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

@@ -1,17 +1,22 @@
 package com.uas.platform.b2b.filter;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.uas.platform.b2b.dao.ResourceItemDao;
+import com.uas.platform.b2b.manage.service.AccessTokenService;
+import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.service.EnterpriseService;
+import com.uas.platform.b2b.service.RoleService;
+import com.uas.platform.b2b.service.SigninLogService;
+import com.uas.platform.b2b.service.UserService;
+import com.uas.platform.b2b.support.SecurityConstant;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.support.UserCreater;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.util.AgentUtils;
+import com.uas.platform.core.util.encry.Md5Utils;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.sso.SSOHelper;
+import com.uas.sso.SSOToken;
+import com.uas.sso.web.spring.AbstractSSOInterceptor;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,28 +34,10 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.util.StringUtils;
 
-import com.uas.platform.b2b.dao.ResourceItemDao;
-import com.uas.platform.b2b.manage.service.AccessTokenService;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.ResourceItem;
-import com.uas.platform.b2b.model.Role;
-import com.uas.platform.b2b.model.SigninLog;
-import com.uas.platform.b2b.model.User;
-import com.uas.platform.b2b.model.Vendor;
-import com.uas.platform.b2b.service.EnterpriseService;
-import com.uas.platform.b2b.service.RoleService;
-import com.uas.platform.b2b.service.SigninLogService;
-import com.uas.platform.b2b.service.UserService;
-import com.uas.platform.b2b.support.SecurityConstant;
-import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.b2b.support.UserCreater;
-import com.uas.platform.core.model.Constant;
-import com.uas.platform.core.util.AgentUtils;
-import com.uas.platform.core.util.encry.Md5Utils;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
-import com.uas.sso.SSOHelper;
-import com.uas.sso.SSOToken;
-import com.uas.sso.web.spring.AbstractSSOInterceptor;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.*;
 
 @SuppressWarnings("deprecation")
 public class SSOInterceptor extends AbstractSSOInterceptor {
@@ -125,7 +112,11 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 		}
 		if (user != null) {
 			SystemSession.setUser(user);
-			accessDecision(request, user);
+			try {
+				accessDecision(request, user, response);
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
 			return true;
 		} else {
 			if (SecurityConstant.AUTHENTICATION_URL.equals(request.getRequestURI())) {
@@ -161,14 +152,18 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 		}
 		if (user != null) {
 			SystemSession.setUser(user);
-			accessDecision(request, user);
+			try {
+				accessDecision(request, user, response);
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
 		}
 	}
 
 	/**
 	 * 权限验证
 	 */
-	private void accessDecision(HttpServletRequest request, User user) {
+	private void accessDecision(HttpServletRequest request, User user, HttpServletResponse response) throws IOException {
 		Collection<ConfigAttribute> configAttributes = getAttributes(request);
 		if (null == configAttributes || configAttributes.size() == 0 || user.isSys()) {
 			return;
@@ -202,8 +197,18 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 //		if (!CollectionUtils.isEmpty(myVendors)) {
 //			return;
 //		}
-		if (needPermission != null)
-			throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
+		if (needPermission != null) {
+			if(needPermission.contains("导出")) {
+				String retUrl = request.getContextPath();
+				try {
+					throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
+				} finally {
+					response.sendRedirect(retUrl + "/static/tpl/start/index.html");
+				}
+			} else {
+				throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
+			}
+		}
 	}
 
 	@Override