|
|
|
@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
|
import org.springblade.common.cache.CacheNames; |
|
|
|
|
import org.springblade.common.component.MockLoginService; |
|
|
|
|
import org.springblade.common.constant.LauncherConstant; |
|
|
|
|
import org.springblade.common.exception.CustomerException; |
|
|
|
|
import org.springblade.common.wrapper.CustomHttpServletRequestWrapper; |
|
|
|
@ -34,8 +35,8 @@ import java.util.concurrent.TimeUnit;
|
|
|
|
|
public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapter { |
|
|
|
|
|
|
|
|
|
private final BladeRedis bladeRedis; |
|
|
|
|
private final Environment environment; |
|
|
|
|
private final RedisLockClient redisLockClient; |
|
|
|
|
private final MockLoginService mockLoginService; |
|
|
|
|
@Override |
|
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws CustomerException { |
|
|
|
|
|
|
|
|
@ -49,19 +50,7 @@ public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapt
|
|
|
|
|
if(flag){ |
|
|
|
|
data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); |
|
|
|
|
if(Objects.isNull(data)){ |
|
|
|
|
String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; |
|
|
|
|
HttpRequest urlRequest = HttpRequest.post(url); |
|
|
|
|
urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); |
|
|
|
|
urlRequest.header("Tenant-Id", "627683"); |
|
|
|
|
|
|
|
|
|
Map<String, Object> params = new HashMap<>(); |
|
|
|
|
params.put("grant_type", "local_server"); |
|
|
|
|
params.put("scope", "all"); |
|
|
|
|
params.put("username", account); |
|
|
|
|
params.put("tenantId", "627683"); |
|
|
|
|
HttpResponse execute = urlRequest.form(params).execute(); |
|
|
|
|
String body = execute.body(); |
|
|
|
|
data = JSONObject.parseObject(body); |
|
|
|
|
data = mockLoginService.mockToken("627683",account); |
|
|
|
|
bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); |
|
|
|
|
redisLockClient.unLock("local_server_user", LockType.FAIR); |
|
|
|
|
} |
|
|
|
@ -76,7 +65,7 @@ public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapt
|
|
|
|
|
wrappedRequest.addHeader("Blade-Auth", "bearer "+data.getString("access_token")); |
|
|
|
|
HttpHeaders httpHeaders = new HttpHeaders(); |
|
|
|
|
httpHeaders.add("Blade-Auth","bearer "+data.get("access_token") ); |
|
|
|
|
httpHeaders.add( "Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); |
|
|
|
|
httpHeaders.add( "Authorization", "Basic bG9jYWw6bG9jYWxfc2VjcmV0"); |
|
|
|
|
ThreadLocalUtil.put("bladeContext", httpHeaders); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|