Browse Source

远程设计token登录兼容新版本

master
jiany 11 months ago
parent
commit
af5ad24bf0
  1. 2
      plugin.xml
  2. 13
      src/main/java/com/fr/plugin/decision/integration/filter/RemoteFilter.java
  3. 3
      src/main/java/com/fr/plugin/decision/integration/filter/RequestSsoFilter.java

2
plugin.xml

@ -4,7 +4,7 @@
<name><![CDATA[登录集成插件]]></name>
<active>yes</active>
<hidden>no</hidden>
<version>1.0.28</version>
<version>1.0.30</version>
<env-version>10.0~</env-version>
<jartime>2019-1-31</jartime>
<vendor>JianYe.Wang</vendor>

13
src/main/java/com/fr/plugin/decision/integration/filter/RemoteFilter.java

@ -3,6 +3,7 @@ package com.fr.plugin.decision.integration.filter;
import com.fr.data.NetworkHelper;
import com.fr.decision.fun.impl.AbstractEmbedRequestFilterProvider;
import com.fr.decision.webservice.Response;
import com.fr.decision.webservice.v10.remote.RemoteDesignService;
import com.fr.invoke.Reflect;
import com.fr.plugin.decision.integration.config.IntegrateConf;
import com.fr.plugin.decision.integration.service.IntegrateAuthService;
@ -50,12 +51,20 @@ public class RemoteFilter extends AbstractEmbedRequestFilterProvider {
if (StringUtils.isNotBlank(username) && StringUtils.equals(token_user, username)) {
try {
String token = JwtUtils.createDefaultJWT(username);
StateHubService stateHubService = Reflect.on("com.fr.decision.webservice.v10.remote.RemoteDesignStatusService").call("loginStatusService").get();
stateHubService.put(token, username, 1209600000);
recordToken(token, username);
WebUtils.printAsString(response, new ObjectMapper().writeValueAsString(Response.ok(token)));
} catch (Exception e) {
LogUtils.error(e.getMessage(), e);
}
}
}
private void recordToken(String token, String username) throws Exception {
try {
Reflect.on(RemoteDesignService.getInstance()).call("recordTokenStatus", username, token);
} catch (Exception e) {
StateHubService stateHubService = Reflect.on("com.fr.decision.webservice.v10.remote.RemoteDesignStatusService").call("loginStatusService").get();
stateHubService.put(token, username, 1209600000);
}
}
}

3
src/main/java/com/fr/plugin/decision/integration/filter/RequestSsoFilter.java

@ -8,6 +8,7 @@ import com.fr.plugin.decision.integration.service.IntegrateAuthService;
import com.fr.plugin.decision.integration.utils.CommonUtils;
import com.fr.plugin.decision.integration.utils.LogUtils;
import com.fr.stable.StringUtils;
import com.fr.third.jodd.net.URLCoder;
import com.fr.web.utils.WebUtils;
import javax.servlet.ServletException;
@ -59,7 +60,7 @@ public class RequestSsoFilter extends AbstractEmbedRequestFilterProvider {
String frToken = doLoginFR(request, response, userName);
String redirect = WebUtils.getOriginalURL(request).replaceAll("third_token=[^&]*", "fine_auth_token=" + frToken);
LogUtils.info("Request is mobile, now will redirect to:{}", redirect);
response.sendRedirect(redirect);
response.sendRedirect(URLCoder.encodeUri(redirect));
return;
} else {
String curUserName = LoginService.getInstance().getCurrentUserNameFromRequestCookie(request);

Loading…
Cancel
Save