18 changed files with 1405 additions and 1 deletions
@ -1,3 +1,6 @@ |
|||||||
# open-JSD-9305 |
# open-JSD-9305 |
||||||
|
|
||||||
JSD-9305 CAS单点情况下放行部分报表请求 |
JSD-9305 CAS单点情况下放行部分报表请求\ |
||||||
|
免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\ |
||||||
|
仅作为开发者学习参考使用!禁止用于任何商业用途!\ |
||||||
|
为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。 |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,14 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><plugin> |
||||||
|
<id>com.fr.plugin.logins</id> |
||||||
|
<name><![CDATA[单点登录]]></name> |
||||||
|
<active>yes</active> |
||||||
|
<version>1.6.0</version> |
||||||
|
<env-version>10.0</env-version> |
||||||
|
<jartime>2018-07-31</jartime> |
||||||
|
<vendor>fr.open</vendor> |
||||||
|
<extra-decision> |
||||||
|
<GlobalRequestFilterProvider class="com.fr.plugin.cg.login.LoginRequestFilter"/> |
||||||
|
<!--<LogInOutEventProvider class="com.fr.plugin.cg.login.LogInOutEventProvider"/>--> |
||||||
|
</extra-decision> |
||||||
|
<function-recorder class="com.fr.plugin.cg.login.LoginRequestFilter"/> |
||||||
|
</plugin> |
@ -0,0 +1,18 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login; |
||||||
|
|
||||||
|
public class Constants { |
||||||
|
public static final String PLUGIN_ID = "com.fr.plugin.cg.login"; |
||||||
|
|
||||||
|
public Constants() { |
||||||
|
} |
||||||
|
|
||||||
|
public interface GrantType { |
||||||
|
String AUTHORIZATION_CODE = "authorization_code"; |
||||||
|
String REFRESH_TOKEN = "refresh_token"; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,201 @@ |
|||||||
|
package com.fr.plugin.cg.login; |
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.fr.decision.fun.impl.AbstractGlobalRequestFilterProvider; |
||||||
|
import com.fr.intelli.record.Focus; |
||||||
|
import com.fr.intelli.record.Original; |
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
import com.fr.plugin.cg.login.utils.FilterHelper; |
||||||
|
import com.fr.plugin.cg.login.utils.HttpClientUtils; |
||||||
|
import com.fr.plugin.cg.login.utils.JsonRootBean; |
||||||
|
import com.fr.plugin.cg.login.utils.Util; |
||||||
|
import com.fr.record.analyzer.EnableMetrics; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
import com.fr.web.utils.WebUtils; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
import javax.servlet.FilterChain; |
||||||
|
import javax.servlet.FilterConfig; |
||||||
|
import javax.servlet.ServletException; |
||||||
|
import javax.servlet.http.Cookie; |
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
@EnableMetrics |
||||||
|
public class LoginRequestFilter extends AbstractGlobalRequestFilterProvider { |
||||||
|
public LoginRequestFilter() { |
||||||
|
} |
||||||
|
|
||||||
|
public void init(FilterConfig var1) { |
||||||
|
} |
||||||
|
|
||||||
|
public String filterName() { |
||||||
|
return "LoginRequestFilter"; |
||||||
|
} |
||||||
|
|
||||||
|
public String[] urlPatterns() { |
||||||
|
return new String[]{"/*"}; |
||||||
|
} |
||||||
|
|
||||||
|
@Focus( |
||||||
|
id = "com.fr.plugin.cg.login", |
||||||
|
text = "单点登录", |
||||||
|
source = Original.PLUGIN |
||||||
|
) |
||||||
|
public void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain filterChain) { |
||||||
|
res.setHeader("Access-Control-Allow-Origin", "*"); |
||||||
|
res.setHeader("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); |
||||||
|
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept, X-Requested-With, clientType"); |
||||||
|
String token = req.getParameter("uaaToken"); |
||||||
|
FilterHelper helper = new FilterHelper(); |
||||||
|
String redirectUrl = Util.SendRedirect; |
||||||
|
String loginUserUrl; |
||||||
|
String apiResp; |
||||||
|
if (StringUtils.isNotEmpty(token)) { |
||||||
|
loginUserUrl = Util.BaseUrl + "oauth/token/validity"; |
||||||
|
FineLoggerFactory.getLogger().debug("uaaTOken url:" + loginUserUrl); |
||||||
|
apiResp = ""; |
||||||
|
|
||||||
|
try { |
||||||
|
apiResp = HttpClientUtils.doPostJson(loginUserUrl, token, null); |
||||||
|
} catch (Exception var19) { |
||||||
|
} |
||||||
|
|
||||||
|
FineLoggerFactory.getLogger().debug("rtnStr:" + apiResp); |
||||||
|
if (StringUtils.contains(apiResp,"true") ) { |
||||||
|
loginUserUrl = Util.UserUrl + "acc/org/login-user"; |
||||||
|
Map<String,String> var9 = new HashMap(); |
||||||
|
var9.put("Authorization", "Bearer " + token); |
||||||
|
FineLoggerFactory.getLogger().debug("Authorization:Bearer " + token); |
||||||
|
String userJson = HttpClientUtils.get(loginUserUrl, null, var9); |
||||||
|
FineLoggerFactory.getLogger().info("Login user resp json:" + userJson); |
||||||
|
if (StringUtils.isEmpty(userJson)) { |
||||||
|
try { |
||||||
|
res.sendRedirect(redirectUrl); |
||||||
|
} catch (Exception var18) { |
||||||
|
FineLoggerFactory.getLogger().info(var18.getMessage()); |
||||||
|
} |
||||||
|
} else { |
||||||
|
JsonRootBean userBean = JSON.parseObject(userJson, JsonRootBean.class); |
||||||
|
//如果用户扩展信息不包含bi平台就单点去登陆地址??
|
||||||
|
if (!userBean.getUserExtInfo().getSsoSystems().contains("biplatform")) { |
||||||
|
try { |
||||||
|
res.sendRedirect(redirectUrl); |
||||||
|
} catch (Exception var17) { |
||||||
|
FineLoggerFactory.getLogger().info(var17.getMessage()); |
||||||
|
} |
||||||
|
} else { |
||||||
|
String username = userBean.getUserInfo().getUsername(); |
||||||
|
|
||||||
|
try { |
||||||
|
req.getSession().setAttribute("account", username); |
||||||
|
FilterHelper.login(username, req, res); |
||||||
|
String goUrl = helper.decisionForwarding(req, res, username); |
||||||
|
if (StringUtils.isNotEmpty(goUrl)) { |
||||||
|
res.sendRedirect(goUrl); |
||||||
|
return; |
||||||
|
} |
||||||
|
filterChain.doFilter(req, res); |
||||||
|
return; |
||||||
|
} catch (Exception var23) { |
||||||
|
FineLoggerFactory.getLogger().info(var23.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
try { |
||||||
|
res.sendRedirect(redirectUrl); |
||||||
|
} catch (Exception var16) { |
||||||
|
FineLoggerFactory.getLogger().error("跳转异常:", var16); |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
loginUserUrl = (String) req.getSession().getAttribute("account"); |
||||||
|
if (StringUtils.isNotBlank(loginUserUrl)) { |
||||||
|
try { |
||||||
|
apiResp = helper.decisionForwarding(req, res, loginUserUrl); |
||||||
|
FilterHelper.login(loginUserUrl, req, res); |
||||||
|
if (StringUtils.isNotEmpty(apiResp)) { |
||||||
|
res.sendRedirect(apiResp); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
filterChain.doFilter(req, res); |
||||||
|
return; |
||||||
|
} catch (Exception var22) { |
||||||
|
FineLoggerFactory.getLogger().info(var22.getMessage()); |
||||||
|
} |
||||||
|
} else { |
||||||
|
String screenDisplay = WebUtils.getHTTPRequestParameter(req, "screenDisplay"); |
||||||
|
if (StringUtils.equals(screenDisplay, "true")) { |
||||||
|
try { |
||||||
|
Cookie cookie = new Cookie("screenDisplay", "true"); |
||||||
|
cookie.setMaxAge(-1); |
||||||
|
res.addCookie(cookie); |
||||||
|
filterChain.doFilter(req, res); |
||||||
|
return; |
||||||
|
} catch (ServletException | IOException var21) { |
||||||
|
FineLoggerFactory.getLogger().error("请求放行出错!", var21); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Cookie[] cookies = req.getCookies(); |
||||||
|
Cookie[] var27 = cookies; |
||||||
|
int var28 = cookies.length; |
||||||
|
|
||||||
|
for (int var29 = 0; var29 < var28; ++var29) { |
||||||
|
Cookie c = var27[var29]; |
||||||
|
if (c.getName().equals("screenDisplay")) { |
||||||
|
screenDisplay = c.getValue(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ( StringUtils.equals(screenDisplay,"true")) { |
||||||
|
FineLoggerFactory.getLogger().info("有cookie放行地址 " + req.getRequestURL()); |
||||||
|
try { |
||||||
|
filterChain.doFilter(req, res); |
||||||
|
return; |
||||||
|
} catch (ServletException | IOException var20) { |
||||||
|
FineLoggerFactory.getLogger().error("请求放行出错!", var20); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
try { |
||||||
|
//只有需要拦截的地址才拦截,否则全部放行
|
||||||
|
if(needFilter(req)){ |
||||||
|
res.sendRedirect(redirectUrl); |
||||||
|
}else{ |
||||||
|
filterChain.doFilter(req, res); |
||||||
|
return; |
||||||
|
} |
||||||
|
} catch (Exception var15) { |
||||||
|
FineLoggerFactory.getLogger().info(var15.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private boolean needFilter(HttpServletRequest request) { |
||||||
|
String requestURI = request.getRequestURI(); |
||||||
|
if (StringUtils.isNotBlank(requestURI) && request.getMethod().equals("GET")) { |
||||||
|
if (requestURI.endsWith("decision")) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
if (requestURI.endsWith("/view/form") || requestURI.endsWith("/view/report")) { |
||||||
|
if (StringUtils.isNotBlank(request.getParameter("viewlet"))) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
if (requestURI.contains("/v10/entry/access/") && request.getMethod().equals("GET")) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
if (requestURI.contains("/v5/design/report") && (requestURI.endsWith("/edit")|| requestURI.endsWith("/view"))) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,162 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
import com.fr.data.NetworkHelper; |
||||||
|
import com.fr.decision.authority.data.User; |
||||||
|
import com.fr.decision.mobile.terminal.TerminalHandler; |
||||||
|
import com.fr.decision.webservice.exception.user.UserNotExistException; |
||||||
|
import com.fr.decision.webservice.v10.login.LoginService; |
||||||
|
import com.fr.decision.webservice.v10.login.TokenResource; |
||||||
|
import com.fr.decision.webservice.v10.user.UserService; |
||||||
|
import com.fr.general.ComparatorUtils; |
||||||
|
import com.fr.io.utils.ResourceIOUtils; |
||||||
|
import com.fr.json.JSONObject; |
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
import com.fr.security.JwtUtils; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
import com.fr.stable.web.Device; |
||||||
|
import com.fr.web.utils.WebUtils; |
||||||
|
import java.io.File; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.PrintWriter; |
||||||
|
import java.util.Properties; |
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import javax.servlet.http.HttpSession; |
||||||
|
|
||||||
|
public class FilterHelper { |
||||||
|
public OracleJdbcTest oracleJdbcTest = new OracleJdbcTest(); |
||||||
|
public static String Sql = null; |
||||||
|
public static String Sqls = null; |
||||||
|
private static final String[] RELEASE_PATH; |
||||||
|
|
||||||
|
public FilterHelper() { |
||||||
|
} |
||||||
|
|
||||||
|
public String decisionForwarding(HttpServletRequest request, HttpServletResponse response, String userId) throws IOException { |
||||||
|
response.setCharacterEncoding("utf-8"); |
||||||
|
response.setHeader("Content-type", "text/html;charset=UTF-8"); |
||||||
|
String sysname = request.getParameter("sysname"); |
||||||
|
String syslocal = request.getParameter("syslocal"); |
||||||
|
if (!StringUtils.isEmpty(sysname) && !StringUtils.isEmpty(syslocal) && !StringUtils.isEmpty(userId)) { |
||||||
|
String var6 = ""; |
||||||
|
String sql1 = Sql + "'" + syslocal + "' and SYS_NAME ='" + sysname + "' AND USER_ID ='" + userId + "'"; |
||||||
|
String sql2 = Sqls + " AND USER_ID ='" + userId + "'"; |
||||||
|
var6 = this.oracleJdbcTest.queryStri(sql1, true); |
||||||
|
if (StringUtils.isNotEmpty(var6)) { |
||||||
|
return var6; |
||||||
|
} else { |
||||||
|
var6 = this.oracleJdbcTest.queryStri(sql2, true); |
||||||
|
if (StringUtils.isEmpty(var6)) { |
||||||
|
FineLoggerFactory.getLogger().info("找不到数据"); |
||||||
|
return ""; |
||||||
|
} else { |
||||||
|
FineLoggerFactory.getLogger().info("显示当前的跳转界面" + var6); |
||||||
|
return var6; |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
// FineLoggerFactory.getLogger().info("放回的数据为空");
|
||||||
|
return ""; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static void printMessage(HttpServletResponse var0, String var1, String var2) throws IOException { |
||||||
|
var0.setCharacterEncoding("utf-8"); |
||||||
|
var0.setHeader("Content-type", "text/html;charset=UTF-8"); |
||||||
|
JSONObject var3 = JSONObject.create(); |
||||||
|
var3.put("code", var1); |
||||||
|
var3.put("error", var2); |
||||||
|
PrintWriter var4 = WebUtils.createPrintWriter(var0); |
||||||
|
var4.println(var3.toString()); |
||||||
|
var4.flush(); |
||||||
|
var4.close(); |
||||||
|
} |
||||||
|
|
||||||
|
public static void logout(HttpServletRequest var0, HttpServletResponse var1) throws Exception { |
||||||
|
String var2 = TokenResource.HEADER.getToken(var0); |
||||||
|
if (StringUtils.isNotEmpty(var2)) { |
||||||
|
} |
||||||
|
|
||||||
|
HttpSession var3 = var0.getSession(true); |
||||||
|
var3.removeAttribute("_cas_logout_"); |
||||||
|
var3.removeAttribute("authorizationInfo"); |
||||||
|
var3.removeAttribute("fine_auth_token"); |
||||||
|
var3.invalidate(); |
||||||
|
FineLoggerFactory.getLogger().info("登出成功"); |
||||||
|
} |
||||||
|
|
||||||
|
public static boolean isRelease(HttpServletRequest var0) { |
||||||
|
String var1 = WebUtils.getOriginalURL(var0); |
||||||
|
String[] var2 = RELEASE_PATH; |
||||||
|
int var3 = var2.length; |
||||||
|
|
||||||
|
for(int var4 = 0; var4 < var3; ++var4) { |
||||||
|
String var5 = var2[var4]; |
||||||
|
if (var1.contains(var5)) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
public static void login(String var0, HttpServletRequest var1, HttpServletResponse var2) throws Exception { |
||||||
|
User var3 = UserService.getInstance().getUserByUserName(var0); |
||||||
|
if (var3 == null) { |
||||||
|
throw new UserNotExistException(); |
||||||
|
} else { |
||||||
|
String var4 = LoginService.getInstance().login(var1, var2, var0); |
||||||
|
var1.setAttribute("fine_auth_token", var4); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static boolean isRemote(HttpServletRequest var0) { |
||||||
|
return var0.getRequestURL().toString().contains("decision/remote/design"); |
||||||
|
} |
||||||
|
|
||||||
|
public static boolean isOptions(HttpServletRequest var0) { |
||||||
|
FineLoggerFactory.getLogger().info("request method OPTIONS, url: " + WebUtils.getOriginalURL(var0)); |
||||||
|
return StringUtils.equalsIgnoreCase(var0.getMethod(), "OPTIONS"); |
||||||
|
} |
||||||
|
|
||||||
|
public static boolean checkTokenValid(HttpServletRequest var0, String var1, String var2) { |
||||||
|
try { |
||||||
|
if (!ComparatorUtils.equals(var2, JwtUtils.parseJWT(var1).getSubject())) { |
||||||
|
FineLoggerFactory.getLogger().info("username changed:" + var2); |
||||||
|
return false; |
||||||
|
} else { |
||||||
|
Device var3 = NetworkHelper.getDevice(var0); |
||||||
|
LoginService.getInstance().loginStatusValid(var1, TerminalHandler.getTerminal(var0, var3)); |
||||||
|
return true; |
||||||
|
} |
||||||
|
} catch (Exception var4) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static { |
||||||
|
Properties var0 = new Properties(); |
||||||
|
|
||||||
|
try { |
||||||
|
String var1 = ResourceIOUtils.getRealPath("sso.properties"); |
||||||
|
FineLoggerFactory.getLogger().info("filepath:" + var1); |
||||||
|
System.out.println(var1); |
||||||
|
var0.load(new FileInputStream(new File(var1))); |
||||||
|
} catch (IOException var2) { |
||||||
|
FineLoggerFactory.getLogger().info("外部调用文件有误"); |
||||||
|
var2.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
Sql = var0.getProperty("Sql"); |
||||||
|
FineLoggerFactory.getLogger().info("Sql:" + Sql); |
||||||
|
Sqls = var0.getProperty("Sqls"); |
||||||
|
FineLoggerFactory.getLogger().info("Sqls:" + Sqls); |
||||||
|
RELEASE_PATH = new String[]{"decision/file?path", "decision/resources?path", "decision/view/form?op=emb", "decision/view/form?op=resource"}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
public class HexEncoder { |
||||||
|
public HexEncoder() { |
||||||
|
} |
||||||
|
|
||||||
|
public static String bytesToHex(byte[] var0) { |
||||||
|
StringBuffer var1 = new StringBuffer(); |
||||||
|
|
||||||
|
for(int var2 = 0; var2 < var0.length; ++var2) { |
||||||
|
String var3 = Integer.toHexString(var0[var2] & 255); |
||||||
|
if (var3.length() < 2) { |
||||||
|
var1.append(0); |
||||||
|
} |
||||||
|
|
||||||
|
var1.append(var3); |
||||||
|
} |
||||||
|
|
||||||
|
return var1.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
public static byte[] hexToByteArray(String var0) { |
||||||
|
int var1 = var0.length(); |
||||||
|
byte[] var2; |
||||||
|
if (var1 % 2 == 1) { |
||||||
|
++var1; |
||||||
|
var2 = new byte[var1 / 2]; |
||||||
|
var0 = "0" + var0; |
||||||
|
} else { |
||||||
|
var2 = new byte[var1 / 2]; |
||||||
|
} |
||||||
|
|
||||||
|
int var3 = 0; |
||||||
|
|
||||||
|
for(int var4 = 0; var4 < var1; var4 += 2) { |
||||||
|
var2[var3] = (byte)Integer.parseInt(var0.substring(var4, var4 + 2), 16); |
||||||
|
++var3; |
||||||
|
} |
||||||
|
|
||||||
|
return var2; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,310 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
import com.fr.third.org.apache.http.Consts; |
||||||
|
import com.fr.third.org.apache.http.HeaderIterator; |
||||||
|
import com.fr.third.org.apache.http.HttpEntity; |
||||||
|
import com.fr.third.org.apache.http.HttpResponse; |
||||||
|
import com.fr.third.org.apache.http.ParseException; |
||||||
|
import com.fr.third.org.apache.http.client.config.RequestConfig; |
||||||
|
import com.fr.third.org.apache.http.client.entity.UrlEncodedFormEntity; |
||||||
|
import com.fr.third.org.apache.http.client.methods.CloseableHttpResponse; |
||||||
|
import com.fr.third.org.apache.http.client.methods.HttpGet; |
||||||
|
import com.fr.third.org.apache.http.client.methods.HttpPost; |
||||||
|
import com.fr.third.org.apache.http.client.utils.URIBuilder; |
||||||
|
import com.fr.third.org.apache.http.config.Registry; |
||||||
|
import com.fr.third.org.apache.http.config.RegistryBuilder; |
||||||
|
import com.fr.third.org.apache.http.conn.socket.PlainConnectionSocketFactory; |
||||||
|
import com.fr.third.org.apache.http.conn.ssl.NoopHostnameVerifier; |
||||||
|
import com.fr.third.org.apache.http.conn.ssl.SSLConnectionSocketFactory; |
||||||
|
import com.fr.third.org.apache.http.conn.ssl.TrustStrategy; |
||||||
|
import com.fr.third.org.apache.http.entity.StringEntity; |
||||||
|
import com.fr.third.org.apache.http.impl.client.CloseableHttpClient; |
||||||
|
import com.fr.third.org.apache.http.impl.client.HttpClients; |
||||||
|
import com.fr.third.org.apache.http.impl.conn.PoolingHttpClientConnectionManager; |
||||||
|
import com.fr.third.org.apache.http.message.BasicNameValuePair; |
||||||
|
import com.fr.third.org.apache.http.ssl.SSLContextBuilder; |
||||||
|
import com.fr.third.org.apache.http.util.EntityUtils; |
||||||
|
import java.io.IOException; |
||||||
|
import java.net.URI; |
||||||
|
import java.security.KeyStore; |
||||||
|
import java.security.cert.CertificateException; |
||||||
|
import java.security.cert.X509Certificate; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Iterator; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Map.Entry; |
||||||
|
import org.apache.commons.collections.MapUtils; |
||||||
|
|
||||||
|
public class HttpClientUtils { |
||||||
|
private static final Integer CONNECTION_TIMEOUT = 5000; |
||||||
|
private static final Integer SO_TIMEOUT = 20000; |
||||||
|
private static final Integer CONN_MANAGER_TIMEOUT = 500; |
||||||
|
private static final String http = "http"; |
||||||
|
private static final String https = "https"; |
||||||
|
private static SSLConnectionSocketFactory sslsf = null; |
||||||
|
private static PoolingHttpClientConnectionManager cm = null; |
||||||
|
private static SSLContextBuilder builder = null; |
||||||
|
|
||||||
|
public HttpClientUtils() { |
||||||
|
} |
||||||
|
|
||||||
|
public static String doPostJson(String var0, String var1, String var2) throws Exception { |
||||||
|
CloseableHttpClient var3 = HttpClients.createDefault(); |
||||||
|
CloseableHttpResponse var4 = null; |
||||||
|
String var5 = ""; |
||||||
|
|
||||||
|
try { |
||||||
|
HttpPost var6 = new HttpPost(var0); |
||||||
|
var6.setHeader("HTTP Method", "POST"); |
||||||
|
var6.setHeader("Connection", "Keep-Alive"); |
||||||
|
var6.setHeader("Content-Type", "application/json;charset=utf-8"); |
||||||
|
var6.setHeader("x-authentication-token", var2); |
||||||
|
StringEntity var7 = new StringEntity(var1); |
||||||
|
var7.setContentType("application/json;charset=utf-8"); |
||||||
|
var6.setEntity(var7); |
||||||
|
var4 = var3.execute(var6); |
||||||
|
System.out.println(var4.getStatusLine().getStatusCode()); |
||||||
|
if (var4.getStatusLine().getStatusCode() == 200) { |
||||||
|
var5 = EntityUtils.toString(var4.getEntity(), "UTF-8"); |
||||||
|
System.out.println(var5); |
||||||
|
} |
||||||
|
} catch (Exception var15) { |
||||||
|
throw var15; |
||||||
|
} finally { |
||||||
|
try { |
||||||
|
if (var4 != null) { |
||||||
|
var4.close(); |
||||||
|
} |
||||||
|
} catch (IOException var14) { |
||||||
|
var14.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
return var5; |
||||||
|
} |
||||||
|
|
||||||
|
public static String doGet(String var0, Map<String, String> var1) { |
||||||
|
CloseableHttpClient var2 = HttpClients.createDefault(); |
||||||
|
String var3 = ""; |
||||||
|
CloseableHttpResponse var4 = null; |
||||||
|
|
||||||
|
try { |
||||||
|
URIBuilder var5 = new URIBuilder(var0); |
||||||
|
if (var1 != null) { |
||||||
|
Iterator var6 = var1.keySet().iterator(); |
||||||
|
|
||||||
|
while(var6.hasNext()) { |
||||||
|
String var7 = (String)var6.next(); |
||||||
|
var5.addParameter(var7, (String)var1.get(var7)); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
URI var18 = var5.build(); |
||||||
|
HttpGet var19 = new HttpGet(var18); |
||||||
|
var4 = var2.execute(var19); |
||||||
|
if (var4.getStatusLine().getStatusCode() == 200) { |
||||||
|
var3 = EntityUtils.toString(var4.getEntity(), "UTF-8"); |
||||||
|
} |
||||||
|
} catch (Exception var16) { |
||||||
|
var16.printStackTrace(); |
||||||
|
} finally { |
||||||
|
try { |
||||||
|
if (var4 != null) { |
||||||
|
var4.close(); |
||||||
|
} |
||||||
|
|
||||||
|
var2.close(); |
||||||
|
} catch (IOException var15) { |
||||||
|
var15.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
return var3; |
||||||
|
} |
||||||
|
|
||||||
|
public static String post(String var0, Map<String, String> var1, Map<String, String> var2, HttpEntity var3) { |
||||||
|
String var4 = ""; |
||||||
|
CloseableHttpClient var5 = null; |
||||||
|
CloseableHttpResponse var6 = null; |
||||||
|
HttpEntity var7 = null; |
||||||
|
|
||||||
|
try { |
||||||
|
var5 = getHttpClient(); |
||||||
|
HttpPost var8 = new HttpPost(var0); |
||||||
|
if (MapUtils.isNotEmpty(var2)) { |
||||||
|
Iterator var9 = var2.entrySet().iterator(); |
||||||
|
|
||||||
|
while(var9.hasNext()) { |
||||||
|
Entry var10 = (Entry)var9.next(); |
||||||
|
var8.addHeader((String)var10.getKey(), (String)var10.getValue()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ArrayList var20 = new ArrayList(); |
||||||
|
if (MapUtils.isNotEmpty(var1)) { |
||||||
|
Iterator var17 = var1.entrySet().iterator(); |
||||||
|
|
||||||
|
while(var17.hasNext()) { |
||||||
|
Entry var11 = (Entry)var17.next(); |
||||||
|
var20.add(new BasicNameValuePair((String)var11.getKey(), (String)var11.getValue())); |
||||||
|
} |
||||||
|
|
||||||
|
UrlEncodedFormEntity var18 = new UrlEncodedFormEntity(var20, Consts.UTF_8); |
||||||
|
var8.setEntity(var18); |
||||||
|
} |
||||||
|
|
||||||
|
if (var3 != null) { |
||||||
|
var8.setEntity(var3); |
||||||
|
} |
||||||
|
|
||||||
|
var6 = var5.execute(var8); |
||||||
|
FineLoggerFactory.getLogger().info("创建请求httpPost-URL={},params={}", new Object[]{var0, var20}); |
||||||
|
int var19 = var6.getStatusLine().getStatusCode(); |
||||||
|
if (var19 == 200) { |
||||||
|
var7 = var6.getEntity(); |
||||||
|
System.out.println(var7); |
||||||
|
var4 = EntityUtils.toString(var7); |
||||||
|
} else { |
||||||
|
readHttpResponse(var6); |
||||||
|
} |
||||||
|
} catch (Exception var15) { |
||||||
|
FineLoggerFactory.getLogger().error("请求发送失败:", var15); |
||||||
|
throw new RuntimeException("请求发送失败,URL:" + var0 + ",params:" + var1); |
||||||
|
} finally { |
||||||
|
closeConnection(var5, var6, var7); |
||||||
|
} |
||||||
|
|
||||||
|
return var4; |
||||||
|
} |
||||||
|
|
||||||
|
public static String get(String var0, Map<String, String> var1, Map<String, String> var2) { |
||||||
|
String var3 = ""; |
||||||
|
CloseableHttpClient var4 = null; |
||||||
|
CloseableHttpResponse var5 = null; |
||||||
|
HttpEntity var6 = null; |
||||||
|
|
||||||
|
try { |
||||||
|
HttpGet var7 = null; |
||||||
|
ArrayList var8 = new ArrayList(); |
||||||
|
Iterator var9; |
||||||
|
Entry var10; |
||||||
|
if (MapUtils.isNotEmpty(var1)) { |
||||||
|
var9 = var1.entrySet().iterator(); |
||||||
|
|
||||||
|
while(var9.hasNext()) { |
||||||
|
var10 = (Entry)var9.next(); |
||||||
|
var8.add(new BasicNameValuePair((String)var10.getKey(), (String)var10.getValue())); |
||||||
|
} |
||||||
|
|
||||||
|
UrlEncodedFormEntity var16 = new UrlEncodedFormEntity(var8, Consts.UTF_8); |
||||||
|
var0 = var0 + "?" + EntityUtils.toString(var16); |
||||||
|
} |
||||||
|
|
||||||
|
var7 = new HttpGet(var0); |
||||||
|
if (MapUtils.isNotEmpty(var2)) { |
||||||
|
var9 = var2.entrySet().iterator(); |
||||||
|
|
||||||
|
while(var9.hasNext()) { |
||||||
|
var10 = (Entry)var9.next(); |
||||||
|
var7.addHeader((String)var10.getKey(), (String)var10.getValue()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
var4 = getHttpClient(); |
||||||
|
var5 = var4.execute(var7); |
||||||
|
FineLoggerFactory.getLogger().info("创建请求http get请求,URL={}", new Object[]{var0}); |
||||||
|
int var17 = var5.getStatusLine().getStatusCode(); |
||||||
|
if (var17 == 200) { |
||||||
|
var6 = var5.getEntity(); |
||||||
|
var3 = EntityUtils.toString(var6); |
||||||
|
} else { |
||||||
|
readHttpResponse(var5); |
||||||
|
} |
||||||
|
} catch (Exception var14) { |
||||||
|
FineLoggerFactory.getLogger().error("请求发送失败:", var14); |
||||||
|
throw new RuntimeException("请求发送失败,URL:" + var0 + ",params:" + var1); |
||||||
|
} finally { |
||||||
|
closeConnection(var4, var5, var6); |
||||||
|
} |
||||||
|
|
||||||
|
return var3; |
||||||
|
} |
||||||
|
|
||||||
|
public static CloseableHttpClient getHttpClient() { |
||||||
|
return HttpClients.custom().setSSLSocketFactory(sslsf).setConnectionManager(cm).setConnectionManagerShared(true).setDefaultRequestConfig(RequestConfig.custom().setConnectTimeout(CONNECTION_TIMEOUT).setConnectionRequestTimeout(CONN_MANAGER_TIMEOUT).setSocketTimeout(SO_TIMEOUT).build()).build(); |
||||||
|
} |
||||||
|
|
||||||
|
public static String readHttpResponse(HttpResponse var0) throws ParseException, IOException { |
||||||
|
StringBuilder var1 = new StringBuilder(); |
||||||
|
HttpEntity var2 = var0.getEntity(); |
||||||
|
var1.append("status:" + var0.getStatusLine()); |
||||||
|
var1.append("headers:"); |
||||||
|
HeaderIterator var3 = var0.headerIterator(); |
||||||
|
|
||||||
|
while(var3.hasNext()) { |
||||||
|
var1.append("\t" + var3.next()); |
||||||
|
} |
||||||
|
|
||||||
|
if (var2 != null) { |
||||||
|
String var4 = EntityUtils.toString(var2); |
||||||
|
var1.append("response length:" + var4.length()); |
||||||
|
var1.append("response content:" + var4.replace("\r\n", "")); |
||||||
|
} |
||||||
|
|
||||||
|
return var1.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
public static void closeConnection(CloseableHttpClient var0, HttpResponse var1, HttpEntity var2) { |
||||||
|
if (var2 != null) { |
||||||
|
try { |
||||||
|
EntityUtils.consume(var2); |
||||||
|
} catch (IOException var6) { |
||||||
|
FineLoggerFactory.getLogger().error("关闭HttpEntity出错:{}", new Object[]{var6.getMessage()}); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (var1 != null) { |
||||||
|
try { |
||||||
|
((CloseableHttpResponse)var1).close(); |
||||||
|
} catch (IOException var5) { |
||||||
|
FineLoggerFactory.getLogger().error("关闭HttpResponse出错:{}", new Object[]{var5.getMessage()}); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (var0 != null) { |
||||||
|
try { |
||||||
|
var0.close(); |
||||||
|
} catch (IOException var4) { |
||||||
|
FineLoggerFactory.getLogger().error("关闭HttpClient出错:{}", new Object[]{var4.getMessage()}); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
static { |
||||||
|
try { |
||||||
|
builder = new SSLContextBuilder(); |
||||||
|
builder.loadTrustMaterial((KeyStore)null, new TrustStrategy() { |
||||||
|
public boolean isTrusted(X509Certificate[] var1, String var2) throws CertificateException { |
||||||
|
return true; |
||||||
|
} |
||||||
|
}); |
||||||
|
sslsf = new SSLConnectionSocketFactory(builder.build(), new String[]{"TLSv1"}, (String[])null, NoopHostnameVerifier.INSTANCE); |
||||||
|
Registry var0 = RegistryBuilder.create().register("http", new PlainConnectionSocketFactory()).register("https", sslsf).build(); |
||||||
|
cm = new PoolingHttpClientConnectionManager(var0); |
||||||
|
cm.setMaxTotal(200); |
||||||
|
cm.setDefaultMaxPerRoute(20); |
||||||
|
} catch (Exception var1) { |
||||||
|
FineLoggerFactory.getLogger().error("HttpClientUtils 初始化失败", var1); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
public class JsonRootBean { |
||||||
|
private UserInfo userInfo; |
||||||
|
private OrgUser orgUser; |
||||||
|
private UserExtInfo userExtInfo; |
||||||
|
|
||||||
|
public JsonRootBean() { |
||||||
|
} |
||||||
|
|
||||||
|
public UserInfo getUserInfo() { |
||||||
|
return this.userInfo; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUserInfo(UserInfo var1) { |
||||||
|
this.userInfo = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setOrgUser(OrgUser var1) { |
||||||
|
this.orgUser = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUserExtInfo(UserExtInfo var1) { |
||||||
|
this.userExtInfo = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public OrgUser getOrgUser() { |
||||||
|
return this.orgUser; |
||||||
|
} |
||||||
|
|
||||||
|
public UserExtInfo getUserExtInfo() { |
||||||
|
return this.userExtInfo; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,115 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
import com.fr.io.utils.ResourceIOUtils; |
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
import java.io.File; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.sql.Connection; |
||||||
|
import java.sql.DriverManager; |
||||||
|
import java.sql.PreparedStatement; |
||||||
|
import java.sql.ResultSet; |
||||||
|
import java.sql.SQLException; |
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
public class OracleJdbcTest { |
||||||
|
private static Connection conn = null; |
||||||
|
private static String orcalUrl = null; |
||||||
|
private static String orcalName = null; |
||||||
|
private static String user = null; |
||||||
|
private static String password = null; |
||||||
|
private static String path = null; |
||||||
|
|
||||||
|
public OracleJdbcTest() { |
||||||
|
} |
||||||
|
|
||||||
|
private static synchronized Connection getConn() { |
||||||
|
if (conn == null) { |
||||||
|
try { |
||||||
|
Class.forName(orcalName); |
||||||
|
conn = DriverManager.getConnection(orcalUrl, user, password); |
||||||
|
} catch (ClassNotFoundException var1) { |
||||||
|
var1.printStackTrace(); |
||||||
|
FineLoggerFactory.getLogger().error("sql数据库连接处错:1" + var1.getMessage()); |
||||||
|
} catch (SQLException var2) { |
||||||
|
var2.printStackTrace(); |
||||||
|
FineLoggerFactory.getLogger().error("sql数据库连接处错:2" + var2.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return conn; |
||||||
|
} |
||||||
|
|
||||||
|
public String queryStri(String var1, boolean var2) { |
||||||
|
String REPORT_URL = ""; |
||||||
|
// FineLoggerFactory.getLogger().error("filepath:" + path);
|
||||||
|
// FineLoggerFactory.getLogger().error("orcalUrl:" + orcalUrl);
|
||||||
|
// FineLoggerFactory.getLogger().error("orcalName:" + orcalName);
|
||||||
|
// FineLoggerFactory.getLogger().error("user:" + user);
|
||||||
|
// FineLoggerFactory.getLogger().error("password:" + password);
|
||||||
|
// FineLoggerFactory.getLogger().error("》》》》");
|
||||||
|
|
||||||
|
try { |
||||||
|
PreparedStatement var3 = getConn().prepareStatement(var1); |
||||||
|
|
||||||
|
ResultSet var5; |
||||||
|
for(var5 = var3.executeQuery(); var5.next(); REPORT_URL = var5.getString("REPORT_URL")) { |
||||||
|
} |
||||||
|
|
||||||
|
var5.close(); |
||||||
|
var3.close(); |
||||||
|
return REPORT_URL; |
||||||
|
} catch (SQLException var6) { |
||||||
|
FineLoggerFactory.getLogger().error("显示返回的地址" , var6); |
||||||
|
return REPORT_URL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void query(String var1) { |
||||||
|
try { |
||||||
|
PreparedStatement var2 = getConn().prepareStatement(var1); |
||||||
|
var2.execute(); |
||||||
|
var2.close(); |
||||||
|
} catch (SQLException var4) { |
||||||
|
var4.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public void close() { |
||||||
|
try { |
||||||
|
getConn().close(); |
||||||
|
} catch (SQLException var2) { |
||||||
|
var2.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
static { |
||||||
|
Properties var0 = new Properties(); |
||||||
|
|
||||||
|
try { |
||||||
|
path = ResourceIOUtils.getRealPath("sso.properties"); |
||||||
|
FineLoggerFactory.getLogger().error("filepath:" + path); |
||||||
|
System.out.println(path); |
||||||
|
var0.load(new FileInputStream(new File(path))); |
||||||
|
} catch (IOException var2) { |
||||||
|
FineLoggerFactory.getLogger().error("外部调用文件有误"); |
||||||
|
var2.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
orcalUrl = var0.getProperty("orcalUrl"); |
||||||
|
FineLoggerFactory.getLogger().info("orcalUrl:" + orcalUrl); |
||||||
|
orcalName = var0.getProperty("orcalName"); |
||||||
|
FineLoggerFactory.getLogger().info("orcalName :" + orcalName); |
||||||
|
user = var0.getProperty("user"); |
||||||
|
FineLoggerFactory.getLogger().info("user :" + user); |
||||||
|
password = var0.getProperty("password"); |
||||||
|
FineLoggerFactory.getLogger().info("password:" + password); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
public class OrgUser { |
||||||
|
private int id; |
||||||
|
private int orgId; |
||||||
|
private int userId; |
||||||
|
private int groupId; |
||||||
|
private int roleId; |
||||||
|
private String photo; |
||||||
|
private int tempUnit; |
||||||
|
|
||||||
|
public OrgUser() { |
||||||
|
} |
||||||
|
|
||||||
|
public int getId() { |
||||||
|
return this.id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(int var1) { |
||||||
|
this.id = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setOrgId(int var1) { |
||||||
|
this.orgId = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUserId(int var1) { |
||||||
|
this.userId = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setGroupId(int var1) { |
||||||
|
this.groupId = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setRoleId(int var1) { |
||||||
|
this.roleId = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPhoto(String var1) { |
||||||
|
this.photo = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTempUnit(int var1) { |
||||||
|
this.tempUnit = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public int getOrgId() { |
||||||
|
return this.orgId; |
||||||
|
} |
||||||
|
|
||||||
|
public int getUserId() { |
||||||
|
return this.userId; |
||||||
|
} |
||||||
|
|
||||||
|
public int getGroupId() { |
||||||
|
return this.groupId; |
||||||
|
} |
||||||
|
|
||||||
|
public int getRoleId() { |
||||||
|
return this.roleId; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPhoto() { |
||||||
|
return this.photo; |
||||||
|
} |
||||||
|
|
||||||
|
public int getTempUnit() { |
||||||
|
return this.tempUnit; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,66 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
import java.util.Arrays; |
||||||
|
|
||||||
|
public class RC4 { |
||||||
|
private final byte[] s = new byte[256]; |
||||||
|
private int x = 96483; |
||||||
|
private int y = 276492749; |
||||||
|
|
||||||
|
public RC4(byte[] var1) { |
||||||
|
int var2; |
||||||
|
for(var2 = 0; var2 < 256; ++var2) { |
||||||
|
this.s[var2] = (byte)var2; |
||||||
|
} |
||||||
|
|
||||||
|
var2 = 0; |
||||||
|
|
||||||
|
for(int var3 = 0; var2 < 256; ++var2) { |
||||||
|
var3 = var3 + (this.s[var2] & 255) + (var1[var2 % var1.length] & 255) & 255; |
||||||
|
byte var4 = this.s[var2]; |
||||||
|
this.s[var2] = this.s[var3]; |
||||||
|
this.s[var3] = var4; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public int encrypt(byte[] var1, int var2, byte[] var3, int var4, int var5) { |
||||||
|
int var6 = this.x; |
||||||
|
int var7 = this.y; |
||||||
|
byte[] var8 = Arrays.copyOf(this.s, this.s.length); |
||||||
|
|
||||||
|
for(int var9 = 0; var9 < var5; ++var9) { |
||||||
|
var6 = var6 + 1 & 255; |
||||||
|
var7 = var7 + (var8[var6] & 255) & 255; |
||||||
|
byte var10 = var8[var6]; |
||||||
|
var8[var6] = var8[var7]; |
||||||
|
var8[var7] = var10; |
||||||
|
int var11 = (var8[var6] & 255) + (var8[var7] & 255) & 255; |
||||||
|
byte var12 = var8[var11]; |
||||||
|
var3[var4 + var9] = (byte)(var1[var2 + var9] & 255 ^ var12); |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
public int decrypt(byte[] var1, int var2, byte[] var3, int var4, int var5) { |
||||||
|
return this.encrypt(var1, var2, var3, var4, var5); |
||||||
|
} |
||||||
|
|
||||||
|
public byte[] encrypt(byte[] var1) { |
||||||
|
byte[] var2 = new byte[var1.length]; |
||||||
|
this.encrypt(var1, 0, var2, 0, var1.length); |
||||||
|
return var2; |
||||||
|
} |
||||||
|
|
||||||
|
public byte[] decrypt(byte[] var1) { |
||||||
|
byte[] var2 = new byte[var1.length]; |
||||||
|
this.decrypt(var1, 0, var2, 0, var1.length); |
||||||
|
return var2; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
|
||||||
|
public class SecureHelper { |
||||||
|
private static final String ENCODE = "UTF-8"; |
||||||
|
private static final String KEY_TIMESTAMP = "timestamp"; |
||||||
|
private static final String KEY_MESSAGE = "message"; |
||||||
|
private static final long TIME_OUT_REQUEST = 30000L; |
||||||
|
|
||||||
|
public SecureHelper() { |
||||||
|
} |
||||||
|
|
||||||
|
public static String decryptAndVerify(String var0, String var1) { |
||||||
|
try { |
||||||
|
RC4 var2 = new RC4(var1.getBytes("UTF-8")); |
||||||
|
byte[] var3 = var2.decrypt(HexEncoder.hexToByteArray(var0)); |
||||||
|
JSONObject var4 = JSON.parseObject(new String(var3, "UTF-8")); |
||||||
|
if (System.currentTimeMillis() - var4.getLongValue("timestamp") > 30000L) { |
||||||
|
throw new RuntimeException("sign timeout"); |
||||||
|
} else { |
||||||
|
return var4.getString("message"); |
||||||
|
} |
||||||
|
} catch (Exception var5) { |
||||||
|
FineLoggerFactory.getLogger().error("验签失败", var5); |
||||||
|
return ""; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static String encryptAndSign(String var0, String var1) { |
||||||
|
try { |
||||||
|
JSONObject var2 = new JSONObject(); |
||||||
|
var2.put("timestamp", System.currentTimeMillis()); |
||||||
|
var2.put("message", var0); |
||||||
|
RC4 var3 = new RC4(var1.getBytes("UTF-8")); |
||||||
|
return HexEncoder.bytesToHex(var3.encrypt(var2.toJSONString().getBytes("UTF-8"))); |
||||||
|
} catch (Exception var4) { |
||||||
|
return ""; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static void main(String[] var0) { |
||||||
|
String var1 = decryptAndVerify("28dd390a1545c394e1c808c16ea6a866dedbbb548fe2dfcc124318bc46f245f0f92b8df4e39a8cdd04415bac0f42", "123456789"); |
||||||
|
System.out.println(var1); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,147 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
public class UserExtInfo { |
||||||
|
private int userId; |
||||||
|
private int staffType; |
||||||
|
private String staffCode; |
||||||
|
private int status; |
||||||
|
private String suspendTime; |
||||||
|
private String validDateStart; |
||||||
|
private String validDateEnd; |
||||||
|
private String landlinePhone; |
||||||
|
private String identityDocType; |
||||||
|
private String identityDocNo; |
||||||
|
private String companyWeChatAccount; |
||||||
|
private String personalWeChatAccount; |
||||||
|
private String bankAccount; |
||||||
|
private String remark; |
||||||
|
private String ssoSystems; |
||||||
|
|
||||||
|
public UserExtInfo() { |
||||||
|
} |
||||||
|
|
||||||
|
public int getUserId() { |
||||||
|
return this.userId; |
||||||
|
} |
||||||
|
|
||||||
|
public int getStaffType() { |
||||||
|
return this.staffType; |
||||||
|
} |
||||||
|
|
||||||
|
public String getStaffCode() { |
||||||
|
return this.staffCode; |
||||||
|
} |
||||||
|
|
||||||
|
public int getStatus() { |
||||||
|
return this.status; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSuspendTime() { |
||||||
|
return this.suspendTime; |
||||||
|
} |
||||||
|
|
||||||
|
public String getValidDateStart() { |
||||||
|
return this.validDateStart; |
||||||
|
} |
||||||
|
|
||||||
|
public String getValidDateEnd() { |
||||||
|
return this.validDateEnd; |
||||||
|
} |
||||||
|
|
||||||
|
public String getLandlinePhone() { |
||||||
|
return this.landlinePhone; |
||||||
|
} |
||||||
|
|
||||||
|
public String getIdentityDocType() { |
||||||
|
return this.identityDocType; |
||||||
|
} |
||||||
|
|
||||||
|
public String getIdentityDocNo() { |
||||||
|
return this.identityDocNo; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCompanyWeChatAccount() { |
||||||
|
return this.companyWeChatAccount; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPersonalWeChatAccount() { |
||||||
|
return this.personalWeChatAccount; |
||||||
|
} |
||||||
|
|
||||||
|
public String getBankAccount() { |
||||||
|
return this.bankAccount; |
||||||
|
} |
||||||
|
|
||||||
|
public String getRemark() { |
||||||
|
return this.remark; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSsoSystems() { |
||||||
|
return this.ssoSystems; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUserId(int var1) { |
||||||
|
this.userId = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setStaffType(int var1) { |
||||||
|
this.staffType = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setStaffCode(String var1) { |
||||||
|
this.staffCode = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setStatus(int var1) { |
||||||
|
this.status = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSuspendTime(String var1) { |
||||||
|
this.suspendTime = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setValidDateStart(String var1) { |
||||||
|
this.validDateStart = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setValidDateEnd(String var1) { |
||||||
|
this.validDateEnd = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLandlinePhone(String var1) { |
||||||
|
this.landlinePhone = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setIdentityDocType(String var1) { |
||||||
|
this.identityDocType = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setIdentityDocNo(String var1) { |
||||||
|
this.identityDocNo = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCompanyWeChatAccount(String var1) { |
||||||
|
this.companyWeChatAccount = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPersonalWeChatAccount(String var1) { |
||||||
|
this.personalWeChatAccount = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBankAccount(String var1) { |
||||||
|
this.bankAccount = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setRemark(String var1) { |
||||||
|
this.remark = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSsoSystems(String var1) { |
||||||
|
this.ssoSystems = var1; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,102 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
public class UserInfo { |
||||||
|
private int id; |
||||||
|
private String name; |
||||||
|
private String countryCode; |
||||||
|
private String phoneNumber; |
||||||
|
private String email; |
||||||
|
private int status; |
||||||
|
private long lastLoginTime; |
||||||
|
private String username; |
||||||
|
private String photo; |
||||||
|
private String system; |
||||||
|
|
||||||
|
public UserInfo() { |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(int var1) { |
||||||
|
this.id = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setName(String var1) { |
||||||
|
this.name = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCountryCode(String var1) { |
||||||
|
this.countryCode = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPhoneNumber(String var1) { |
||||||
|
this.phoneNumber = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setEmail(String var1) { |
||||||
|
this.email = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setStatus(int var1) { |
||||||
|
this.status = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLastLoginTime(long var1) { |
||||||
|
this.lastLoginTime = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String var1) { |
||||||
|
this.username = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPhoto(String var1) { |
||||||
|
this.photo = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSystem(String var1) { |
||||||
|
this.system = var1; |
||||||
|
} |
||||||
|
|
||||||
|
public int getId() { |
||||||
|
return this.id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getName() { |
||||||
|
return this.name; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCountryCode() { |
||||||
|
return this.countryCode; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPhoneNumber() { |
||||||
|
return this.phoneNumber; |
||||||
|
} |
||||||
|
|
||||||
|
public String getEmail() { |
||||||
|
return this.email; |
||||||
|
} |
||||||
|
|
||||||
|
public int getStatus() { |
||||||
|
return this.status; |
||||||
|
} |
||||||
|
|
||||||
|
public long getLastLoginTime() { |
||||||
|
return this.lastLoginTime; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return this.username; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPhoto() { |
||||||
|
return this.photo; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSystem() { |
||||||
|
return this.system; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,43 @@ |
|||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package com.fr.plugin.cg.login.utils; |
||||||
|
|
||||||
|
import com.fr.io.utils.ResourceIOUtils; |
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
import java.io.File; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
public class Util { |
||||||
|
public static String BaseUrl = null; |
||||||
|
public static String SendRedirect = null; |
||||||
|
public static String UserUrl = null; |
||||||
|
|
||||||
|
public Util() { |
||||||
|
} |
||||||
|
|
||||||
|
static { |
||||||
|
Properties var0 = new Properties(); |
||||||
|
|
||||||
|
try { |
||||||
|
String var1 = ResourceIOUtils.getRealPath("sso.properties"); |
||||||
|
FineLoggerFactory.getLogger().info("filepath:" + var1); |
||||||
|
System.out.println(var1); |
||||||
|
var0.load(new FileInputStream(new File(var1))); |
||||||
|
} catch (IOException var2) { |
||||||
|
FineLoggerFactory.getLogger().info("外部调用文件有误"); |
||||||
|
var2.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
BaseUrl = var0.getProperty("BaseUrl"); |
||||||
|
FineLoggerFactory.getLogger().info("BaseUrl:" + BaseUrl); |
||||||
|
SendRedirect = var0.getProperty("SendRedirect"); |
||||||
|
FineLoggerFactory.getLogger().info("SendRedirect:" + SendRedirect); |
||||||
|
UserUrl = var0.getProperty("UserUrl"); |
||||||
|
FineLoggerFactory.getLogger().info("UserUrl:" + UserUrl); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
BaseUrl=http://192.168.1.232:9181/ |
||||||
|
SendRedirect=https://rhba.cpirhzl.com:8443/webroot/decision/view/form?viewlet=error.frm |
||||||
|
UserUrl=http://192.168.1.232:9091/ |
||||||
|
orcalUrl =jdbc:oracle:thin:@//192.168.1.203:1521/rhzlbidb |
||||||
|
orcalName =oracle.jdbc.driver.OracleDriver |
||||||
|
user =rhzl_bi |
||||||
|
password =rhzl_bi |
||||||
|
Sql=with ds3 as (SELECT u.realName,u.userName,u.mobile,u.email,d.id org_id,d.name org_name,c.id dept_id,c.name dept_name FROM rhzl_bi.fine_user u LEFT JOIN ( SELECT * FROM rhzl_bi.fine_user_role_middle WHERE roleType = 1 ) r ON u.id = r.userid LEFT JOIN rhzl_bi.fine_dep_role b ON r.roleid = b.id LEFT JOIN rhzl_bi.fine_post c ON b.postId = c.id LEFT JOIN rhzl_bi.fine_department d ON b.departmentId = d.id WHERE d.name != '融和必达'), ds1 as (select a.sys_name,a.sys_local ,a.state, a.report_url ,b.dept_id,b.username as user_id from FILL_DEPT_REPORT_AUTH a right join ds3 b on a.dept_id=b.dept_id),ds2 as (select REPORT_URL,SYS_LOCAL,SYS_NAME,user_id,STATE FROM FILL_USER_REPORT_AUTH union all select REPORT_URL,SYS_LOCAL,SYS_NAME,user_id,STATE from ds1 where user_id not in (select user_id from FILL_USER_REPORT_AUTH ) and sys_local is not null) SELECT REPORT_URL FROM ds2 WHERE STATE = 'NORMAL' AND SYS_LOCAL = |
||||||
|
Sqls=SELECT REPORT_URL FROM FILL_USER_REPORT_AUTH WHERE STATE = 'PARANULL' AND SYS_LOCAL ='sys_local'and SYS_NAME ='sys_name' |
Loading…
Reference in new issue