50 lines
1.8 KiB
Java
50 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.core.server.util.JsonResult;
|
|
import cn.hserver.plugin.web.annotation.Controller;
|
|
import cn.hserver.plugin.web.annotation.RequestMapping;
|
|
import cn.hserver.plugin.web.interfaces.HttpRequest;
|
|
import cn.hserver.plugin.web.interfaces.HttpResponse;
|
|
import com.lktx.center.config.Data;
|
|
import com.lktx.center.config.SsoAuthRequest;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import me.zhyd.oauth.model.AuthCallback;
|
|
import me.zhyd.oauth.model.AuthResponse;
|
|
import me.zhyd.oauth.model.AuthToken;
|
|
import me.zhyd.oauth.model.AuthUser;
|
|
import me.zhyd.oauth.utils.AuthStateUtils;
|
|
|
|
@Slf4j
|
|
@Controller("/oauth")
|
|
public class RestAuthController {
|
|
|
|
@Autowired
|
|
private SsoAuthRequest authRequest;
|
|
|
|
@RequestMapping("/render")
|
|
public void renderAuth(HttpResponse response) {
|
|
String authorize = authRequest.authorize(AuthStateUtils.createState());
|
|
response.redirect(authorize);
|
|
}
|
|
|
|
@RequestMapping("/callback")
|
|
public JsonResult login(AuthCallback callback, HttpRequest request) {
|
|
try {
|
|
String rawData = request.getRawData();
|
|
System.out.println(rawData);
|
|
AuthResponse<AuthUser> login = authRequest.login(callback);
|
|
AuthUser data = login.getData();
|
|
AuthToken token = login.getData().getToken();
|
|
StpUtil.login(login.getData().getUuid());
|
|
SaSession session = StpUtil.getSession();
|
|
session.set(Data.AuthToken, token);
|
|
return JsonResult.ok().put("data", data);
|
|
}catch (Exception e) {
|
|
log.error("login error",e);
|
|
}
|
|
return JsonResult.error();
|
|
}
|
|
} |