SocialSignOnListController.java 3.7 KB
Newer Older
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/*
 * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 

MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
18 19 20 21 22 23
package org.maxkey.web.contorller;

import java.util.ArrayList;
import java.util.List;

import org.maxkey.authn.support.socialsignon.service.SocialSignOnProviderService;
MaxKey单点登录官方's avatar
fix  
MaxKey单点登录官方 已提交
24 25
import org.maxkey.authn.support.socialsignon.service.SocialsAssociate;
import org.maxkey.authn.support.socialsignon.service.SocialsAssociateService;
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
26
import org.maxkey.configuration.ApplicationConfig;
M
v3.2.1  
MaxKey 已提交
27
import org.maxkey.entity.Institutions;
28
import org.maxkey.entity.SocialsProvider;
M
v3.2.1  
MaxKey 已提交
29
import org.maxkey.web.WebConstants;
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


@Controller
@RequestMapping(value={"/socialsignon"})
public class SocialSignOnListController {
	final static Logger _logger = LoggerFactory.getLogger(SocialSignOnListController.class);
	
	@Autowired
	SocialSignOnProviderService socialSignOnProviderService;
	
	@Autowired
MaxKey单点登录官方's avatar
fix  
MaxKey单点登录官方 已提交
49
	protected SocialsAssociateService socialSignOnUserService;
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
50 51 52 53 54 55 56 57 58 59
	
	@Autowired
  	@Qualifier("applicationConfig")
  	protected ApplicationConfig applicationConfig;
	
	@RequestMapping(value = { "/list" })
	public ModelAndView forwardUpdate() {
		
		ModelAndView modelAndView=new ModelAndView("social/socialSignOnProvider");
		if(applicationConfig.getLoginConfig().isSocialSignOn()){
M
v3.2.1  
MaxKey 已提交
60 61 62
			Institutions inst = (Institutions)WebContext.getAttribute(WebConstants.CURRENT_INST);
			List<SocialsProvider>  listSocialSignOnProvider = 
									socialSignOnProviderService.loadSocialsProviders(inst.getId()).getSocialSignOnProviders();
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
63
			
MaxKey单点登录官方's avatar
fix  
MaxKey单点登录官方 已提交
64
			SocialsAssociate socialSignOnUser=new SocialsAssociate();
M
MaxKey 已提交
65
			socialSignOnUser.setUserId(WebContext.getUserInfo().getId());
MaxKey单点登录官方's avatar
fix  
MaxKey单点登录官方 已提交
66
			List<SocialsAssociate>  listSocialSignOnUserToken= socialSignOnUserService.query(socialSignOnUser);
67
			List<SocialsProvider>  listBindSocialSignOnProvider=new ArrayList<SocialsProvider>();
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
68 69
			_logger.debug("list SocialSignOnProvider : "+listSocialSignOnProvider);
			_logger.debug("list SocialSignOnUserToken : "+listSocialSignOnUserToken);
70 71
			for (SocialsProvider ssop : listSocialSignOnProvider){
				SocialsProvider socialSignOnProvider=new SocialsProvider();
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
72 73 74
				socialSignOnProvider.setProvider(ssop.getProvider());
				socialSignOnProvider.setProviderName(ssop.getProviderName());
				socialSignOnProvider.setIcon(ssop.getIcon());
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
75
				socialSignOnProvider.setSortOrder(ssop.getSortOrder());
MaxKey单点登录官方's avatar
fix  
MaxKey单点登录官方 已提交
76
				for(SocialsAssociate ssout :listSocialSignOnUserToken){
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
77 78
					if(ssout.getProvider().equals(ssop.getProvider())){
						socialSignOnProvider.setUserBind(true);
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
79 80
						socialSignOnProvider.setBindTime(ssout.getCreatedDate());
						socialSignOnProvider.setLastLoginTime(ssout.getUpdatedDate());
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
81 82 83 84 85 86 87 88 89 90 91 92
						_logger.debug("binded provider : "+ssout.getProvider());
					}
				}
				listBindSocialSignOnProvider.add(socialSignOnProvider);
			}
			
			modelAndView.addObject("listSocialSignOnProvider", listBindSocialSignOnProvider);
		}
		return modelAndView;
	}
	
}