Browse Source

修改remember-me

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@3078 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
yingp 10 years ago
parent
commit
37bbce2aa4

+ 5 - 3
src/main/java/com/uas/platform/b2b/filter/SecurityInterceptor.java

@@ -26,6 +26,7 @@ import org.springframework.security.access.SecurityMetadataSource;
 import org.springframework.security.access.intercept.AbstractSecurityInterceptor;
 import org.springframework.security.access.intercept.InterceptorStatusToken;
 import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.RememberMeAuthenticationToken;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.GrantedAuthority;
@@ -48,9 +49,9 @@ 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.TrustedAuthenticationToken;
 import com.uas.platform.b2b.support.SecurityConstant;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.support.TrustedAuthenticationToken;
 import com.uas.platform.b2b.support.UserCreater;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.util.AgentUtils;
@@ -177,7 +178,8 @@ public class SecurityInterceptor extends AbstractSecurityInterceptor implements
 		else {// login by remember-me
 				// spring remember-me通过客户端的SPRING_SECURITY_REMEMBER_ME_COOKIE和数据库的PERSISTENT_LOGINS匹配
 			Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-			if (authentication != null && authentication.isAuthenticated()) {
+			if (authentication != null && authentication.isAuthenticated()
+					&& RememberMeAuthenticationToken.class.isAssignableFrom(authentication.getClass())) {
 				User authedUser = loginByRememberMe(request, authentication);
 				request.getSession().setAttribute("user", authedUser);
 				SystemSession.setUser(authedUser);
@@ -211,7 +213,7 @@ public class SecurityInterceptor extends AbstractSecurityInterceptor implements
 		authedUser.setIp(AgentUtils.getIp(request));
 		// 记录登录日志
 		SitePreference preference = getDefaultSitePreferenceForDevice(this.deviceResolver.resolveDevice(request));
-		signinLogService.save(new SigninLog(authedUser, preference, AgentUtils.getIp(request), true));
+		signinLogService.save(new SigninLog(authedUser, preference, true));
 		return authedUser;
 	}
 

+ 2 - 2
src/main/java/com/uas/platform/b2b/model/SigninLog.java

@@ -83,12 +83,12 @@ public class SigninLog implements Serializable {
 		if (enterprise != null)
 			this.enUU = enterprise.getUu();
 		this.userUU = user.getUserUU();
+		this.ip = user.getIp();
 	}
 
-	public SigninLog(User user, SitePreference preference, String ip, boolean remember) {
+	public SigninLog(User user, SitePreference preference, boolean remember) {
 		this(user);
 		setAgent(preference);
-		setIp(ip);
 		setIsRemember(remember ? Constant.YES : Constant.NO);
 	}
 

+ 2 - 2
src/main/java/com/uas/platform/b2b/support/CustomAuthenticationSuccessHandler.java

@@ -71,7 +71,7 @@ public class CustomAuthenticationSuccessHandler extends SimpleUrlAuthenticationS
 			printWriter.close();
 			return;
 		}
-//		Device device = this.deviceResolver.resolveDevice(request);
+		// Device device = this.deviceResolver.resolveDevice(request);
 		if (user.getEnterprises().size() > 1) {// need to choose enterprise
 			if (!chooseEnterprise(request, response, user)) {
 				response.setStatus(HttpStatus.MULTI_STATUS.value());
@@ -132,7 +132,7 @@ public class CustomAuthenticationSuccessHandler extends SimpleUrlAuthenticationS
 		request.getSession().setAttribute("user", user);
 		// 记录登录日志
 		SitePreference preference = getDefaultSitePreferenceForDevice(this.deviceResolver.resolveDevice(request));
-		signinLogService.save(new SigninLog(user, preference, AgentUtils.getIp(request), false));
+		signinLogService.save(new SigninLog(user, preference, false));
 
 	}
 

+ 1 - 1
src/main/webapp/resources/js/index/app.js

@@ -435,7 +435,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 		});
 		$scope.logout = function() {
 			AuthenticationService.logout().success(function() {
-				$window.location.href = BaseService.getRootPath();
+				$window.location.href = BaseService.getRootPath() + "/signin";
 			});
 		};
 		$scope.switchto = function(enUU) {// 切换企业