diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsConnectionStatusView.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsConnectionStatusView.java new file mode 100644 index 0000000..2e75257 --- /dev/null +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsConnectionStatusView.java @@ -0,0 +1,39 @@ +package com.micro.fast.security.core.social; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.social.connect.Connection; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.view.AbstractView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定义一个返回给前端第三方账户绑定的视图,拦截请求/connect,返回connect/status视图的信息,并装换成json格式 + * @author lsy + */ +@Component("connect/status") +public class MsConnectionStatusView extends AbstractView { + + private ObjectMapper objectMapper = new ObjectMapper(); + + + @Override + protected void renderMergedOutputModel(Map map + , HttpServletRequest httpServletRequest + , HttpServletResponse httpServletResponse) + throws Exception { + Map>> connections = (Map>>)map.get("connectionMap"); + Map result = new HashMap<>(5); + connections.forEach((key,value)->{ + result.put(key, CollectionUtils.isNotEmpty(value)); + }); + //返回json格式的数据 + httpServletResponse.setContentType("application/json;charset=UTF-8"); + httpServletResponse.getWriter().write(objectMapper.writeValueAsString(result)); + } +} \ No newline at end of file