提交 9c3c3424 编写于 作者: Z zhourui

增加可定义token名称

上级 c96d6c47
......@@ -47,6 +47,7 @@ public class Person extends ConfigObject {
public static final String DEFAULT_PASSWORDREGEXHINT = "6位以上,包含数字和字母.";
public static final String DEFAULT_LANGUAGE = "zh-CN";
public static final String DEFAULT_CAPTCHAFONT = "";
public static final String DEFAULT_TOKENNAME = "x-token";
public Person() {
this.captchaLogin = DEFAULT_CAPTCHALOGIN;
......@@ -63,6 +64,7 @@ public class Person extends ConfigObject {
this.tokenCookieHttpOnly = DEFAULT_TOKENCOOKIEHTTPONLY;
this.language = DEFAULT_LANGUAGE;
this.captchaFont = DEFAULT_CAPTCHAFONT;
this.tokenName = DEFAULT_TOKENNAME;
}
public static Person defaultInstance() {
......@@ -119,6 +121,9 @@ public class Person extends ConfigObject {
@FieldDescribe("保存token的cookie是否启用httpOnly")
private Boolean tokenCookieHttpOnly;
@FieldDescribe("使用识别用户的token名称,可自定义,默认为:" + DEFAULT_TOKENNAME + ".")
private String tokenName;
@FieldDescribe("人员组织排序是否为升序,true为升序(默认),false为降序")
private Boolean personUnitOrderByAsc;
......@@ -192,6 +197,10 @@ public class Person extends ConfigObject {
}
public String getTokenName() {
return StringUtils.isBlank(this.tokenName) ? DEFAULT_TOKENNAME : this.tokenName;
}
public Integer getFailureInterval() {
return (NumberTools.nullOrLessThan(this.failureInterval, 0) ? DEFAULT_FAILUREINTERVAL : this.failureInterval);
}
......@@ -341,4 +350,5 @@ public class Person extends ConfigObject {
public void setLanguage(String language) {
this.language = language;
}
}
......@@ -144,7 +144,8 @@ public class WebServers extends ConcurrentSkipListMap<String, WebServer> {
map.put("passwordRegexHint", Config.person().getPasswordRegexHint());
/* 平台语言 */
map.put("language", Config.person().getLanguage());
/* 平台TokenName */
map.put("tokenName", Config.person().getTokenName());
/* RSA */
File publicKeyFile = new File(Config.base(), "config/public.key");
if (publicKeyFile.exists() && publicKeyFile.isFile()) {
......
......@@ -159,7 +159,8 @@ public class CipherConnectionAction {
public static List<NameValuePair> cipher() throws Exception {
EffectivePerson effectivePerson = EffectivePerson.cipher(Config.token().getCipher());
return ListTools.toList(new NameValuePair(HttpToken.X_Token, effectivePerson.getToken()));
// return ListTools.toList(new NameValuePair(HttpToken.X_Token, effectivePerson.getToken()));
return ListTools.toList(new NameValuePair(Config.person().getTokenName(), effectivePerson.getToken()));
}
public static String trim(String uri) {
......
......@@ -17,6 +17,7 @@ import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.x.base.core.project.bean.NameValuePair;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.http.ActionResult.Type;
import com.x.base.core.project.tools.DefaultCharset;
......@@ -39,7 +40,7 @@ public class ConnectionAction {
public static final String ACCESS_CONTROL_ALLOW_CREDENTIALS = "Access-Control-Allow-Credentials";
public static final String ACCESS_CONTROL_ALLOW_CREDENTIALS_VALUE = "true";
public static final String ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers";
public static final String ACCESS_CONTROL_ALLOW_HEADERS_VALUE = "x-requested-with, x-request, x-token,Content-Type, x-cipher, x-client";
public static final String ACCESS_CONTROL_ALLOW_HEADERS_VALUE = "x-requested-with, x-request, Content-Type, x-cipher, x-client";
public static final String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods";
public static final String ACCESS_CONTROL_ALLOW_METHODS_VALUE = "GET, POST, OPTIONS, PUT, DELETE, HEAD, TRACE";
......@@ -399,10 +400,11 @@ public class ConnectionAction {
return bytes;
}
private static void addHeads(HttpURLConnection connection, List<NameValuePair> heads) {
private static void addHeads(HttpURLConnection connection, List<NameValuePair> heads) throws Exception {
Map<String, String> map = new TreeMap<>();
map.put(ACCESS_CONTROL_ALLOW_CREDENTIALS, ACCESS_CONTROL_ALLOW_CREDENTIALS_VALUE);
map.put(ACCESS_CONTROL_ALLOW_HEADERS, ACCESS_CONTROL_ALLOW_HEADERS_VALUE);
map.put(ACCESS_CONTROL_ALLOW_HEADERS,
ACCESS_CONTROL_ALLOW_HEADERS_VALUE + ", " + Config.person().getTokenName());
map.put(ACCESS_CONTROL_ALLOW_METHODS, ACCESS_CONTROL_ALLOW_METHODS_VALUE);
map.put(CACHE_CONTROL, CACHE_CONTROL_VALUE);
map.put(CONTENT_TYPE, CONTENT_TYPE_VALUE);
......@@ -418,10 +420,12 @@ public class ConnectionAction {
map.entrySet().forEach((o -> connection.addRequestProperty(o.getKey(), o.getValue())));
}
private static void addHeadsMultiPart(HttpURLConnection connection, List<NameValuePair> heads, String boundary) {
private static void addHeadsMultiPart(HttpURLConnection connection, List<NameValuePair> heads, String boundary)
throws Exception {
Map<String, String> map = new TreeMap<>();
map.put(ACCESS_CONTROL_ALLOW_CREDENTIALS, ACCESS_CONTROL_ALLOW_CREDENTIALS_VALUE);
map.put(ACCESS_CONTROL_ALLOW_HEADERS, ACCESS_CONTROL_ALLOW_HEADERS_VALUE);
map.put(ACCESS_CONTROL_ALLOW_HEADERS,
ACCESS_CONTROL_ALLOW_HEADERS_VALUE + ", " + Config.person().getTokenName());
map.put(ACCESS_CONTROL_ALLOW_METHODS, ACCESS_CONTROL_ALLOW_METHODS_VALUE);
map.put(CACHE_CONTROL, CACHE_CONTROL_VALUE);
connection.setRequestProperty(CONTENT_TYPE, String.format("multipart/form-data; boundary=%s", boundary));
......
......@@ -18,30 +18,31 @@ import org.apache.commons.lang3.StringUtils;
import com.google.gson.reflect.TypeToken;
import com.x.base.core.project.bean.NameValuePair;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.tools.ListTools;
public class HttpConnection {
public static final String Access_Control_Allow_Credentials = "Access-Control-Allow-Credentials";
public static final String Access_Control_Allow_Credentials_Value = "true";
public static final String Access_Control_Allow_Headers = "Access-Control-Allow-Headers";
public static final String Access_Control_Allow_Headers_Value = "x-requested-with, x-request, x-token,Content-Type, x-cipher";
public static final String Access_Control_Allow_Methods = "Access-Control-Allow-Methods";
public static final String Access_Control_Allow_Methods_Value = "GET, POST, OPTIONS, PUT, DELETE, HEAD, TRACE";
public static final String Cache_Control = "Cache-Control";
public static final String Cache_Control_Value = "no-cache, no-transform";
public static final String Content_Type = "Content-Type";
public static final String Content_Type_Value = "application/json;charset=UTF-8";
public static final String METHOD_POST = "POST";
public static final String METHOD_GET = "GET";
public static final String METHOD_PUT = "PUT";
public static final String METHOD_DELETE = "DELETE";
// public static final String Access_Control_Allow_Credentials = "Access-Control-Allow-Credentials";
// public static final String Access_Control_Allow_Credentials_Value = "true";
// public static final String Access_Control_Allow_Headers = "Access-Control-Allow-Headers";
// public static final String Access_Control_Allow_Headers_Value = "x-requested-with, x-request, x-token,Content-Type, x-cipher";
// public static final String Access_Control_Allow_Methods = "Access-Control-Allow-Methods";
// public static final String Access_Control_Allow_Methods_Value = "GET, POST, OPTIONS, PUT, DELETE, HEAD, TRACE";
// public static final String Cache_Control = "Cache-Control";
// public static final String Cache_Control_Value = "no-cache, no-transform";
// public static final String Content_Type = "Content-Type";
// public static final String Content_Type_Value = "application/json;charset=UTF-8";
//
// public static final String METHOD_POST = "POST";
// public static final String METHOD_GET = "GET";
// public static final String METHOD_PUT = "PUT";
// public static final String METHOD_DELETE = "DELETE";
public static String getAsString(String address, List<NameValuePair> heads) throws Exception {
HttpURLConnection connection = prepare(address, heads);
connection.setRequestMethod(METHOD_GET);
connection.setRequestMethod(ConnectionAction.METHOD_GET);
connection.setDoOutput(false);
connection.setDoInput(true);
String str = readResultString(connection);
......@@ -63,7 +64,7 @@ public class HttpConnection {
public static String postAsString(String address, List<NameValuePair> heads, String body) throws Exception {
HttpURLConnection connection = prepare(address, heads);
connection.setRequestMethod(METHOD_POST);
connection.setRequestMethod(ConnectionAction.METHOD_POST);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.connect();
......@@ -89,7 +90,7 @@ public class HttpConnection {
public static String putAsString(String address, List<NameValuePair> heads, String body) throws Exception {
HttpURLConnection connection = prepare(address, heads);
connection.setRequestMethod(METHOD_PUT);
connection.setRequestMethod(ConnectionAction.METHOD_PUT);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.connect();
......@@ -115,7 +116,7 @@ public class HttpConnection {
public static String deleteAsString(String address, List<NameValuePair> heads) throws Exception {
HttpURLConnection connection = prepare(address, heads);
connection.setRequestMethod(METHOD_DELETE);
connection.setRequestMethod(ConnectionAction.METHOD_DELETE);
connection.setDoOutput(false);
connection.setDoInput(true);
String str = readResultString(connection);
......@@ -141,11 +142,13 @@ public class HttpConnection {
HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection();
httpUrlConnection.setUseCaches(false);
Map<String, String> map = new HashMap<>();
map.put(Access_Control_Allow_Credentials, Access_Control_Allow_Credentials_Value);
map.put(Access_Control_Allow_Headers, Access_Control_Allow_Headers_Value);
map.put(Access_Control_Allow_Methods, Access_Control_Allow_Methods_Value);
map.put(Cache_Control, Cache_Control_Value);
map.put(Content_Type, Content_Type_Value);
map.put(ConnectionAction.ACCESS_CONTROL_ALLOW_CREDENTIALS,
ConnectionAction.ACCESS_CONTROL_ALLOW_CREDENTIALS_VALUE);
map.put(ConnectionAction.ACCESS_CONTROL_ALLOW_HEADERS,
ConnectionAction.ACCESS_CONTROL_ALLOW_HEADERS_VALUE + ", " + Config.person().getTokenName());
map.put(ConnectionAction.ACCESS_CONTROL_ALLOW_METHODS, ConnectionAction.ACCESS_CONTROL_ALLOW_METHODS_VALUE);
map.put(ConnectionAction.CACHE_CONTROL, ConnectionAction.CACHE_CONTROL_VALUE);
map.put(ConnectionAction.CONTENT_TYPE, ConnectionAction.CONTENT_TYPE_VALUE);
for (NameValuePair o : ListTools.nullToEmpty(heads)) {
map.put(o.getName(), Objects.toString(o.getValue()));
}
......
......@@ -5,6 +5,8 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import com.x.base.core.project.config.Config;
public class FilterTools {
public static final String Access_Control_Allow_Origin = "Access-Control-Allow-Origin";
......@@ -12,7 +14,7 @@ public class FilterTools {
public static final String Access_Control_Allow_Methods = "Access-Control-Allow-Methods";
public static final String Access_Control_Allow_Methods_Value = "GET, POST, OPTIONS, PUT, DELETE, HEAD, TRACE";
public static final String Access_Control_Allow_Headers = "Access-Control-Allow-Headers";
public static final String Access_Control_Allow_Headers_Value = "x-requested-with, x-request, x-token, c-token, Content-Type, Content-Length, x-cipher, x-client, x-debugger, Authorization, P-User-Id, P-Request-Id, P-Page-Id";
public static final String Access_Control_Allow_Headers_Value = "x-requested-with, x-request, c-token, Content-Type, Content-Length, x-cipher, x-client, x-debugger, Authorization, P-User-Id, P-Request-Id, P-Page-Id";
public static final String Access_Control_Allow_Credentials = "Access-Control-Allow-Credentials";
public static final String Access_Control_Expose_Headers = "Access-Control-Expose-Headers";
public static final String Access_Control_Max_Age = "Access-Control-Max-Age";
......@@ -22,9 +24,10 @@ public class FilterTools {
String origin = request.getHeader(ORIGIN);
response.addHeader(Access_Control_Allow_Origin, StringUtils.isBlank(origin) ? "*" : origin);
response.addHeader(Access_Control_Allow_Methods, Access_Control_Allow_Methods_Value);
response.addHeader(Access_Control_Allow_Headers, Access_Control_Allow_Headers_Value);
response.addHeader(Access_Control_Allow_Headers,
Access_Control_Allow_Headers_Value + ", " + Config.person().getTokenName());
response.addHeader(Access_Control_Allow_Credentials, "true");
response.setHeader(Access_Control_Expose_Headers, "x-token, c-token");
response.setHeader(Access_Control_Expose_Headers, "c-token" + ", " + Config.person().getTokenName());
response.setHeader(Access_Control_Max_Age, Access_Control_Max_Age_Value);
}
......
......@@ -27,7 +27,7 @@ public class HttpToken {
private static Logger logger = LoggerFactory.getLogger(HttpToken.class);
public static final String X_Token = "x-token";
// public static final String X_Token = "x-token";
public static final String X_Authorization = "authorization";
public static final String X_Person = "x-person";
public static final String X_Client = "x-client";
......@@ -99,7 +99,8 @@ public class HttpToken {
try {
// String cookie = X_Token + "=; path=/; domain=" +
// this.domain(request) + "; max-age=0
String cookie = X_Token + "=" + COOKIE_ANONYMOUS_VALUE + "; path=/; domain=" + this.domain(request)
String cookie = Config.person().getTokenName() + "=" + COOKIE_ANONYMOUS_VALUE + "; path=/; domain="
+ this.domain(request)
+ (BooleanUtils.isTrue(Config.person().getTokenCookieHttpOnly()) ? "; HttpOnly" : "");
response.setHeader(SET_COOKIE, cookie);
} catch (Exception e) {
......@@ -129,10 +130,11 @@ public class HttpToken {
private void setResponseToken(HttpServletRequest request, HttpServletResponse response,
EffectivePerson effectivePerson) throws Exception {
if (!StringUtils.isEmpty(effectivePerson.getToken())) {
String cookie = X_Token + "=" + effectivePerson.getToken() + "; path=/; domain=" + this.domain(request)
String cookie = Config.person().getTokenName() + "=" + effectivePerson.getToken() + "; path=/; domain="
+ this.domain(request)
+ (BooleanUtils.isTrue(Config.person().getTokenCookieHttpOnly()) ? "; HttpOnly" : "");
response.setHeader(SET_COOKIE, cookie);
response.setHeader(X_Token, effectivePerson.getToken());
response.setHeader(Config.person().getTokenName(), effectivePerson.getToken());
}
}
......@@ -148,11 +150,11 @@ public class HttpToken {
public String getToken(HttpServletRequest request) throws Exception {
String token = null;
token = URLTools.getQueryStringParameter(request.getQueryString(), X_Token);
token = URLTools.getQueryStringParameter(request.getQueryString(), Config.person().getTokenName());
if (StringUtils.isEmpty(token)) {
if (null != request.getCookies()) {
for (Cookie c : request.getCookies()) {
if (StringUtils.equals(X_Token, c.getName())) {
if (StringUtils.equals(Config.person().getTokenName(), c.getName())) {
token = c.getValue();
break;
}
......@@ -160,10 +162,10 @@ public class HttpToken {
}
}
if (StringUtils.isEmpty(token)) {
token = request.getHeader(X_Token);
token = request.getHeader(Config.person().getTokenName());
}
if (StringUtils.isEmpty(token)) {
//如果使用oauth bearer 通过此传递认证信息.需要进行判断,格式为 Bearer xxxxxxx
// 如果使用oauth bearer 通过此传递认证信息.需要进行判断,格式为 Bearer xxxxxxx
String value = request.getHeader(X_Authorization);
if (!StringUtils.contains(value, " ")) {
token = value;
......
......@@ -35,13 +35,13 @@ public class ActionConfig extends ActionBase {
@SuppressWarnings("deprecation")
private byte[] getZip() throws Exception {
String address =Config.url_x_program_center_jaxrs("config");
String address = Config.url_x_program_center_jaxrs("config");
URL url = new URL(address);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type", HttpMediaType.APPLICATION_JSON_UTF_8);
EffectivePerson effectivePerson = EffectivePerson.cipher(Config.token().getCipher());
connection.setRequestProperty(HttpToken.X_Token, effectivePerson.getToken());
connection.setRequestProperty(Config.person().getTokenName(), effectivePerson.getToken());
connection.setRequestMethod("GET");
connection.setDoOutput(false);
connection.setDoInput(true);
......
......@@ -27,7 +27,7 @@ public class WsConfigurator extends ServerEndpointConfig.Configurator {
private EffectivePerson getEffectivePerson(HandshakeRequest request) {
try {
List<String> list = request.getParameterMap().get(HttpToken.X_Token);
List<String> list = request.getParameterMap().get(Config.person().getTokenName());
String token = null;
if (ListTools.isNotEmpty(list)) {
token = list.get(0);
......
......@@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils;
import com.x.base.core.project.bean.NameValuePair;
import com.x.base.core.project.connection.CipherConnectionAction;
import com.x.base.core.project.connection.ConnectionAction;
import com.x.base.core.project.connection.HttpConnection;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
......@@ -59,7 +60,7 @@ public class InvokeExecutor {
.toString();
} else {
List<NameValuePair> heads = new ArrayList<>();
heads.add(new NameValuePair(HttpConnection.Content_Type, jaxrsObject.getContentType()));
heads.add(new NameValuePair(ConnectionAction.CONTENT_TYPE, jaxrsObject.getContentType()));
if (null != jaxrsObject.getHead()) {
for (Entry<String, String> entry : jaxrsObject.getHead().entrySet()) {
heads.add(new NameValuePair(entry.getKey(), entry.getValue()));
......@@ -80,7 +81,7 @@ public class InvokeExecutor {
.toString();
} else {
List<NameValuePair> heads = new ArrayList<>();
heads.add(new NameValuePair(HttpConnection.Content_Type, jaxrsObject.getContentType()));
heads.add(new NameValuePair(ConnectionAction.CONTENT_TYPE, jaxrsObject.getContentType()));
if (null != jaxrsObject.getHead()) {
for (Entry<String, String> entry : jaxrsObject.getHead().entrySet()) {
heads.add(new NameValuePair(entry.getKey(), entry.getValue()));
......@@ -100,7 +101,7 @@ public class InvokeExecutor {
return CipherConnectionAction.get(true, jaxrsObject.getAddress()).getData().toString();
} else {
List<NameValuePair> heads = new ArrayList<>();
heads.add(new NameValuePair(HttpConnection.Content_Type, jaxrsObject.getContentType()));
heads.add(new NameValuePair(ConnectionAction.CONTENT_TYPE, jaxrsObject.getContentType()));
if (null != jaxrsObject.getHead()) {
for (Entry<String, String> entry : jaxrsObject.getHead().entrySet()) {
heads.add(new NameValuePair(entry.getKey(), entry.getValue()));
......@@ -120,7 +121,7 @@ public class InvokeExecutor {
return CipherConnectionAction.delete(true, jaxrsObject.getAddress()).getData().toString();
} else {
List<NameValuePair> heads = new ArrayList<>();
heads.add(new NameValuePair(HttpConnection.Content_Type, jaxrsObject.getContentType()));
heads.add(new NameValuePair(ConnectionAction.CONTENT_TYPE, jaxrsObject.getContentType()));
if (null != jaxrsObject.getHead()) {
for (Entry<String, String> entry : jaxrsObject.getHead().entrySet()) {
heads.add(new NameValuePair(entry.getKey(), entry.getValue()));
......
......@@ -18,7 +18,7 @@ import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.project.Application;
import com.x.base.core.project.connection.ActionResponse;
import com.x.base.core.project.connection.CipherConnectionAction;
import com.x.base.core.project.connection.HttpConnection;
import com.x.base.core.project.connection.ConnectionAction;
import com.x.base.core.project.exception.RunningException;
import com.x.base.core.project.http.ActionResult.Type;
import com.x.base.core.project.logger.Logger;
......@@ -142,16 +142,16 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
Class<?> clz = Class.forName("com.x.base.core.project." + invoke.getInternalProject());
String uri = this.jaxrsUrl(aeiObjects, invoke);
switch (StringUtils.upperCase(invoke.getJaxrsMethod())) {
case HttpConnection.METHOD_POST:
case ConnectionAction.METHOD_POST:
resp = jaxrsInternalPost(aeiObjects, invoke, clz, uri);
break;
case HttpConnection.METHOD_PUT:
case ConnectionAction.METHOD_PUT:
resp = jaxrsInternalPut(aeiObjects, invoke, clz, uri);
break;
case HttpConnection.METHOD_GET:
case ConnectionAction.METHOD_GET:
resp = jaxrsInternalGet(aeiObjects, invoke, clz, uri);
break;
case HttpConnection.METHOD_DELETE:
case ConnectionAction.METHOD_DELETE:
resp = jaxrsInternalDelete(aeiObjects, invoke, clz, uri);
break;
case "head":
......@@ -196,7 +196,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
jaxrsObject
.setAddress(StringTools.JoinUrl(application.getUrlJaxrsRoot() + CipherConnectionAction.trim(uri)));
jaxrsObject.setInternal(invoke.getInternal());
jaxrsObject.setMethod(HttpConnection.METHOD_DELETE);
jaxrsObject.setMethod(ConnectionAction.METHOD_DELETE);
jaxrsObject.setContentType(invoke.getJaxrsContentType());
ThisApplication.syncJaxrsInvokeQueue.send(jaxrsObject);
} else {
......@@ -213,7 +213,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
jaxrsObject
.setAddress(StringTools.JoinUrl(application.getUrlJaxrsRoot() + CipherConnectionAction.trim(uri)));
jaxrsObject.setInternal(invoke.getInternal());
jaxrsObject.setMethod(HttpConnection.METHOD_GET);
jaxrsObject.setMethod(ConnectionAction.METHOD_GET);
jaxrsObject.setContentType(invoke.getJaxrsContentType());
ThisApplication.syncJaxrsInvokeQueue.send(jaxrsObject);
} else {
......@@ -232,7 +232,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
.setAddress(StringTools.JoinUrl(application.getUrlJaxrsRoot() + CipherConnectionAction.trim(uri)));
jaxrsObject.setBody(body);
jaxrsObject.setInternal(invoke.getInternal());
jaxrsObject.setMethod(HttpConnection.METHOD_PUT);
jaxrsObject.setMethod(ConnectionAction.METHOD_PUT);
jaxrsObject.setContentType(invoke.getJaxrsContentType());
ThisApplication.syncJaxrsInvokeQueue.send(jaxrsObject);
} else {
......@@ -251,7 +251,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
.setAddress(StringTools.JoinUrl(application.getUrlJaxrsRoot() + CipherConnectionAction.trim(uri)));
jaxrsObject.setBody(body);
jaxrsObject.setInternal(invoke.getInternal());
jaxrsObject.setMethod(HttpConnection.METHOD_POST);
jaxrsObject.setMethod(ConnectionAction.METHOD_POST);
jaxrsObject.setContentType(invoke.getJaxrsContentType());
ThisApplication.syncJaxrsInvokeQueue.send(jaxrsObject);
} else {
......@@ -266,16 +266,16 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
JaxrsObject jaxrsObject = new JaxrsObject();
jaxrsObject.setHead(this.jaxrsEvalHead(aeiObjects, invoke));
switch (StringUtils.upperCase(invoke.getJaxrsMethod())) {
case HttpConnection.METHOD_POST:
case ConnectionAction.METHOD_POST:
result = jaxrsExternalPost(aeiObjects, invoke, uri, jaxrsObject);
break;
case HttpConnection.METHOD_PUT:
case ConnectionAction.METHOD_PUT:
result = jaxrsExternalPut(aeiObjects, invoke, uri, jaxrsObject);
break;
case HttpConnection.METHOD_GET:
case ConnectionAction.METHOD_GET:
result = jaxrsExternalGet(aeiObjects, invoke, uri, jaxrsObject);
break;
case HttpConnection.METHOD_DELETE:
case ConnectionAction.METHOD_DELETE:
result = jaxrsExternalDelete(aeiObjects, invoke, uri, jaxrsObject);
break;
case "head":
......@@ -311,7 +311,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
private String jaxrsExternalDelete(AeiObjects aeiObjects, Invoke invoke, String address, JaxrsObject jaxrsObject)
throws Exception {
jaxrsObject.setMethod(HttpConnection.METHOD_DELETE);
jaxrsObject.setMethod(ConnectionAction.METHOD_DELETE);
jaxrsObject.setInternal(false);
jaxrsObject.setAddress(address);
jaxrsObject.setContentType(invoke.getJaxrsContentType());
......@@ -326,7 +326,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
private String jaxrsExternalGet(AeiObjects aeiObjects, Invoke invoke, String address, JaxrsObject jaxrsObject)
throws Exception {
jaxrsObject.setMethod(HttpConnection.METHOD_GET);
jaxrsObject.setMethod(ConnectionAction.METHOD_GET);
jaxrsObject.setInternal(false);
jaxrsObject.setAddress(address);
jaxrsObject.setContentType(invoke.getJaxrsContentType());
......@@ -342,7 +342,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
private String jaxrsExternalPut(AeiObjects aeiObjects, Invoke invoke, String address, JaxrsObject jaxrsObject)
throws Exception {
String body = this.jaxrsEvalBody(aeiObjects, invoke);
jaxrsObject.setMethod(HttpConnection.METHOD_PUT);
jaxrsObject.setMethod(ConnectionAction.METHOD_PUT);
jaxrsObject.setInternal(false);
jaxrsObject.setAddress(address);
jaxrsObject.setBody(body);
......@@ -359,7 +359,7 @@ public class InvokeProcessor extends AbstractInvokeProcessor {
private String jaxrsExternalPost(AeiObjects aeiObjects, Invoke invoke, String address, JaxrsObject jaxrsObject)
throws Exception {
String body = this.jaxrsEvalBody(aeiObjects, invoke);
jaxrsObject.setMethod(HttpConnection.METHOD_POST);
jaxrsObject.setMethod(ConnectionAction.METHOD_POST);
jaxrsObject.setInternal(false);
jaxrsObject.setAddress(address);
jaxrsObject.setBody(body);
......
......@@ -10,10 +10,10 @@ import com.x.base.core.project.Application;
import com.x.base.core.project.Applications;
import com.x.base.core.project.x_organization_assemble_authentication;
import com.x.base.core.project.bean.NameValuePair;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.connection.HttpConnection;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.http.HttpToken;
import com.x.program.center.ThisApplication;
class ActionWho extends BaseAction {
......@@ -25,7 +25,7 @@ class ActionWho extends BaseAction {
.randomWithWeight(x_organization_assemble_authentication.class.getName());
if (app != null) {
List<NameValuePair> heads = new ArrayList<>();
heads.add(new NameValuePair(HttpToken.X_Token, token));
heads.add(new NameValuePair(Config.person().getTokenName(), token));
JsonElement jsonElement = HttpConnection.getAsObject(
app.getUrlJaxrsRoot() + Applications.joinQueryUri("authentication"), heads, JsonElement.class);
result.setData(jsonElement);
......
package com.x.program.center.jaxrs.warnlog;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import com.google.gson.reflect.TypeToken;
import com.x.base.core.project.bean.NameValuePair;
import com.x.base.core.project.cache.Cache.CacheCategory;
......@@ -12,17 +23,10 @@ import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.http.HttpToken;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.Crypto;
import com.x.base.core.project.tools.ListTools;
import org.apache.commons.lang3.StringUtils;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import java.util.*;
class ActionGetSystemLog extends BaseAction {
......@@ -33,31 +37,34 @@ class ActionGetSystemLog extends BaseAction {
List<Wo> woList = new ArrayList<>();
String key = effectivePerson.getDistinguishedName();
if(key.indexOf("@") > -1){
if (key.indexOf("@") > -1) {
key = key.split("@")[1] + tag;
}
if(Config.node().equals(Config.resource_node_centersPirmaryNode())){
if (Config.node().equals(Config.resource_node_centersPirmaryNode())) {
woList = getSystemLog(key);
}else{
List<NameValuePair> headers = ListTools.toList(new NameValuePair(HttpToken.X_Token, effectivePerson.getToken()));
woList = ConnectionAction.get(Config.url_x_program_center_jaxrs("warnlog", "view", "system", "log", "tag", tag), headers).getDataAsList(Wo.class);
} else {
List<NameValuePair> headers = ListTools
.toList(new NameValuePair(Config.person().getTokenName(), effectivePerson.getToken()));
woList = ConnectionAction
.get(Config.url_x_program_center_jaxrs("warnlog", "view", "system", "log", "tag", tag), headers)
.getDataAsList(Wo.class);
}
result.setData(woList);
return result;
}
synchronized private List<Wo> getSystemLog(String key) throws Exception{
synchronized private List<Wo> getSystemLog(String key) throws Exception {
Nodes nodes = Config.nodes();
List<Wo> allLogs = new ArrayList<>();
for (String node : nodes.keySet()){
if(nodes.get(node).getApplication().getEnable() || nodes.get(node).getCenter().getEnable()){
for (String node : nodes.keySet()) {
if (nodes.get(node).getApplication().getEnable() || nodes.get(node).getCenter().getEnable()) {
try (Socket socket = new Socket(node, nodes.get(node).nodeAgentPort())) {
socket.setKeepAlive(true);
socket.setSoTimeout(5000);
try (DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
DataInputStream dis = new DataInputStream(socket.getInputStream())){
DataInputStream dis = new DataInputStream(socket.getInputStream())) {
Map<String, Object> commandObject = new HashMap<>();
commandObject.put("command", "readLog:readLog");
commandObject.put("credential", Crypto.rsaEncrypt("o2@", Config.publicKey()));
......@@ -77,19 +84,21 @@ class ActionGetSystemLog extends BaseAction {
dos.writeLong(lastPoint);
dos.flush();
//logger.debug("socket dispatch getSystemLog to {}:{} lastPoint={}", node, nodes.get(node).nodeAgentPort(), lastPoint);
// logger.debug("socket dispatch getSystemLog to {}:{} lastPoint={}", node,
// nodes.get(node).nodeAgentPort(), lastPoint);
String result = dis.readUTF();
if(StringUtils.isNotEmpty(result) && result.startsWith("[")){
List<Wo> list = gson.fromJson(result, new TypeToken<List<Wo>>(){}.getType());
if (StringUtils.isNotEmpty(result) && result.startsWith("[")) {
List<Wo> list = gson.fromJson(result, new TypeToken<List<Wo>>() {
}.getType());
allLogs.addAll(list);
long returnLastPoint = dis.readLong();
if(clo==null){
if (clo == null) {
clo = new CacheLogObject();
clo.setUserToken(key);
clo.setNode(node);
clo.setLastPoint(returnLastPoint);
}else{
} else {
clo.setLastPoint(returnLastPoint);
}
CacheManager.put(cacheCategory, cacheKey, clo);
......@@ -97,7 +106,8 @@ class ActionGetSystemLog extends BaseAction {
}
} catch (Exception ex) {
logger.warn("socket dispatch getSystemLog to {}:{} error={}", node, nodes.get(node).nodeAgentPort(), ex.getMessage());
logger.warn("socket dispatch getSystemLog to {}:{} error={}", node, nodes.get(node).nodeAgentPort(),
ex.getMessage());
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册