55 lines
1.8 KiB
Java
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");
|
|
}
|
|
}
|
|
|
|
|
|
}
|