package com.lktx.center.controller; import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.StpUtil; import cn.hserver.core.ioc.annotation.Autowired; import cn.hserver.mvc.annotation.Controller; import cn.hserver.mvc.annotation.router.GET; import cn.hserver.mvc.response.Response; import com.lktx.center.config.Data; import com.lktx.center.config.SsoAuthRequest; import com.lktx.center.domain.bean.SsoApp; import com.lktx.center.domain.vo.SsoUserAppVO; import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthToken; import java.util.Map; import java.util.stream.Collectors; @Slf4j @Controller public class HomeController { @Autowired private SsoAuthRequest authRequest; @GET("/") public void index(Response response) { if (StpUtil.isLogin()){ try { SaSession session = StpUtil.getSession(); AuthToken authToken = session.get(Data.AuthToken,null); if (authToken != null){ AuthResponse center = authRequest.center(authToken); if (center.ok()) { Map data = Map.of( "user", center.getData().getSsoUser(), "appList", center.getData().getSsoAppList(), "appGroup", center.getData().getSsoAppList().stream().map(SsoApp::getSsoAppGroup).collect(Collectors.toSet()) ); response.sendTemplate("index.ftl",data); } } }catch (Exception e){ //通常是token失效导致的异常返回 response.redirect("/oauth/render"); } }else { response.redirect("/oauth/render"); } } }