2025-08-26 16:25:14 +08:00

55 lines
1.8 KiB
Java

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<SsoUserAppVO> center = authRequest.center(authToken);
if (center.ok()) {
Map<String, Object> 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");
}
}
}