|
|
@@ -3,9 +3,8 @@ package com.uas.sso.controller;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.uas.message.mail.service.MailService;
|
|
|
import com.uas.message.sms.service.SmsService;
|
|
|
-import com.uas.sso.SSOHelper;
|
|
|
+import com.uas.sso.SSOConfig;
|
|
|
import com.uas.sso.core.Const;
|
|
|
-import com.uas.sso.core.PasswordStrength;
|
|
|
import com.uas.sso.entity.Setting;
|
|
|
import com.uas.sso.entity.Token;
|
|
|
import com.uas.sso.exception.VisibleError;
|
|
|
@@ -27,8 +26,6 @@ import java.io.IOException;
|
|
|
import java.io.PrintWriter;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-import static com.uas.sso.SSOConfig.getSSOProperties;
|
|
|
-
|
|
|
/**
|
|
|
* controller基础类
|
|
|
*
|
|
|
@@ -290,11 +287,15 @@ public class BaseController {
|
|
|
// }
|
|
|
|
|
|
// 判断加密信息是否有误
|
|
|
- String urlMessage = getFrontUrl() + request.getRequestURI() + "?"
|
|
|
- + request.getQueryString().substring(0, request.getQueryString().indexOf("_signature") - 1);
|
|
|
- if (!signature.equals(HmacUtils.encode(urlMessage, accessSecret))) {
|
|
|
- throw new VisibleError("密钥错误");
|
|
|
+ String[] frontUrls = getFrontUrl();
|
|
|
+ for (String frontUrl : frontUrls) {
|
|
|
+ String urlMessage = frontUrl + request.getRequestURI() + "?"
|
|
|
+ + request.getQueryString().substring(0, request.getQueryString().indexOf("_signature") - 1);
|
|
|
+ if (signature.equals(HmacUtils.encode(urlMessage, accessSecret))) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
+ throw new VisibleError("密钥错误");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -335,7 +336,11 @@ public class BaseController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- protected String getFrontUrl() {
|
|
|
- return SSOHelper.getSSOService().getConfig().getSSOProperties().get("sso.front.url");
|
|
|
+ protected String[] getFrontUrl() {
|
|
|
+ System.out.println(request.getHeader("X-Forwarded-Proto"));
|
|
|
+ System.out.println(request.getHeader("X-Forwarded-For"));
|
|
|
+ System.out.println(request.getHeader("X-Forwarded-Host"));
|
|
|
+ String url = SSOConfig.getSSOProperties().get("sso.front.url");
|
|
|
+ return url.split(",");
|
|
|
}
|
|
|
}
|