From 8ebf6867d842a670d3644fdaf584639ba26b2edb Mon Sep 17 00:00:00 2001 From: "LAPTOP-SB56SG4Q\\86185" Date: Fri, 9 Jul 2021 09:59:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=BC=80=E6=BA=90=E6=9D=90?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JSD-7957-需求文档V3.docx | Bin 0 -> 118191 bytes README.md | 5 +- conf.properties | 12 + plugin.xml | 21 + .../sxka/sso/CustomLogInOutEventProvider.java | 40 ++ .../plugin/sxka/sso/RoleDBAccessProvider.java | 44 ++ .../com/fr/plugin/sxka/sso/SsoFilter.java | 493 ++++++++++++++++++ .../fr/plugin/sxka/sso/dao/UserInfoDao.java | 21 + .../sxka/sso/entity/UserInfoEntity.java | 297 +++++++++++ src/main/resources/conf.properties | 16 + 交付教程.docx | Bin 0 -> 87421 bytes 11 files changed, 948 insertions(+), 1 deletion(-) create mode 100644 JSD-7957-需求文档V3.docx create mode 100644 conf.properties create mode 100644 plugin.xml create mode 100644 src/main/java/com/fr/plugin/sxka/sso/CustomLogInOutEventProvider.java create mode 100644 src/main/java/com/fr/plugin/sxka/sso/RoleDBAccessProvider.java create mode 100644 src/main/java/com/fr/plugin/sxka/sso/SsoFilter.java create mode 100644 src/main/java/com/fr/plugin/sxka/sso/dao/UserInfoDao.java create mode 100644 src/main/java/com/fr/plugin/sxka/sso/entity/UserInfoEntity.java create mode 100644 src/main/resources/conf.properties create mode 100644 交付教程.docx diff --git a/JSD-7957-需求文档V3.docx b/JSD-7957-需求文档V3.docx new file mode 100644 index 0000000000000000000000000000000000000000..734b4e56c6bf41063ea71af133082950bb237402 GIT binary patch literal 118191 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%0AQE5oN)8+~F@2EQus1_di7&=0&fT&wgH$nJ% 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 Ww%`B&zySjM7z1Wk_C7#Y1^PefQa@?{ literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 357bb20..2eea1c0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # open-JSD-7957 -jsd-7957 开源材料 \ No newline at end of file +jsd-7957 开源材料\ +免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\ +仅作为开发者学习参考使用!禁止用于任何商业用途!\ +为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。 \ No newline at end of file diff --git a/conf.properties b/conf.properties new file mode 100644 index 0000000..ea9ce39 --- /dev/null +++ b/conf.properties @@ -0,0 +1,12 @@ +#¼ͳһַ +auth_url= +#ȡtokanַ +token_url= +#ȡûϢ +user_url= +#client_id +client_id= +#client_secret +client_secret= +#dzתַ +logout= \ No newline at end of file diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..4ae0721 --- /dev/null +++ b/plugin.xml @@ -0,0 +1,21 @@ + + com.fr.plugin.sxka.sso + + yes + 1.9 + 10.0 + 2018-07-31 + fr.open + + --> + ]]> + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/sxka/sso/CustomLogInOutEventProvider.java b/src/main/java/com/fr/plugin/sxka/sso/CustomLogInOutEventProvider.java new file mode 100644 index 0000000..5b2ec5d --- /dev/null +++ b/src/main/java/com/fr/plugin/sxka/sso/CustomLogInOutEventProvider.java @@ -0,0 +1,40 @@ +package com.fr.plugin.sxka.sso; + +import com.fr.decision.fun.impl.AbstractLogInOutEventProvider; +import com.fr.decision.webservice.login.LogInOutResultInfo; +import com.fr.decision.webservice.utils.DecisionStatusService; +import com.fr.general.PropertiesUtils; +import com.fr.log.FineLoggerFactory; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; + +/** + * @Author fr.open + * @Date 2020/9/18 + * @Description + **/ +public class CustomLogInOutEventProvider extends AbstractLogInOutEventProvider { + @Override + public String logoutAction(LogInOutResultInfo result) { + String state = getUserStateFromCookie(result.getRequest()); + try { + DecisionStatusService.loginStatusService().delete(state); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(),e); + } + String logout = PropertiesUtils.getProperties("conf").getProperty("logout"); + String format = "%s?client_id=%s&callback=%s&state=%s"; + return String.format(format, logout, PropertiesUtils.getProperties("conf").getProperty("client_id"), PropertiesUtils.getProperties("conf").getProperty("redirect_uri"),state); + } + + private String getUserStateFromCookie(HttpServletRequest request) { + if (request.getCookies() == null) return null; + + for (Cookie cookie : request.getCookies()) { + if ("uid_state".equals(cookie.getName())) return cookie.getValue(); + } + return null; + } + +} diff --git a/src/main/java/com/fr/plugin/sxka/sso/RoleDBAccessProvider.java b/src/main/java/com/fr/plugin/sxka/sso/RoleDBAccessProvider.java new file mode 100644 index 0000000..9210b1d --- /dev/null +++ b/src/main/java/com/fr/plugin/sxka/sso/RoleDBAccessProvider.java @@ -0,0 +1,44 @@ +package com.fr.plugin.sxka.sso; + +import com.fr.db.fun.impl.AbstractDBAccessProvider; +import com.fr.plugin.sxka.sso.dao.UserInfoDao; +import com.fr.plugin.sxka.sso.entity.UserInfoEntity; +import com.fr.stable.db.accessor.DBAccessor; +import com.fr.stable.db.dao.BaseDAO; +import com.fr.stable.db.dao.DAOProvider; + +/** + * @Author fr.open + * @Date 2021/5/13 + * @Description + **/ +public class RoleDBAccessProvider extends AbstractDBAccessProvider { + + private static DBAccessor dbAccessor = null; + + public static DBAccessor getDbAccessor() { + return dbAccessor; + } + + @Override + public DAOProvider[] registerDAO() { + return new DAOProvider[]{ + new DAOProvider() { + @Override + public Class getEntityClass() { + return UserInfoEntity.class; + } + + @Override + public Class getDAOClass() { + return UserInfoDao.class; + } + } + }; + } + + @Override + public void onDBAvailable(DBAccessor dbAccessor) { + RoleDBAccessProvider.dbAccessor = dbAccessor; + } +} diff --git a/src/main/java/com/fr/plugin/sxka/sso/SsoFilter.java b/src/main/java/com/fr/plugin/sxka/sso/SsoFilter.java new file mode 100644 index 0000000..4c41a4a --- /dev/null +++ b/src/main/java/com/fr/plugin/sxka/sso/SsoFilter.java @@ -0,0 +1,493 @@ +package com.fr.plugin.sxka.sso; + +import com.fr.base.PropertiesUtils; +import com.fr.data.NetworkHelper; +import com.fr.decision.authority.AuthorityContext; +import com.fr.decision.authority.data.CustomRole; +import com.fr.decision.authority.data.User; +import com.fr.decision.fun.impl.AbstractGlobalRequestFilterProvider; +import com.fr.decision.mobile.terminal.TerminalHandler; +import com.fr.decision.webservice.bean.authentication.OriginUrlResponseBean; +import com.fr.decision.webservice.bean.user.UserBean; +import com.fr.decision.webservice.exception.user.UserNotExistException; +import com.fr.decision.webservice.utils.DecisionServiceConstants; +import com.fr.decision.webservice.utils.DecisionStatusService; +import com.fr.decision.webservice.utils.WebServiceUtils; +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.http.HttpRequest; +import com.fr.general.http.HttpToolbox; +import com.fr.json.JSONObject; +import com.fr.json.revise.EmbedJson; +import com.fr.locale.InterProviderFactory; +import com.fr.log.FineLoggerFactory; +import com.fr.plugin.sxka.sso.dao.UserInfoDao; +import com.fr.plugin.sxka.sso.entity.UserInfoEntity; +import com.fr.plugin.transform.FunctionRecorder; +import com.fr.security.encryption.transmission.TransmissionEncryptors; +import com.fr.stable.StringUtils; +import com.fr.stable.db.action.DBAction; +import com.fr.stable.db.dao.DAOContext; +import com.fr.stable.query.QueryFactory; +import com.fr.stable.query.restriction.RestrictionFactory; +import com.fr.stable.web.Device; +import com.fr.third.fasterxml.jackson.databind.DeserializationFeature; +import com.fr.third.fasterxml.jackson.databind.ObjectMapper; +import com.fr.third.springframework.http.HttpHeaders; +import com.fr.third.springframework.http.MediaType; +import com.fr.third.springframework.util.DigestUtils; +import com.fr.web.controller.decision.api.auth.LoginResource; +import com.fr.web.utils.WebUtils; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.*; + +/** + * @Author fr.open + * @Date 2021/5/12 + * @Description + **/ +@FunctionRecorder +public class SsoFilter extends AbstractGlobalRequestFilterProvider { + + private static String[] notFilter = { + "/login", + "/system", "/decision/file", + "/decision/resources", "/remote","/view/report" + }; + private static HashMap ROLE_MAP; + + static { + ROLE_MAP = new HashMap<>(); + ROLE_MAP.put("1", "企业管理员"); + ROLE_MAP.put("2", "个人用户"); + ROLE_MAP.put("3", "企业操作员"); + ROLE_MAP.put("4", "政府端用户"); + } + + @Override + public String filterName() { + return "sxka"; + } + + @Override + public String[] urlPatterns() { + return new String[]{"/*"}; + } + + @Override + public void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain filterChain) { + if(req.getRequestURI().endsWith("/test/error")){ + setError(res); + return; + } + if (req.getRequestURI().endsWith("/admin/login")) { + try { + String page = new LoginResource().page(req, res); + if (StringUtils.isBlank(page)) { + return; + } + PrintWriter writer = WebUtils.createPrintWriter(res); + writer.println(page); + writer.flush(); + writer.close(); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return; + } + //登录页面跳转地址拦截 + String origin = WebUtils.getHTTPRequestParameter(req, "origin"); + if (req.getRequestURI().endsWith("decision/login") && "get".equalsIgnoreCase(req.getMethod())) { + String state = this.getUserStateFromCookie(req, res); + + try { + if (StringUtils.isNotBlank(origin)) { + OriginUrlResponseBean path = DecisionStatusService.originUrlStatusService().get(origin); + cacheParam(res, path.getOriginUrl()); + } + res.sendRedirect(buildAuthorizeUrl(state)); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + if (isLogin(req) || isAccept(req)) { + filter(req, res, filterChain); + return; + } + String state = this.getUserStateFromCookie(req, res); + String code = req.getParameter("code"); + if (StringUtils.isNotBlank(code)) { + JSONObject data = acquireAccessToken(code); + FineLoggerFactory.getLogger().info("get access_token is {}", data); + // 计算过期时间 + int expires = Integer.valueOf(data.get("expires_in").toString()); + Date expiresTime = new Date(System.currentTimeMillis() + (expires * 1000)); + data.put("expires_at", expiresTime); + // 保存关系映射 + putState(state, data); + } + JSONObject tokenItem = null; + try { + tokenItem = DecisionStatusService.loginStatusService().get(state); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(),e); + } + if (tokenItem == null) { + try { + String jump = req.getRequestURL() + (req.getQueryString() == null ? StringUtils.EMPTY : "?" + req.getQueryString()); + cacheParam(res, jump); + res.sendRedirect(buildAuthorizeUrl(state)); + return; + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + // 用检查 access token 是否过期 + Date tokenExpiresAt = (Date) tokenItem.get("expires_at"); + Date now = new Date(); + if (tokenExpiresAt.before(now)) { + // 使用 refresh token 刷新 access token + String refreshToken = tokenItem.get("refresh_token").toString(); + tokenItem = this.refreshToken(refreshToken); + putState(state, tokenItem); + } + String accessToken = tokenItem.get("access_token").toString(); + JSONObject userProfile = this.acquireUserInfo(state, accessToken); + try { + if (!existUser(userProfile.getString("id"))) { + FineLoggerFactory.getLogger().info("user {} not exist ", userProfile.getString("id")); + UserBean userBean = new UserBean(); + userBean.setUsername(userProfile.getString("id")); + userBean.setRealName(userProfile.getString("op_name")); + userBean.setEnable(true); + userBean.setPassword(TransmissionEncryptors.getInstance().encrypt("!234Qwer")); + UserService.getInstance().addUser(userBean); + } + UserInfoEntity infoEntity = recordUserInfo(userProfile); + if(checkAuth(infoEntity, req, res)){ + return; + } + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + filter(req, res, filterChain); + } + + private void putState(String state, JSONObject data) { + try { + DecisionStatusService.loginStatusService().put(state, data); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(),e); + } + } + + private void cacheParam(HttpServletResponse res, String jump) { + String id = UUID.randomUUID().toString(); + try { + DecisionStatusService.originUrlStatusService().put(id, new OriginUrlResponseBean(jump));//添加重定向地址 + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + Cookie cookie = new Cookie("ORIGIN_URL", id); + cookie.setPath("/"); + cookie.setMaxAge(60); + cookie.setHttpOnly(true); + res.addCookie(cookie); + } + + private boolean checkAuth(UserInfoEntity entity, HttpServletRequest req, HttpServletResponse res) throws Exception { + if (StringUtils.isNotBlank(entity.getStatus()) && entity.getStatus().equalsIgnoreCase("true")) { + if (entity.getAccount_type().equals("1") || entity.getAccount_type().equals("3") || entity.getAccount_type().equals("4")) { + UserBean userAccount = UserService.getInstance().getUserAccount(entity.getId()); + String roleName = ROLE_MAP.containsKey(entity.getAccount_type()) ? ROLE_MAP.get(entity.getAccount_type()) : "其他"; + CustomRole role = AuthorityContext.getInstance().getCustomRoleController().findOne(QueryFactory.create().addRestriction(RestrictionFactory.eq("name", roleName))); + if (role != null) { + List oldRoleList = AuthorityContext.getInstance().getCustomRoleController().findByUser(userAccount.getId(), QueryFactory.create()); + oldRoleList.forEach(e->{ + try { + AuthorityContext.getInstance().getUserController().removeUserFromCustomRole(userAccount.getId(), e.getId()); + } catch (Exception exception) { + FineLoggerFactory.getLogger().error(exception.getMessage(),exception); + } + }); + AuthorityContext.getInstance().getUserController().addUserToCustomRole(userAccount.getId(),role.getId()); + } + } + loginFromToken(req, res, entity.getId()); + String jump = getOrigin(req); + FineLoggerFactory.getLogger().info("get Origin path is {}", jump); + if (StringUtils.isNotBlank(jump)) { + res.sendRedirect(jump); + return true; + } + return false; + } + if(entity.getAccount_type().equals("1") || entity.getAccount_type().equals("3") || entity.getAccount_type().equals("4")){ + setError(res); + return true; + } + String url = PropertiesUtils.getProperties("conf").getProperty("write_report"); + String param = "username="+ URLEncoder.encode(entity.getOp_name(),"UTF-8")+"&id="+entity.getId(); + url = url.indexOf("?") != -1?url+"&"+param:url+"?"+param; + res.sendRedirect(url); + return true; + } + + + + private String getOrigin(HttpServletRequest req) throws Exception { + Cookie[] cookies = req.getCookies(); + if (cookies == null) { + return null; + } + for (int i = 0; i < cookies.length; i++) { + if ("ORIGIN_URL".equals(cookies[i].getName())) { + String id = cookies[i].getValue(); + OriginUrlResponseBean path = DecisionStatusService.originUrlStatusService().get(id); + if (path != null) { + DecisionStatusService.originUrlStatusService().delete(id); + return path.getOriginUrl(); + } + } + } + return StringUtils.EMPTY; + } + + private UserInfoEntity recordUserInfo(JSONObject user) { + ObjectMapper mapper = EmbedJson.MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + UserInfoEntity entity = mapper.convertValue(user, UserInfoEntity.class); + try { + return RoleDBAccessProvider.getDbAccessor().runDMLAction(new DBAction() { + @Override + public UserInfoEntity run(DAOContext daoContext) throws Exception { + UserInfoDao dao = daoContext.getDAO(UserInfoDao.class); + UserInfoEntity byId = dao.getById(entity.getId()); + if (byId != null) { + entity.setStatus(byId.getStatus()); + entity.setAccount_type(byId.getAccount_type()); + } else { + entity.setStatus("false"); + } + dao.addOrUpdate(entity); + return entity; + } + }); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return entity; + + } + + private boolean existUser(String username) { + User user = null; + try { + user = UserService.getInstance().getUserByUserName(username); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return user != null; + } + + private boolean loginFromToken(HttpServletRequest req, HttpServletResponse res, String username) throws Exception { + try { + if (StringUtils.isNotEmpty(username)) { + FineLoggerFactory.getLogger().info("current username:" + username); + User user = UserService.getInstance().getUserByUserName(username); + FineLoggerFactory.getLogger().info("get user:" + user); + if (user == null) { + throw new UserNotExistException(); + } + String token = LoginService.getInstance().login(req, res, username); + FineLoggerFactory.getLogger().info("get login token:" + token); + req.setAttribute(DecisionServiceConstants.FINE_AUTH_TOKEN_NAME, token); + FineLoggerFactory.getLogger().info("username:" + username + "login success"); + return true; + } else { + FineLoggerFactory.getLogger().warn("username is null!"); + return false; + } + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return false; + } + + + private JSONObject acquireUserInfo(String state, String accessToken) { + String url = PropertiesUtils.getProperties("conf").getProperty("user_url"); + + Map params = new HashMap<>(); + params.put("client_id", PropertiesUtils.getProperties("conf").getProperty("client_id")); + params.put("access_token", accessToken); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + try { + String res = HttpToolbox.executeAndParse(HttpRequest.custom().url(url) + .headers(headers.toSingleValueMap()) + .post(params) + .build()); + FineLoggerFactory.getLogger().info("get user name url is 【{}】,params is,{} res is {}", url, params, res); + JSONObject object = new JSONObject(res); + return object.getJSONObject("data"); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return JSONObject.EMPTY; + } + + private JSONObject refreshToken(String refreshToken) { + String url = PropertiesUtils.getProperties("conf").getProperty("token_url"); + + Map params = new HashMap<>(); + params.put("grant_type", "refresh_token"); + params.put("refresh_token", refreshToken); + params.put("client_id", PropertiesUtils.getProperties("conf").getProperty("client_id")); + params.put("client_sign", this.makeSign(refreshToken)); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + try { + String res = HttpToolbox.executeAndParse(HttpRequest.custom().url(url) + .headers(headers.toSingleValueMap()) + .post(params) + .build()); + FineLoggerFactory.getLogger().info("get refresh token url is 【{}】,params is,{} res is {}", url, params, res); + JSONObject object = new JSONObject(res); + return object.getJSONObject("data"); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return JSONObject.EMPTY; + } + + private JSONObject acquireAccessToken(String code) { + String url = PropertiesUtils.getProperties("conf").getProperty("token_url"); + Map params = new HashMap<>(); + params.put("grant_type", "authorization_code"); + params.put("code", code); + params.put("client_id", PropertiesUtils.getProperties("conf").getProperty("client_id")); + params.put("client_sign", this.makeSign(code)); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + try { + String res = HttpToolbox.executeAndParse(HttpRequest.custom().url(url) + .headers(headers.toSingleValueMap()) + .post(params) + .build()); + FineLoggerFactory.getLogger().info("get access token url is 【{}】,params is,{} res is {}", url, params, res); + JSONObject object = new JSONObject(res); + return object.getJSONObject("data"); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return JSONObject.EMPTY; + } + + /** + * 生成签名值= md5Hex("$$", UTF8) + * + * @param data + * @return + */ + private String makeSign(String data) { + String value = String.join("$", new String[]{ + PropertiesUtils.getProperties("conf").getProperty("client_id"), + data, + PropertiesUtils.getProperties("conf").getProperty("client_secret") + }); + return DigestUtils.md5DigestAsHex(value.getBytes(StandardCharsets.UTF_8)); + } + + private String buildAuthorizeUrl(String state) { + String format = "%s?client_id=%s&response_type=code&scope=A1,C1,C2&state=%s&redirect_uri=%s"; + return String.format(format, PropertiesUtils.getProperties("conf").getProperty("auth_url"), PropertiesUtils.getProperties("conf").getProperty("client_id"), state, PropertiesUtils.getProperties("conf").getProperty("redirect_uri")); + } + + private void setUserStateCookie(HttpServletResponse response, String state) { + Cookie cookie = new Cookie("uid_state", state); + cookie.setMaxAge(300); + // 正式环境采用HTTPS协议,需要取消下方注释,确保仅在HTTPS下可用 +// cookie.setSecure(true); + cookie.setPath("/"); + response.addCookie(cookie); + } + + private String getUserStateFromCookie(HttpServletRequest request, HttpServletResponse res) { + if (request.getCookies() == null) return null; + + String state = StringUtils.EMPTY; + for (Cookie cookie : request.getCookies()) { + if ("uid_state".equals(cookie.getName())) { + state = cookie.getValue(); + } + } + if (StringUtils.isBlank(state)) { + state = UUID.randomUUID().toString(); + this.setUserStateCookie(res, state); + } + return state; + } + + private boolean isAccept(HttpServletRequest req) { + for (int i = 0; i < notFilter.length; i++) { + if (req.getRequestURI().contains(notFilter[i])) { + return true; + } + } + if (req.getRequestURI().endsWith("/.css") || req.getRequestURI().endsWith("/.css")) { + return true; + } + return false; + } + + private boolean isLogin(HttpServletRequest request) { + String oldToken = TokenResource.COOKIE.getToken(request); + return oldToken != null && checkTokenValid(request, (String) oldToken); + } + + private boolean checkTokenValid(HttpServletRequest req, String token) { + try { + Device device = NetworkHelper.getDevice(req); + LoginService.getInstance().loginStatusValid(token, TerminalHandler.getTerminal(req, device)); + return true; + } catch (Exception ignore) { + } + return false; + } + + private void setError(HttpServletResponse res) { + try { + PrintWriter printWriter = WebUtils.createPrintWriter(res); + Map map = new HashMap<>(); + map.put("result", InterProviderFactory.getProvider().getLocText("Fine-Engine_Error_Page_Result")); + map.put("reason", "当前用户已冻结,请联系系统管理员激活"); + map.put("solution", InterProviderFactory.getProvider().getLocText("Fine-Engine_Please_Contact_Platform_Admin")); + String page = WebServiceUtils.parseWebPageResourceSafe("com/fr/web/controller/decision/entrance/resources/unavailable.html", map); + printWriter.write(page); + printWriter.flush(); + printWriter.close(); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + + private void filter(HttpServletRequest req, HttpServletResponse res, FilterChain filterChain) { + try { + filterChain.doFilter(req, res); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } catch (ServletException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } +} diff --git a/src/main/java/com/fr/plugin/sxka/sso/dao/UserInfoDao.java b/src/main/java/com/fr/plugin/sxka/sso/dao/UserInfoDao.java new file mode 100644 index 0000000..de14429 --- /dev/null +++ b/src/main/java/com/fr/plugin/sxka/sso/dao/UserInfoDao.java @@ -0,0 +1,21 @@ +package com.fr.plugin.sxka.sso.dao; + +import com.fr.plugin.sxka.sso.entity.UserInfoEntity; +import com.fr.stable.db.dao.BaseDAO; +import com.fr.stable.db.session.DAOSession; + +/** + * @Author fr.open + * @Date 2021/5/17 + * @Description + **/ +public class UserInfoDao extends BaseDAO { + public UserInfoDao(DAOSession daoSession) { + super(daoSession); + } + + @Override + protected Class getEntityClass() { + return UserInfoEntity.class; + } +} diff --git a/src/main/java/com/fr/plugin/sxka/sso/entity/UserInfoEntity.java b/src/main/java/com/fr/plugin/sxka/sso/entity/UserInfoEntity.java new file mode 100644 index 0000000..45d06bc --- /dev/null +++ b/src/main/java/com/fr/plugin/sxka/sso/entity/UserInfoEntity.java @@ -0,0 +1,297 @@ +package com.fr.plugin.sxka.sso.entity; + +import com.fr.stable.db.entity.BaseEntity; +import com.fr.third.javax.persistence.Column; +import com.fr.third.javax.persistence.Entity; +import com.fr.third.javax.persistence.Table; + +/** + * @Author fr.open + * @Date 2021/5/13 + * @Description + **/ +@Entity +@Table(name = "plugin_sxka_user_info") +public class UserInfoEntity extends BaseEntity { + + private static final long serialVersionUID = 5278704449983309952L; + + @Column(name = "op_name") + private String op_name; + + @Column(name = "organization") + private String organization; + + @Column(name = "account_type") + private String account_type; + + @Column(name = "login_type") + private String login_type; + + @Column(name = "gs_name") + private String gs_name; + + @Column(name = "gs_name_en") + private String gs_name_en; + + @Column(name = "gs_type") + private String gs_type; + + @Column(name = "gs_address") + private String gs_address; + + @Column(name = "gs_address_en") + private String gs_address_en; + + @Column(name = "gs_tax_code") + private String gs_tax_code; + + @Column(name = "gs_expires") + private String gs_expires; + + @Column(name = "gs_postcode") + private String gs_postcode; + + @Column(name = "gs_scope") + private String gs_scope; + + @Column(name = "gs_status") + private String gs_status; + + @Column(name = "gs_regcap") + private String gs_regcap; + + @Column(name = "gs_regcap_cur") + private String gs_regcap_cur; + + @Column(name = "gs_social_credit_code") + private String gs_social_credit_code; + + @Column(name = "gs_code") + private String gs_code; + + @Column(name = "gs_regorg") + private String gs_regorg; + + @Column(name = "gs_reg_number") + private String gs_reg_number; + + @Column(name = "gs_location") + private String gs_location; + + @Column(name = "cus_number") + private String cus_number; + + @Column(name = "cus_expires") + private String cus_expires; + + @Column(name = "cus_master") + private String cus_master; + + @Column(name = "status") + private String status; + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getOp_name() { + return op_name; + } + + public void setOp_name(String op_name) { + this.op_name = op_name; + } + + public String getOrganization() { + return organization; + } + + public void setOrganization(String organization) { + this.organization = organization; + } + + public String getAccount_type() { + return account_type; + } + + public void setAccount_type(String account_type) { + this.account_type = account_type; + } + + public String getLogin_type() { + return login_type; + } + + public void setLogin_type(String login_type) { + this.login_type = login_type; + } + + public String getGs_name() { + return gs_name; + } + + public void setGs_name(String gs_name) { + this.gs_name = gs_name; + } + + public String getGs_name_en() { + return gs_name_en; + } + + public void setGs_name_en(String gs_name_en) { + this.gs_name_en = gs_name_en; + } + + public String getGs_type() { + return gs_type; + } + + public void setGs_type(String gs_type) { + this.gs_type = gs_type; + } + + public String getGs_address() { + return gs_address; + } + + public void setGs_address(String gs_address) { + this.gs_address = gs_address; + } + + public String getGs_address_en() { + return gs_address_en; + } + + public void setGs_address_en(String gs_address_en) { + this.gs_address_en = gs_address_en; + } + + public String getGs_tax_code() { + return gs_tax_code; + } + + public void setGs_tax_code(String gs_tax_code) { + this.gs_tax_code = gs_tax_code; + } + + public String getGs_expires() { + return gs_expires; + } + + public void setGs_expires(String gs_expires) { + this.gs_expires = gs_expires; + } + + public String getGs_postcode() { + return gs_postcode; + } + + public void setGs_postcode(String gs_postcode) { + this.gs_postcode = gs_postcode; + } + + public String getGs_scope() { + return gs_scope; + } + + public void setGs_scope(String gs_scope) { + this.gs_scope = gs_scope; + } + + public String getGs_status() { + return gs_status; + } + + public void setGs_status(String gs_status) { + this.gs_status = gs_status; + } + + public String getGs_regcap() { + return gs_regcap; + } + + public void setGs_regcap(String gs_regcap) { + this.gs_regcap = gs_regcap; + } + + public String getGs_regcap_cur() { + return gs_regcap_cur; + } + + public void setGs_regcap_cur(String gs_regcap_cur) { + this.gs_regcap_cur = gs_regcap_cur; + } + + public String getGs_social_credit_code() { + return gs_social_credit_code; + } + + public void setGs_social_credit_code(String gs_social_credit_code) { + this.gs_social_credit_code = gs_social_credit_code; + } + + public String getGs_code() { + return gs_code; + } + + public void setGs_code(String gs_code) { + this.gs_code = gs_code; + } + + public String getGs_regorg() { + return gs_regorg; + } + + public void setGs_regorg(String gs_regorg) { + this.gs_regorg = gs_regorg; + } + + public String getGs_reg_number() { + return gs_reg_number; + } + + public void setGs_reg_number(String gs_reg_number) { + this.gs_reg_number = gs_reg_number; + } + + public String getGs_location() { + return gs_location; + } + + public void setGs_location(String gs_location) { + this.gs_location = gs_location; + } + + public String getCus_number() { + return cus_number; + } + + public void setCus_number(String cus_number) { + this.cus_number = cus_number; + } + + public String getCus_expires() { + return cus_expires; + } + + public void setCus_expires(String cus_expires) { + this.cus_expires = cus_expires; + } + + public String getCus_master() { + return cus_master; + } + + public void setCus_master(String cus_master) { + this.cus_master = cus_master; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/src/main/resources/conf.properties b/src/main/resources/conf.properties new file mode 100644 index 0000000..02c42e7 --- /dev/null +++ b/src/main/resources/conf.properties @@ -0,0 +1,16 @@ +#\u5355\u70B9\u767B\u5F55\u7EDF\u4E00\u5730\u5740 +auth_url=https://www.singlewindow.shaanxi.cn/oauth/authorize +#\u83B7\u53D6tokan\u5730\u5740 +token_url=https://www.singlewindow.shaanxi.cn/oauth/token +#\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u63A5\u53E3 +user_url=https://www.singlewindow.shaanxi.cn/resource/user +#client_id +client_id=125d5ff7-a40a-11eb-8e31-005056826ea5 +#client_secret +client_secret=93badcc315cf94843040c2d9f254094f6eb71e0f +#\u767B\u51FA\u540E\u8DF3\u8F6C\u5730\u5740 +logout=https://www.singlewindow.shaanxi.cn/oauth/logout +##\u56DE\u8C03\u5730\u5740 +redirect_uri=http://locahost:8075/webroot/decision +##\u586B\u62A5\u5730\u5740 +write_report= \ No newline at end of file diff --git a/交付教程.docx b/交付教程.docx new file mode 100644 index 0000000000000000000000000000000000000000..120a6334b89460d6964bb2443a90b8d815da1aff GIT binary patch literal 87421 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

{&~m2b5LntW}oKFO}`L@Lk+IVZykPG}Lp(vx-K( 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 literal 0 HcmV?d00001