From 62fdbdb8371cb2572d6fb0ca02cd11bdf8ac8098 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Fri, 07 Jun 2024 18:08:49 +0800
Subject: [PATCH] 无权限异常处理
---
blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java | 40 ++++++++++++++++++++++++++++++++--------
1 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java b/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java
index bb02747..8a1e87e 100644
--- a/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java
+++ b/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java
@@ -16,11 +16,13 @@
*/
package org.springblade.auth.endpoint;
+import com.alibaba.fastjson.JSON;
import com.wf.captcha.SpecCaptcha;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.cache.CacheNames;
+import org.springblade.common.utils.HttpClientUtils;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.jwt.JwtUtil;
import org.springblade.core.jwt.props.JwtProperties;
@@ -33,6 +35,8 @@
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.core.tool.utils.WebUtil;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
@@ -47,6 +51,9 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.time.Duration;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.Map;
import static org.springblade.core.cache.constant.CacheConstant.*;
@@ -75,14 +82,31 @@
return model;
}
-// /**
-// * 登录页面
-// */
-// @SneakyThrows
-// @GetMapping("/oauth/login")
-// public void require(HttpServletResponse response) {
-// response.sendRedirect("http://localhost:1888/");
-// }
+ /**
+ * 通过 code 获取 token
+ */
+ @SneakyThrows
+ @GetMapping("/oauth/getTokenByCode")
+ public R require(HttpServletResponse response,String code) {
+ // 设置请求头
+ Map<String, String> headerMap = new HashMap<>();
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ String clientStr = "sword:sword_secret";
+ String encodedString = Base64.getEncoder().encodeToString(clientStr.getBytes());
+ headerMap.put("Authorization", "Basic " + encodedString);
+ // url
+ String url = "http://localhost:8100/oauth/token";
+ // 参数
+ Map<String, String> param = new HashMap<>();
+ param.put("code", code);
+ param.put("grant_type", "authorization_code");
+ param.put("redirect_uri", "http://192.168.1.50:1888");
+ String accessToken = HttpClientUtils.doPost(url,headerMap ,param);
+ System.out.println("accessToken = " + accessToken);
+ Map<String, String> maps = (Map<String, String>) JSON.parse(accessToken);
+ return R.data(maps);
+ }
/**
* 授权页面
--
Gitblit v1.9.3