Id-Token 模块更名为 Same-Token

This commit is contained in:
click33
2022-10-24 12:25:22 +08:00
parent 00886066e3
commit 2dc0a44dfe
34 changed files with 564 additions and 180 deletions

View File

@@ -1,6 +1,6 @@
package cn.dev33.satoken.context.grpc.constants;
import cn.dev33.satoken.id.SaIdUtil;
import cn.dev33.satoken.same.SaSameUtil;
import cn.dev33.satoken.util.SaTokenConsts;
import io.grpc.Metadata;
@@ -11,8 +11,8 @@ import io.grpc.Metadata;
* @since: 2022/8/26 14:27
*/
public class GrpcContextConstants {
public static final Metadata.Key<String> SA_ID_TOKEN =
Metadata.Key.of(SaIdUtil.ID_TOKEN, Metadata.ASCII_STRING_MARSHALLER);
public static final Metadata.Key<String> SA_SAME_TOKEN =
Metadata.Key.of(SaSameUtil.SAME_TOKEN, Metadata.ASCII_STRING_MARSHALLER);
public static final Metadata.Key<String> SA_JUST_CREATED_NOT_PREFIX =
Metadata.Key.of(SaTokenConsts.JUST_CREATED_NOT_PREFIX, Metadata.ASCII_STRING_MARSHALLER);

View File

@@ -1,14 +1,23 @@
package cn.dev33.satoken.context.grpc.interceptor;
import org.springframework.core.Ordered;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.context.SaTokenContextDefaultImpl;
import cn.dev33.satoken.context.grpc.constants.GrpcContextConstants;
import cn.dev33.satoken.id.SaIdUtil;
import cn.dev33.satoken.same.SaSameUtil;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaFoxUtil;
import io.grpc.*;
import io.grpc.CallOptions;
import io.grpc.Channel;
import io.grpc.ClientCall;
import io.grpc.ClientInterceptor;
import io.grpc.ForwardingClientCall;
import io.grpc.ForwardingClientCallListener;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.Status;
import net.devh.boot.grpc.client.interceptor.GrpcGlobalClientInterceptor;
import org.springframework.core.Ordered;
/**
@@ -26,9 +35,9 @@ public class SaTokenGrpcClientInterceptor implements ClientInterceptor, Ordered
@Override
public void start(Listener<RespT> responseListener, Metadata headers) {
// 追加 Id-Token 参数
if (SaManager.getConfig().getCheckIdToken()) {
headers.put(GrpcContextConstants.SA_ID_TOKEN, SaIdUtil.getToken());
// 追加 Same-Token 参数
if (SaManager.getConfig().getCheckSameToken()) {
headers.put(GrpcContextConstants.SA_SAME_TOKEN, SaSameUtil.getToken());
}
// 调用前传递会话Token

View File

@@ -2,10 +2,15 @@ package cn.dev33.satoken.context.grpc.interceptor;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.context.grpc.constants.GrpcContextConstants;
import cn.dev33.satoken.id.SaIdUtil;
import cn.dev33.satoken.same.SaSameUtil;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaFoxUtil;
import io.grpc.*;
import io.grpc.ForwardingServerCall;
import io.grpc.Metadata;
import io.grpc.ServerCall;
import io.grpc.ServerCallHandler;
import io.grpc.ServerInterceptor;
import io.grpc.Status;
import net.devh.boot.grpc.server.interceptor.GrpcGlobalServerInterceptor;
/**
@@ -19,9 +24,9 @@ public class SaTokenGrpcServerInterceptor implements ServerInterceptor {
@Override
public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) {
// RPC 调用鉴权
if (SaManager.getConfig().getCheckIdToken()) {
String idToken = headers.get(GrpcContextConstants.SA_ID_TOKEN);
SaIdUtil.checkToken(idToken);
if (SaManager.getConfig().getCheckSameToken()) {
String sameToken = headers.get(GrpcContextConstants.SA_SAME_TOKEN);
SaSameUtil.checkToken(sameToken);
}
String tokenFromClient = headers.get(GrpcContextConstants.SA_JUST_CREATED_NOT_PREFIX);
StpUtil.setTokenValue(tokenFromClient);