From 078ea8c76897480461c580698d3a43f31fd34f45 Mon Sep 17 00:00:00 2001 From: chenrui <1950717904@qq.com> Date: Mon, 1 Jul 2024 15:50:15 +0800 Subject: [PATCH] =?UTF-8?q?shiro=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/EmergencyBaseLib/EmergencyCommon/pom.xml | 24 +- .../java/com/zdxt/common/util/Md5Hash.java | 40 + .../java/com/zdxt/oss/constant/Constant.java | 1 - lib/EmergencyBaseLib/pom.xml | 21 +- lib/EmergencyCloud/pom.xml | 18 +- lib/EmergencyService/pom.xml | 59 +- .../controller/AppThirdLoginController.java | 6 +- .../zdxt/auth/common/utils/CipherKeyUtil.java | 29 + .../auth/framework/config/CorsFilter.java | 6 +- .../auth/framework/config/CsrfFilter.java | 4 +- .../auth/framework/config/HostFilter.java | 4 +- .../auth/framework/config/MySimpleCookie.java | 1 + .../framework/config/ResourcesConfig.java | 72 +- .../config/ShiroCasConfiguration.java | 689 +++++++++--------- .../auth/framework/config/ShiroConfig.java | 23 +- .../shiro/realm/ShiroCasUserRealm.java | 324 ++++---- .../shiro/service/PasswordService.java | 8 +- .../framework/shiro/web/filter/CasFilter.java | 146 ++-- .../shiro/web/filter/LogoutFilter.java | 7 +- .../user/controller/LoginController.java | 4 + .../system/user/service/UserServiceImpl.java | 1 - .../libs/jquery-layout/jquery-ui-latest.js | 20 +- .../project/code/information/information.html | 2 +- .../controller/ExcelModuleController.java | 5 +- .../controller/ExcelUploadHisController.java | 4 +- .../zdxt/excel/domain/AttachmentUpload.java | 80 +- .../com/zdxt/excel/domain/ExcelModule.java | 9 +- .../com/zdxt/excel/domain/ExcelUpload.java | 121 ++- .../zdxt/excel/test/TestExportService.java | 5 +- .../message/feign/PublicMessageApiImpl.java | 2 +- .../com/zdxt/message/tio/TioWsMsgHandler.java | 2 +- .../code/controller/ThirdLoginController.java | 6 +- .../com/zdxt/code/service/MssqApiService.java | 5 + .../service/impl/AccessTokenServiceImpl.java | 5 +- .../EnterpriseInformationServiceImpl.java | 9 +- .../code/service/impl/MssqApiServiceImpl.java | 6 +- .../service/impl/ThirdLoginServiceImpl.java | 6 +- .../main/java/com/zdxt/code/utils/Azdg.java | 17 +- .../java/com/zdxt/code/utils/HttpUtil.java | 6 +- .../java/com/zdxt/code/utils/QRCodeUtil.java | 5 +- .../zdxt/code/utils/ServiceInvocation.java | 6 +- lib/EmergencyServiceApi/pom.xml | 21 +- lib/ZdxtComponent/pom.xml | 17 + 43 files changed, 1117 insertions(+), 729 deletions(-) create mode 100644 lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/util/Md5Hash.java create mode 100644 lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/common/utils/CipherKeyUtil.java diff --git a/lib/EmergencyBaseLib/EmergencyCommon/pom.xml b/lib/EmergencyBaseLib/EmergencyCommon/pom.xml index 5a916a70..4102453c 100644 --- a/lib/EmergencyBaseLib/EmergencyCommon/pom.xml +++ b/lib/EmergencyBaseLib/EmergencyCommon/pom.xml @@ -12,18 +12,18 @@ EmergencyBaseLib EmergencyCommon - - - - org.apache.maven.plugins - maven-compiler-plugin - - 8 - 8 - - - - + + + + + + + + + + + + com.fasterxml.jackson.core diff --git a/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/util/Md5Hash.java b/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/util/Md5Hash.java new file mode 100644 index 00000000..0f0bb84f --- /dev/null +++ b/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/util/Md5Hash.java @@ -0,0 +1,40 @@ +package com.zdxt.common.util; + + +import cn.hutool.core.codec.Base64; +import org.apache.shiro.codec.Hex; +import org.apache.shiro.crypto.hash.SimpleHash; +//import org.apache.shiro.lang.codec.Base64; +//import org.apache.shiro.lang.codec.Hex; + +public class Md5Hash extends SimpleHash { + public static final String ALGORITHM_NAME = "MD5"; + + public Md5Hash() { + super("MD5"); + } + + public Md5Hash(Object source) { + super("MD5", source); + } + + public Md5Hash(Object source, Object salt) { + super("MD5", source, salt); + } + + public Md5Hash(Object source, Object salt, int hashIterations) { + super("MD5", source, salt, hashIterations); + } + + public static Md5Hash fromHexString(String hex) { + Md5Hash hash = new Md5Hash(); + hash.setBytes(Hex.decode(hex)); + return hash; + } + + public static Md5Hash fromBase64String(String base64) { + Md5Hash hash = new Md5Hash(); + hash.setBytes(Base64.decode(base64)); + return hash; + } +} diff --git a/lib/EmergencyBaseLib/EmergencyOss/src/main/java/com/zdxt/oss/constant/Constant.java b/lib/EmergencyBaseLib/EmergencyOss/src/main/java/com/zdxt/oss/constant/Constant.java index 738c89a5..84d146eb 100644 --- a/lib/EmergencyBaseLib/EmergencyOss/src/main/java/com/zdxt/oss/constant/Constant.java +++ b/lib/EmergencyBaseLib/EmergencyOss/src/main/java/com/zdxt/oss/constant/Constant.java @@ -1,6 +1,5 @@ package com.zdxt.oss.constant; -import org.omg.CORBA.INTERNAL; public class Constant { diff --git a/lib/EmergencyBaseLib/pom.xml b/lib/EmergencyBaseLib/pom.xml index c83b70f3..1084a4a2 100644 --- a/lib/EmergencyBaseLib/pom.xml +++ b/lib/EmergencyBaseLib/pom.xml @@ -21,8 +21,9 @@ UTF-8 UTF-8 UTF-8 - 1.8 + 11 3.1.1 + 1.8.0 2.0.0 1.2.6 @@ -201,5 +202,21 @@ 2.2.13.RELEASE - + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + UTF-8 + + + + + + + + \ No newline at end of file diff --git a/lib/EmergencyCloud/pom.xml b/lib/EmergencyCloud/pom.xml index 258d12dc..d6a35963 100644 --- a/lib/EmergencyCloud/pom.xml +++ b/lib/EmergencyCloud/pom.xml @@ -8,5 +8,21 @@ EmergencyCloud 1.0 - + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + UTF-8 + + + + + + + + \ No newline at end of file diff --git a/lib/EmergencyService/pom.xml b/lib/EmergencyService/pom.xml index 02f3a93f..105ec0ae 100644 --- a/lib/EmergencyService/pom.xml +++ b/lib/EmergencyService/pom.xml @@ -29,9 +29,10 @@ UTF-8 UTF-8 - 1.8 + 11 + 1.8.0 - 2.0.0 + 2.1.0 1.3.2 1.2.5 1.2.70 @@ -190,32 +191,32 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - org.apache.shiro - shiro-cas - ${shiro.version} - + + + + + + @@ -492,13 +493,13 @@ org.apache.maven.plugins maven-compiler-plugin - 1.8 - 1.8 + 8 + 8 UTF-8 - - -XDignore.symbol.file - - true + + + + diff --git a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppThirdLoginController.java b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppThirdLoginController.java index a3169792..55408a16 100644 --- a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppThirdLoginController.java +++ b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppThirdLoginController.java @@ -19,6 +19,8 @@ import com.zdxt.common.util.RedisCache; import com.zdxt.domain.auth.User; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Hex; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -35,11 +37,11 @@ import static com.zdxt.code.utils.ServiceInvocation.httpRequest; /** * 第三方登录控制层 */ -@Slf4j + @Controller @RequestMapping("/app/thirdLogin") public class AppThirdLoginController { - + private static final Logger log = LoggerFactory.getLogger(AppThirdLoginController.class); @Value("${siq.code}") private String code; diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/common/utils/CipherKeyUtil.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/common/utils/CipherKeyUtil.java new file mode 100644 index 00000000..4270f4c3 --- /dev/null +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/common/utils/CipherKeyUtil.java @@ -0,0 +1,29 @@ +package com.zdxt.auth.common.utils; + +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; +import java.security.NoSuchAlgorithmException; + +/** + * shiro 密钥生成工具 + */ +public class CipherKeyUtil { + + /** + * 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int) + * @return + */ + public static byte[] generateNewKey() { + KeyGenerator kg; + try { + kg = KeyGenerator.getInstance("AES"); + } catch (NoSuchAlgorithmException var5) { + String msg = "Unable to acquire AES algorithm. This is required to function."; + throw new IllegalStateException(msg, var5); + } + kg.init(128); + SecretKey key = kg.generateKey(); + byte[] encoded = key.getEncoded(); + return encoded; + } +} diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java index a42d8693..0a3a839a 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java @@ -2,8 +2,11 @@ package com.zdxt.auth.framework.config; import com.zdxt.auth.common.utils.security.ShiroUtils; import com.zdxt.auth.framework.shiro.jwt.JWTUtils; +import com.zdxt.common.util.AddressUtils; import com.zdxt.domain.auth.User; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.servlet.*; @@ -20,11 +23,10 @@ import java.util.Map; * @author: QingWang.Li * @date: 2020/5/27 11:35 */ -@Slf4j @Component() public class CorsFilter implements Filter { - + private static final Logger log = LoggerFactory.getLogger(CorsFilter.class); // public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) // throws IOException, ServletException { diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CsrfFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CsrfFilter.java index cf3f3037..0a4ff6cf 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CsrfFilter.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CsrfFilter.java @@ -18,6 +18,8 @@ import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONObject; import com.zdxt.common.ZDResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.http.HttpStatus; @@ -31,11 +33,11 @@ import lombok.extern.slf4j.Slf4j; * @author CL * */ -@Slf4j @Component @ConfigurationProperties(prefix = "security.csrf") @WebFilter(filterName = "CsrfFilter", urlPatterns = "/*") public class CsrfFilter implements Filter { + private static final Logger log = LoggerFactory.getLogger(CsrfFilter.class); @Value("${allowed.servernames}") private String ALLOWED_SERVERNAMES; diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/HostFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/HostFilter.java index 5cef6f60..82acfc0e 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/HostFilter.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/HostFilter.java @@ -1,6 +1,8 @@ package com.zdxt.auth.framework.config; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -20,9 +22,9 @@ import java.util.List; * 多个host用逗号隔开,本地开发使用127.0.0.1,localhost * @author liufr */ -@Slf4j @Component public class HostFilter implements Filter{ + private static final Logger log = LoggerFactory.getLogger(HostFilter.class); /** * 自定义实现host白名单添加 */ diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java index 0f752de5..9f528123 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java @@ -1,6 +1,7 @@ package com.zdxt.auth.framework.config; import org.apache.shiro.util.StringUtils; +//import org.apache.shiro.lang.util.StringUtils; import org.apache.shiro.web.servlet.SimpleCookie; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java index 92318e02..eea7e4db 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java @@ -59,40 +59,40 @@ public class ResourcesConfig implements WebMvcConfigurer /** * 自定义拦截规则 */ - @Override - public void addInterceptors(InterceptorRegistry registry) - { -// registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**"); - registry.addInterceptor(new JWTInterceptor()) - .addPathPatterns("/app/**") - .excludePathPatterns("/app/thirdLogin/siqLogin","/app/thirdLogin/siqLoginTest", - "/app/thirdLogin/getSiqCode", - "/common/upload", - "/app/thirdLogin/szyptLogin/**", - "/captcha/captchaImage/**", - "/appLogin","/login","/index", - "/enterpriseInformation", - "/code/registration", - "/code/linkage", - "/code/ruleList", - "/code/LawEnforcementWarningList", - "/system/dept/**", - "/system/user/**", - "/system/role/**", - "/system/post/**", - "/system/menu/**", - "/code/linkage/**", - "/monitor/operlog", - "/monitor/logininfor", - "/system/dict", - "/system/config", - "/monitor/job", - "/statistical/analysis", - "/statistical/view", - "/**/*.css", - "/**/*.js", "/**/*.png", "/**/*.jpg", - "/**/*.jpeg", "/**/*.gif", "/**/fonts/*" - ).addPathPatterns("/**"); -// 除了登录放行,其他接口都token验证 - } +// @Override +// public void addInterceptors(InterceptorRegistry registry) +// { +//// registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**"); +// registry.addInterceptor(new JWTInterceptor()) +// .addPathPatterns("/app/**") +// .excludePathPatterns("/app/thirdLogin/siqLogin","/app/thirdLogin/siqLoginTest", +// "/app/thirdLogin/getSiqCode", +// "/common/upload", +// "/app/thirdLogin/szyptLogin/**", +// "/captcha/captchaImage/**", +// "/appLogin","/login","/index", +// "/enterpriseInformation", +// "/code/registration", +// "/code/linkage", +// "/code/ruleList", +// "/code/LawEnforcementWarningList", +// "/system/dept/**", +// "/system/user/**", +// "/system/role/**", +// "/system/post/**", +// "/system/menu/**", +// "/code/linkage/**", +// "/monitor/operlog", +// "/monitor/logininfor", +// "/system/dict", +// "/system/config", +// "/monitor/job", +// "/statistical/analysis", +// "/statistical/view", +// "/**/*.css", +// "/**/*.js", "/**/*.png", "/**/*.jpg", +// "/**/*.jpeg", "/**/*.gif", "/**/fonts/*" +// ).addPathPatterns("/**"); +//// 除了登录放行,其他接口都token验证 +// } } \ No newline at end of file diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroCasConfiguration.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroCasConfiguration.java index 58d28a54..9b47499f 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroCasConfiguration.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroCasConfiguration.java @@ -1,352 +1,353 @@ -package com.zdxt.auth.framework.config; - -import at.pollux.thymeleaf.shiro.dialect.ShiroDialect; -import com.zdxt.auth.common.utils.StringUtils; -import com.zdxt.auth.framework.shiro.realm.ShiroCasUserRealm; -import com.zdxt.auth.framework.shiro.session.OnlineSessionFactory; -import com.zdxt.auth.framework.shiro.web.filter.CasFilter; -import com.zdxt.auth.framework.shiro.web.session.OnlineWebSessionManager; -import com.zdxt.auth.framework.shiro.web.session.SpringSessionValidationScheduler; -import com.zdxt.common.util.SpringUtils; -import org.apache.commons.io.IOUtils; -import org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy; -import org.apache.shiro.authc.pam.ModularRealmAuthenticator; -import org.apache.shiro.cache.MemoryConstrainedCacheManager; -import org.apache.shiro.cache.ehcache.EhCacheManager; -import org.apache.shiro.cas.CasSubjectFactory; -import org.apache.shiro.config.ConfigurationException; -import org.apache.shiro.io.ResourceUtils; -import org.apache.shiro.spring.LifecycleBeanPostProcessor; -import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; -import org.apache.shiro.spring.web.ShiroFilterFactoryBean; -import org.apache.shiro.web.filter.authc.LogoutFilter; -import org.apache.shiro.web.mgt.DefaultWebSecurityManager; -import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.web.filter.DelegatingFilterProxy; - -import javax.servlet.Filter; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * Shiro和Cas的整合配置文件 - * - * @author: QingWang.Li - * @date: 2020/5/13 14:49 - */ -// 启用cas环境时生效,环境切换在application.yml中配置 -@Profile("cas") -@Configuration -public class ShiroCasConfiguration { - - // Session超时时间,单位为毫秒(默认30分钟) - @Value("${shiro.session.expireTime}") - private int expireTime; - - // 设置Cookie的域名 - @Value("${shiro.cookie.domain}") - private String domain; - - // 设置cookie的有效访问路径 - @Value("${shiro.cookie.path}") - private String path; - - // 设置HttpOnly属性 - @Value("${shiro.cookie.httpOnly}") - private boolean httpOnly; - - // 设置Cookie的过期时间,秒为单位 - @Value("${shiro.cookie.maxAge}") - private int maxAge; - - // 登录地址 - @Value("${shiro.casLoginUrl}") - private String loginUrl; - - /** - * 缓存管理器 使用Ehcache实现 - */ - @Bean - public EhCacheManager getEhCacheManager() { - net.sf.ehcache.CacheManager cacheManager = net.sf.ehcache.CacheManager.getCacheManager("ruoyi"); - EhCacheManager em = new EhCacheManager(); - if (StringUtils.isNull(cacheManager)) { - em.setCacheManager(new net.sf.ehcache.CacheManager(getCacheManagerConfigFileInputStream())); - return em; - } else { - em.setCacheManager(cacheManager); - return em; - } - } - - /** - * 返回配置文件流 避免ehcache配置文件一直被占用,无法完全销毁项目重新部署 - */ - protected InputStream getCacheManagerConfigFileInputStream() { - String configFile = "classpath:ehcache/ehcache-shiro.xml"; - InputStream inputStream = null; - try { - inputStream = ResourceUtils.getInputStreamForPath(configFile); - byte[] b = IOUtils.toByteArray(inputStream); - InputStream in = new ByteArrayInputStream(b); - return in; - } catch (IOException e) { - throw new ConfigurationException( - "Unable to obtain input stream for cacheManagerConfigFile [" + configFile + "]", e); - } finally { - IOUtils.closeQuietly(inputStream); - } - } - - @Bean(name = "casRealm") - public ShiroCasUserRealm casRealm(@Value("${shiro.casServerUrlPrefix}") String casServerUrlPrefix, - @Value("${shiro.shiroServerUrlPrefix}") String shiroServerUrlPrefix, - @Value("${shiro.casFilterUrlPattern}") String casFilterUrlPattern, - EhCacheManager cacheManager) { - ShiroCasUserRealm casRealm = new ShiroCasUserRealm(); - // 认证通过后的默认角色 - casRealm.setDefaultRoles("ROLE_USER"); - // cas服务端地址前缀 - casRealm.setCasServerUrlPrefix(casServerUrlPrefix); - // 应用服务地址,用来接收cas服务端票证 - casRealm.setCasService(shiroServerUrlPrefix + casFilterUrlPattern); - - casRealm.setCacheManager(cacheManager); - return casRealm; - } - +//package com.zdxt.auth.framework.config; +// +//import at.pollux.thymeleaf.shiro.dialect.ShiroDialect; +//import com.zdxt.auth.common.utils.StringUtils; +//import com.zdxt.auth.framework.shiro.realm.ShiroCasUserRealm; +//import com.zdxt.auth.framework.shiro.session.OnlineSessionFactory; +//import com.zdxt.auth.framework.shiro.web.filter.CasFilter; +//import com.zdxt.auth.framework.shiro.web.session.OnlineWebSessionManager; +//import com.zdxt.auth.framework.shiro.web.session.SpringSessionValidationScheduler; +//import com.zdxt.common.util.SpringUtils; +//import org.apache.commons.io.IOUtils; +//import org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy; +//import org.apache.shiro.authc.pam.ModularRealmAuthenticator; +//import org.apache.shiro.cache.MemoryConstrainedCacheManager; +//import org.apache.shiro.cache.ehcache.EhCacheManager; +//import org.apache.shiro.cas.CasSubjectFactory; +//import org.apache.shiro.config.ConfigurationException; +////import org.apache.shiro.io.ResourceUtils; +//import org.apache.shiro.lang.io.ResourceUtils; +//import org.apache.shiro.spring.LifecycleBeanPostProcessor; +//import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; +//import org.apache.shiro.spring.web.ShiroFilterFactoryBean; +//import org.apache.shiro.web.filter.authc.LogoutFilter; +//import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +//import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.web.servlet.FilterRegistrationBean; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.context.annotation.Profile; +//import org.springframework.web.filter.DelegatingFilterProxy; +// +//import javax.servlet.Filter; +//import java.io.ByteArrayInputStream; +//import java.io.IOException; +//import java.io.InputStream; +//import java.util.HashMap; +//import java.util.LinkedHashMap; +//import java.util.Map; +// +///** +// * Shiro和Cas的整合配置文件 +// * +// * @author: QingWang.Li +// * @date: 2020/5/13 14:49 +// */ +//// 启用cas环境时生效,环境切换在application.yml中配置 +//@Profile("cas") +//@Configuration +//public class ShiroCasConfiguration { +// +// // Session超时时间,单位为毫秒(默认30分钟) +// @Value("${shiro.session.expireTime}") +// private int expireTime; +// +// // 设置Cookie的域名 +// @Value("${shiro.cookie.domain}") +// private String domain; +// +// // 设置cookie的有效访问路径 +// @Value("${shiro.cookie.path}") +// private String path; +// +// // 设置HttpOnly属性 +// @Value("${shiro.cookie.httpOnly}") +// private boolean httpOnly; +// +// // 设置Cookie的过期时间,秒为单位 +// @Value("${shiro.cookie.maxAge}") +// private int maxAge; +// +// // 登录地址 +// @Value("${shiro.casLoginUrl}") +// private String loginUrl; +// // /** -// * 自定义sessionDAO会话 +// * 缓存管理器 使用Ehcache实现 // */ // @Bean -// public OnlineSessionDAO sessionDAO() { -// OnlineSessionDAO sessionDAO = new OnlineSessionDAO(); -// return sessionDAO; +// public EhCacheManager getEhCacheManager() { +// net.sf.ehcache.CacheManager cacheManager = net.sf.ehcache.CacheManager.getCacheManager("ruoyi"); +// EhCacheManager em = new EhCacheManager(); +// if (StringUtils.isNull(cacheManager)) { +// em.setCacheManager(new net.sf.ehcache.CacheManager(getCacheManagerConfigFileInputStream())); +// return em; +// } else { +// em.setCacheManager(cacheManager); +// return em; +// } // } - - /** - * 自定义sessionFactory会话 - */ - @Bean - public OnlineSessionFactory sessionFactory() { - OnlineSessionFactory sessionFactory = new OnlineSessionFactory(); - return sessionFactory; - } - +// // /** -// * 会话管理器 +// * 返回配置文件流 避免ehcache配置文件一直被占用,无法完全销毁项目重新部署 +// */ +// protected InputStream getCacheManagerConfigFileInputStream() { +// String configFile = "classpath:ehcache/ehcache-shiro.xml"; +// InputStream inputStream = null; +// try { +// inputStream = ResourceUtils.getInputStreamForPath(configFile); +// byte[] b = IOUtils.toByteArray(inputStream); +// InputStream in = new ByteArrayInputStream(b); +// return in; +// } catch (IOException e) { +// throw new ConfigurationException( +// "Unable to obtain input stream for cacheManagerConfigFile [" + configFile + "]", e); +// } finally { +// IOUtils.closeQuietly(inputStream); +// } +// } +// +// @Bean(name = "casRealm") +// public ShiroCasUserRealm casRealm(@Value("${shiro.casServerUrlPrefix}") String casServerUrlPrefix, +// @Value("${shiro.shiroServerUrlPrefix}") String shiroServerUrlPrefix, +// @Value("${shiro.casFilterUrlPattern}") String casFilterUrlPattern, +// EhCacheManager cacheManager) { +// ShiroCasUserRealm casRealm = new ShiroCasUserRealm(); +// // 认证通过后的默认角色 +// casRealm.setDefaultRoles("ROLE_USER"); +// // cas服务端地址前缀 +// casRealm.setCasServerUrlPrefix(casServerUrlPrefix); +// // 应用服务地址,用来接收cas服务端票证 +// casRealm.setCasService(shiroServerUrlPrefix + casFilterUrlPattern); +// +// casRealm.setCacheManager(cacheManager); +// return casRealm; +// } +// +//// /** +//// * 自定义sessionDAO会话 +//// */ +//// @Bean +//// public OnlineSessionDAO sessionDAO() { +//// OnlineSessionDAO sessionDAO = new OnlineSessionDAO(); +//// return sessionDAO; +//// } +// +// /** +// * 自定义sessionFactory会话 +// */ +// @Bean +// public OnlineSessionFactory sessionFactory() { +// OnlineSessionFactory sessionFactory = new OnlineSessionFactory(); +// return sessionFactory; +// } +// +//// /** +//// * 会话管理器 +//// */ +//// @Bean +//// public OnlineWebSessionManager sessionManager() { +//// OnlineWebSessionManager manager = new OnlineWebSessionManager(); +//// // 加入缓存管理器 +//// manager.setCacheManager(getEhCacheManager()); +//// // 删除过期的session +//// manager.setDeleteInvalidSessions(true); +//// // 设置全局session超时时间 +//// manager.setGlobalSessionTimeout(expireTime * 60 * 1000); +//// // 去掉 JSESSIONID +//// manager.setSessionIdUrlRewritingEnabled(false); +//// // 定义要使用的无效的Session定时调度器 +//// manager.setSessionValidationScheduler(SpringUtils.getBean(SpringSessionValidationScheduler.class)); +//// // 是否定时检查session +//// manager.setSessionValidationSchedulerEnabled(true); +//// // 自定义SessionDao +//// manager.setSessionDAO(sessionDAO()); +//// // 自定义sessionFactory +//// manager.setSessionFactory(sessionFactory()); +//// return manager; +//// } +// +// /** +// * 配置安全管理器 +// **/ +// @Bean(name = "securityManager") +// public DefaultWebSecurityManager defaultWebSecurityManager(ModularRealmAuthenticator authenticator, +// ShiroCasUserRealm casRealm) { +// DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); +// // 设置授权策略,此步骤必须在设置realm的前面,不然会报错realm未配置 +// securityManager.setAuthenticator(authenticator); +// securityManager.setSubjectFactory(new CasSubjectFactory()); +// +// // 缓存管理器 +// securityManager.setCacheManager(new MemoryConstrainedCacheManager()); +// // 设置自定义验证策略 +// securityManager.setRealm(casRealm); +// +// return securityManager; +// } +// +// /** +// * 退出过滤器 +// */ +// public com.zdxt.auth.framework.shiro.web.filter.LogoutFilter logoutFilter() { +// com.zdxt.auth.framework.shiro.web.filter.LogoutFilter logoutFilter = new com.zdxt.auth.framework.shiro.web.filter.LogoutFilter(); +// logoutFilter.setCacheManager(getEhCacheManager()); +// logoutFilter.setLoginUrl(loginUrl); +// return logoutFilter; +// } +// +// /** +// * 配置登录过滤器 +// */ +// @Bean(name = "casFilter") +// public CasFilter casFilter(@Value("${shiro.casLoginUrl}") String loginUrl) { +// CasFilter casFilter = new CasFilter(); +// casFilter.setName("casFilter"); +// casFilter.setEnabled(true); +// casFilter.setFailureUrl(loginUrl); +// return casFilter; +// } +// +// /** +// * shiro 过滤器 +// */ +// @Bean(name = "shiroFilter") +// public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager, +// CasFilter casFilter, +// @Value("${shiro.casLogoutUrl}") String logoutUrl, +// @Value("${shiro.casLoginUrl}") String loginUrl, +// @Value("${shiro.casFilterUrlPattern}") String casFilterUrlPattern) { +// ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); +// // 设置安全管理器 +// shiroFilterFactoryBean.setSecurityManager(securityManager); +// // 设置登录地址 +// shiroFilterFactoryBean.setLoginUrl(loginUrl); +// // 设置登录成功地址 +// shiroFilterFactoryBean.setSuccessUrl("/"); +// // 配置拦截地址 +// Map filters = new HashMap<>(); +// filters.put("casFilter", casFilter); +// +// // 配置登出地址 5.0版本和3.0版本 +// LogoutFilter logoutFilter = new LogoutFilter(); +// logoutFilter.setRedirectUrl(logoutUrl); +// filters.put("logout", logoutFilter); +// +// // 注销成功,则跳转到指定页面 4.0版本 +// // filters.put("logout", logoutFilter()); +// +// shiroFilterFactoryBean.setFilters(filters); +// // 设置访问用户页面需要授权的操作 +// loadShiroFilterChain(shiroFilterFactoryBean, casFilterUrlPattern); +// // 将设置的权限设置到shiroFilterFactoryBean +// return shiroFilterFactoryBean; +// } +// +// /** +// * 1、当我们第一次访问客户端时,先去cas进行认证,成功后会返回一个ticket +// * 2、返回的ticket地址在casRealm已经进行了配置,shiroServerUrlPrefix + casFilterUrlPattern +// * 3、即地址为/shiro-cas,对该地址进行casFilter拦截 +// */ +// private void loadShiroFilterChain(ShiroFilterFactoryBean shiroFilterFactoryBean, String casFilterUrlPattern) { +// Map filterChainDefinitionMap = new LinkedHashMap<>(); +// +// filterChainDefinitionMap.put(casFilterUrlPattern, "casFilter"); +// +// // 对静态资源设置匿名访问 +// filterChainDefinitionMap.put("/favicon.ico**", "anon"); +// filterChainDefinitionMap.put("/ruoyi.png**", "anon"); +// filterChainDefinitionMap.put("/css/**", "anon"); +// filterChainDefinitionMap.put("/docs/**", "anon"); +// filterChainDefinitionMap.put("/fonts/**", "anon"); +// filterChainDefinitionMap.put("/img/**", "anon"); +// filterChainDefinitionMap.put("/ajax/**", "anon"); +// filterChainDefinitionMap.put("/js/**", "anon"); +// filterChainDefinitionMap.put("/ruoyi/**", "anon"); +// // 附件访问不拦截 +// filterChainDefinitionMap.put("/profile/**", "anon"); +// // 不拦截app登录 +// filterChainDefinitionMap.put("/appAjaxLogin", "anon"); +// filterChainDefinitionMap.put("/app/appLogin", "anon"); +// filterChainDefinitionMap.put("/app/**", "anon"); +// // 金蝶同步数据不拦截 +// filterChainDefinitionMap.put("/kingdee/dataSync/**", "anon"); +// filterChainDefinitionMap.put("/captcha/captchaImage**", "anon"); +// +// // 对外开放的controller不拦截 +// filterChainDefinitionMap.put("/external/**", "anon"); +// +// // 退出 logout地址,shiro去清除session +// filterChainDefinitionMap.put("/logout", "logout"); +// filterChainDefinitionMap.put("/**", "authc"); +// +// shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); +// } +// +// /** +// * 添加shiro的filter +// */ +// @Bean +// public FilterRegistrationBean filterRegistrationBean() { +// FilterRegistrationBean filterRegistration = new FilterRegistrationBean(); +// filterRegistration.setFilter(new DelegatingFilterProxy("shiroFilter")); +// filterRegistration.addInitParameter("targetFilterLifecycle", "true"); +// filterRegistration.setEnabled(true); +// filterRegistration.addUrlPatterns("/*"); +// return filterRegistration; +// } +// +// /** +// * 保证了shiro内部lifecycle函数bean的执行 +// */ +// @Bean(name = "lifecycleBeanPostProcessor") +// public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { +// return new LifecycleBeanPostProcessor(); +// } +// +// /** +// * 配置授权策略 +// */ +// @Bean(name = "authenticator") +// public ModularRealmAuthenticator modularRealmAuthenticator() { +// ModularRealmAuthenticator authenticator = new ModularRealmAuthenticator(); +// authenticator.setAuthenticationStrategy(new AtLeastOneSuccessfulStrategy()); +// return authenticator; +// } +// +// /** +// * 开启Shiro的注解(如@RequiresPermissions) +// * 需借助SpringAOP扫描使用Shiro注解的类 +// * 配置以下两个bean(DefaultAdvisorAutoProxyCreator和AuthorizationAttributeSourceAdvisor)即可实现此功能 +// * +// * @return +// */ +// @Bean +// public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() { +// DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator(); +// advisorAutoProxyCreator.setProxyTargetClass(true); +// return advisorAutoProxyCreator; +// } +// +// /** +// * 开启aop注解支持 +// * +// * @param securityManager +// * @return +// */ +// @Bean +// public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) { +// AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); +// authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); +// return authorizationAttributeSourceAdvisor; +// } +// +// /** +// * thymeleaf模板引擎和shiro框架的整合 // */ // @Bean -// public OnlineWebSessionManager sessionManager() { -// OnlineWebSessionManager manager = new OnlineWebSessionManager(); -// // 加入缓存管理器 -// manager.setCacheManager(getEhCacheManager()); -// // 删除过期的session -// manager.setDeleteInvalidSessions(true); -// // 设置全局session超时时间 -// manager.setGlobalSessionTimeout(expireTime * 60 * 1000); -// // 去掉 JSESSIONID -// manager.setSessionIdUrlRewritingEnabled(false); -// // 定义要使用的无效的Session定时调度器 -// manager.setSessionValidationScheduler(SpringUtils.getBean(SpringSessionValidationScheduler.class)); -// // 是否定时检查session -// manager.setSessionValidationSchedulerEnabled(true); -// // 自定义SessionDao -// manager.setSessionDAO(sessionDAO()); -// // 自定义sessionFactory -// manager.setSessionFactory(sessionFactory()); -// return manager; +// public ShiroDialect shiroDialect() { +// return new ShiroDialect(); // } - - /** - * 配置安全管理器 - **/ - @Bean(name = "securityManager") - public DefaultWebSecurityManager defaultWebSecurityManager(ModularRealmAuthenticator authenticator, - ShiroCasUserRealm casRealm) { - DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); - // 设置授权策略,此步骤必须在设置realm的前面,不然会报错realm未配置 - securityManager.setAuthenticator(authenticator); - securityManager.setSubjectFactory(new CasSubjectFactory()); - - // 缓存管理器 - securityManager.setCacheManager(new MemoryConstrainedCacheManager()); - // 设置自定义验证策略 - securityManager.setRealm(casRealm); - - return securityManager; - } - - /** - * 退出过滤器 - */ - public com.zdxt.auth.framework.shiro.web.filter.LogoutFilter logoutFilter() { - com.zdxt.auth.framework.shiro.web.filter.LogoutFilter logoutFilter = new com.zdxt.auth.framework.shiro.web.filter.LogoutFilter(); - logoutFilter.setCacheManager(getEhCacheManager()); - logoutFilter.setLoginUrl(loginUrl); - return logoutFilter; - } - - /** - * 配置登录过滤器 - */ - @Bean(name = "casFilter") - public CasFilter casFilter(@Value("${shiro.casLoginUrl}") String loginUrl) { - CasFilter casFilter = new CasFilter(); - casFilter.setName("casFilter"); - casFilter.setEnabled(true); - casFilter.setFailureUrl(loginUrl); - return casFilter; - } - - /** - * shiro 过滤器 - */ - @Bean(name = "shiroFilter") - public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager, - CasFilter casFilter, - @Value("${shiro.casLogoutUrl}") String logoutUrl, - @Value("${shiro.casLoginUrl}") String loginUrl, - @Value("${shiro.casFilterUrlPattern}") String casFilterUrlPattern) { - ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); - // 设置安全管理器 - shiroFilterFactoryBean.setSecurityManager(securityManager); - // 设置登录地址 - shiroFilterFactoryBean.setLoginUrl(loginUrl); - // 设置登录成功地址 - shiroFilterFactoryBean.setSuccessUrl("/"); - // 配置拦截地址 - Map filters = new HashMap<>(); - filters.put("casFilter", casFilter); - - // 配置登出地址 5.0版本和3.0版本 - LogoutFilter logoutFilter = new LogoutFilter(); - logoutFilter.setRedirectUrl(logoutUrl); - filters.put("logout", logoutFilter); - - // 注销成功,则跳转到指定页面 4.0版本 - // filters.put("logout", logoutFilter()); - - shiroFilterFactoryBean.setFilters(filters); - // 设置访问用户页面需要授权的操作 - loadShiroFilterChain(shiroFilterFactoryBean, casFilterUrlPattern); - // 将设置的权限设置到shiroFilterFactoryBean - return shiroFilterFactoryBean; - } - - /** - * 1、当我们第一次访问客户端时,先去cas进行认证,成功后会返回一个ticket - * 2、返回的ticket地址在casRealm已经进行了配置,shiroServerUrlPrefix + casFilterUrlPattern - * 3、即地址为/shiro-cas,对该地址进行casFilter拦截 - */ - private void loadShiroFilterChain(ShiroFilterFactoryBean shiroFilterFactoryBean, String casFilterUrlPattern) { - Map filterChainDefinitionMap = new LinkedHashMap<>(); - - filterChainDefinitionMap.put(casFilterUrlPattern, "casFilter"); - - // 对静态资源设置匿名访问 - filterChainDefinitionMap.put("/favicon.ico**", "anon"); - filterChainDefinitionMap.put("/ruoyi.png**", "anon"); - filterChainDefinitionMap.put("/css/**", "anon"); - filterChainDefinitionMap.put("/docs/**", "anon"); - filterChainDefinitionMap.put("/fonts/**", "anon"); - filterChainDefinitionMap.put("/img/**", "anon"); - filterChainDefinitionMap.put("/ajax/**", "anon"); - filterChainDefinitionMap.put("/js/**", "anon"); - filterChainDefinitionMap.put("/ruoyi/**", "anon"); - // 附件访问不拦截 - filterChainDefinitionMap.put("/profile/**", "anon"); - // 不拦截app登录 - filterChainDefinitionMap.put("/appAjaxLogin", "anon"); - filterChainDefinitionMap.put("/app/appLogin", "anon"); - filterChainDefinitionMap.put("/app/**", "anon"); - // 金蝶同步数据不拦截 - filterChainDefinitionMap.put("/kingdee/dataSync/**", "anon"); - filterChainDefinitionMap.put("/captcha/captchaImage**", "anon"); - - // 对外开放的controller不拦截 - filterChainDefinitionMap.put("/external/**", "anon"); - - // 退出 logout地址,shiro去清除session - filterChainDefinitionMap.put("/logout", "logout"); - filterChainDefinitionMap.put("/**", "authc"); - - shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); - } - - /** - * 添加shiro的filter - */ - @Bean - public FilterRegistrationBean filterRegistrationBean() { - FilterRegistrationBean filterRegistration = new FilterRegistrationBean(); - filterRegistration.setFilter(new DelegatingFilterProxy("shiroFilter")); - filterRegistration.addInitParameter("targetFilterLifecycle", "true"); - filterRegistration.setEnabled(true); - filterRegistration.addUrlPatterns("/*"); - return filterRegistration; - } - - /** - * 保证了shiro内部lifecycle函数bean的执行 - */ - @Bean(name = "lifecycleBeanPostProcessor") - public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { - return new LifecycleBeanPostProcessor(); - } - - /** - * 配置授权策略 - */ - @Bean(name = "authenticator") - public ModularRealmAuthenticator modularRealmAuthenticator() { - ModularRealmAuthenticator authenticator = new ModularRealmAuthenticator(); - authenticator.setAuthenticationStrategy(new AtLeastOneSuccessfulStrategy()); - return authenticator; - } - - /** - * 开启Shiro的注解(如@RequiresPermissions) - * 需借助SpringAOP扫描使用Shiro注解的类 - * 配置以下两个bean(DefaultAdvisorAutoProxyCreator和AuthorizationAttributeSourceAdvisor)即可实现此功能 - * - * @return - */ - @Bean - public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() { - DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator(); - advisorAutoProxyCreator.setProxyTargetClass(true); - return advisorAutoProxyCreator; - } - - /** - * 开启aop注解支持 - * - * @param securityManager - * @return - */ - @Bean - public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) { - AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); - authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); - return authorizationAttributeSourceAdvisor; - } - - /** - * thymeleaf模板引擎和shiro框架的整合 - */ - @Bean - public ShiroDialect shiroDialect() { - return new ShiroDialect(); - } - -} \ No newline at end of file +// +//} \ No newline at end of file diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java index 06f02775..14923c3a 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java @@ -1,6 +1,7 @@ package com.zdxt.auth.framework.config; import at.pollux.thymeleaf.shiro.dialect.ShiroDialect; +import com.zdxt.auth.common.utils.CipherKeyUtil; import com.zdxt.auth.common.utils.StringUtils; import com.zdxt.auth.framework.shiro.realm.UserRealm; import com.zdxt.auth.framework.shiro.web.filter.LogoutFilter; @@ -8,6 +9,7 @@ import com.zdxt.auth.framework.shiro.web.filter.captcha.CaptchaValidateFilter; import com.zdxt.auth.framework.shiro.web.filter.kickout.KickoutSessionFilter; import com.zdxt.common.util.CipherUtils; import com.zdxt.common.util.Constants; +//import org.apache.shiro.lang.codec.Base64; import org.apache.shiro.codec.Base64; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.session.mgt.SessionManager; @@ -27,6 +29,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; import javax.servlet.Filter; import java.util.LinkedHashMap; @@ -354,18 +358,19 @@ public class ShiroConfig { /** * 记住我 */ - public CookieRememberMeManager rememberMeManager() - { + public CookieRememberMeManager rememberMeManager() { CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager(); cookieRememberMeManager.setCookie(rememberMeCookie()); - if (StringUtils.isNotEmpty(cipherKey)) - { - cookieRememberMeManager.setCipherKey(Base64.decode(cipherKey)); - } - else - { - cookieRememberMeManager.setCipherKey(CipherUtils.generateNewKey(128, "AES").getEncoded()); + try { + KeyGenerator keygen = KeyGenerator.getInstance("AES"); + SecretKey deskey = keygen.generateKey(); + String value = Base64.encodeToString(deskey.getEncoded()); + cookieRememberMeManager.setCipherKey(Base64.decode(value)); +// cookieRememberMeManager.setCipherKey(Base64.decode(cipherKey)); + } catch(Exception e) { + } +// cookieRememberMeManager.setCipherKey(Base64.decode("fCq+/xW488hMTCD+cmJ3aQ==")); return cookieRememberMeManager; } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/realm/ShiroCasUserRealm.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/realm/ShiroCasUserRealm.java index 026f7ed5..926db142 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/realm/ShiroCasUserRealm.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/realm/ShiroCasUserRealm.java @@ -1,162 +1,162 @@ -package com.zdxt.auth.framework.shiro.realm; - -import cn.hutool.core.bean.BeanUtil; -import com.zdxt.auth.common.exception.user.*; -import com.zdxt.auth.common.utils.security.ShiroUtils; -import com.zdxt.auth.framework.shiro.service.LoginService; -import com.zdxt.auth.project.system.menu.service.IMenuService; -import com.zdxt.auth.project.system.role.service.IRoleService; -import com.zdxt.auth.project.system.user.mapper.UserMapper; -import com.zdxt.domain.auth.User; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.authc.*; -import org.apache.shiro.authz.AuthorizationInfo; -import org.apache.shiro.authz.SimpleAuthorizationInfo; -import org.apache.shiro.cas.CasRealm; -import org.apache.shiro.cas.CasToken; -import org.apache.shiro.subject.PrincipalCollection; -import org.apache.shiro.subject.SimplePrincipalCollection; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.HashSet; -import java.util.Set; - -/** - * shiro和cas整合的Realm 处理登录 权限 - * @author: QingWang.Li - * @date: 2020/5/13 14:17 - */ -public class ShiroCasUserRealm extends CasRealm implements ZdxtUserRealm { - private static Logger log = LoggerFactory.getLogger(ShiroCasUserRealm.class); - - @Autowired - private IMenuService menuService; - - @Autowired - private IRoleService roleService; - - @Autowired - private LoginService loginService; - - @Autowired - private UserMapper userMapper; - - /** - * 在调用subject.login()时,首先调用此接口 - */ - @Override - public AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { - // 调用父类的方法,然后授权用户 - AuthenticationInfo authc = super.doGetAuthenticationInfo(token); - // 获得用户名 - String username = (String) authc.getPrincipals().getPrimaryPrincipal(); - - // 获取ticket - CasToken casToken = (CasToken) token; - String ticket = (String) casToken.getCredentials(); - if(ticket!=null&&!ticket.equals("")){ - // 从数据库中获取用户信息 - User user = userMapper.selectUserByLoginName(username); - if (BeanUtil.isNotEmpty(user)) { - PrincipalCollection principalCollection = new SimplePrincipalCollection(user, getName()); - - // 返回携带用户信息和ticket的信息对象 - return new SimpleAuthenticationInfo(principalCollection, ticket); - } - return null; - }else{ - UsernamePasswordToken upToken = (UsernamePasswordToken) token; - String username1 = upToken.getUsername(); - String password = ""; - if (upToken.getPassword() != null) - { - password = new String(upToken.getPassword()); - } - - User user = null; - try - { - user = loginService.login(username1, password); - } - catch (CaptchaException e) - { - throw new AuthenticationException(e.getMessage(), e); - } - catch (UserNotExistsException e) - { - throw new UnknownAccountException(e.getMessage(), e); - } - catch (UserPasswordNotMatchException e) - { - throw new IncorrectCredentialsException(e.getMessage(), e); - } - catch (UserPasswordRetryLimitExceedException e) - { - throw new ExcessiveAttemptsException(e.getMessage(), e); - } - catch (UserBlockedException e) - { - throw new LockedAccountException(e.getMessage(), e); - } - catch (RoleBlockedException e) - { - throw new LockedAccountException(e.getMessage(), e); - } - catch (Exception e) - { - log.info("对用户[" + username + "]进行登录验证..验证未通过{}", e.getMessage()); - throw new AuthenticationException(e.getMessage(), e); - } - SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, password, getName()); - return info; - } - - } - - /** - * 进行权限验证的时候,调用方法,将用户的权限信息写进SimpleAuthorizationInfo - */ - @Override - public AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { - // 用户名称 - log.info("进入了权限认证"); - Object username = principals.getPrimaryPrincipal(); - SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); - // 从数据库获取用户权限 - - // 简单例子 - // Set permission = new HashSet<>(); - // permission.add("sys:dept:list"); - // info.setStringPermissions(permission); - - User user = ShiroUtils.getSysUser(); - // 角色列表 - Set roles = new HashSet(); - // 功能列表 - Set menus = new HashSet(); - // 管理员拥有所有权限 - if (user.isAdmin()) { - info.addRole("admin"); - info.addStringPermission("*:*:*"); - } else { - roles = roleService.selectRoleKeys(user.getUserId()); - menus = menuService.selectPermsByUserId(user.getUserId()); - // 角色加入AuthorizationInfo认证对象 - info.setRoles(roles); - // 权限加入AuthorizationInfo认证对象 - info.setStringPermissions(menus); - } - return info; - } - - /** - * 清理缓存权限 - */ - @Override - public void clearCachedAuthorizationInfo() - { - this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals()); - } -} \ No newline at end of file +//package com.zdxt.auth.framework.shiro.realm; +// +//import cn.hutool.core.bean.BeanUtil; +//import com.zdxt.auth.common.exception.user.*; +//import com.zdxt.auth.common.utils.security.ShiroUtils; +//import com.zdxt.auth.framework.shiro.service.LoginService; +//import com.zdxt.auth.project.system.menu.service.IMenuService; +//import com.zdxt.auth.project.system.role.service.IRoleService; +//import com.zdxt.auth.project.system.user.mapper.UserMapper; +//import com.zdxt.domain.auth.User; +//import org.apache.shiro.SecurityUtils; +//import org.apache.shiro.authc.*; +//import org.apache.shiro.authz.AuthorizationInfo; +//import org.apache.shiro.authz.SimpleAuthorizationInfo; +//import org.apache.shiro.cas.CasRealm; +//import org.apache.shiro.cas.CasToken; +//import org.apache.shiro.subject.PrincipalCollection; +//import org.apache.shiro.subject.SimplePrincipalCollection; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +// +//import java.util.HashSet; +//import java.util.Set; +// +///** +// * shiro和cas整合的Realm 处理登录 权限 +// * @author: QingWang.Li +// * @date: 2020/5/13 14:17 +// */ +//public class ShiroCasUserRealm extends CasRealm implements ZdxtUserRealm { +// private static Logger log = LoggerFactory.getLogger(ShiroCasUserRealm.class); +// +// @Autowired +// private IMenuService menuService; +// +// @Autowired +// private IRoleService roleService; +// +// @Autowired +// private LoginService loginService; +// +// @Autowired +// private UserMapper userMapper; +// +// /** +// * 在调用subject.login()时,首先调用此接口 +// */ +// @Override +// public AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { +// // 调用父类的方法,然后授权用户 +// AuthenticationInfo authc = super.doGetAuthenticationInfo(token); +// // 获得用户名 +// String username = (String) authc.getPrincipals().getPrimaryPrincipal(); +// +// // 获取ticket +// CasToken casToken = (CasToken) token; +// String ticket = (String) casToken.getCredentials(); +// if(ticket!=null&&!ticket.equals("")){ +// // 从数据库中获取用户信息 +// User user = userMapper.selectUserByLoginName(username); +// if (BeanUtil.isNotEmpty(user)) { +// PrincipalCollection principalCollection = new SimplePrincipalCollection(user, getName()); +// +// // 返回携带用户信息和ticket的信息对象 +// return new SimpleAuthenticationInfo(principalCollection, ticket); +// } +// return null; +// }else{ +// UsernamePasswordToken upToken = (UsernamePasswordToken) token; +// String username1 = upToken.getUsername(); +// String password = ""; +// if (upToken.getPassword() != null) +// { +// password = new String(upToken.getPassword()); +// } +// +// User user = null; +// try +// { +// user = loginService.login(username1, password); +// } +// catch (CaptchaException e) +// { +// throw new AuthenticationException(e.getMessage(), e); +// } +// catch (UserNotExistsException e) +// { +// throw new UnknownAccountException(e.getMessage(), e); +// } +// catch (UserPasswordNotMatchException e) +// { +// throw new IncorrectCredentialsException(e.getMessage(), e); +// } +// catch (UserPasswordRetryLimitExceedException e) +// { +// throw new ExcessiveAttemptsException(e.getMessage(), e); +// } +// catch (UserBlockedException e) +// { +// throw new LockedAccountException(e.getMessage(), e); +// } +// catch (RoleBlockedException e) +// { +// throw new LockedAccountException(e.getMessage(), e); +// } +// catch (Exception e) +// { +// log.info("对用户[" + username + "]进行登录验证..验证未通过{}", e.getMessage()); +// throw new AuthenticationException(e.getMessage(), e); +// } +// SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, password, getName()); +// return info; +// } +// +// } +// +// /** +// * 进行权限验证的时候,调用方法,将用户的权限信息写进SimpleAuthorizationInfo +// */ +// @Override +// public AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { +// // 用户名称 +// log.info("进入了权限认证"); +// Object username = principals.getPrimaryPrincipal(); +// SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); +// // 从数据库获取用户权限 +// +// // 简单例子 +// // Set permission = new HashSet<>(); +// // permission.add("sys:dept:list"); +// // info.setStringPermissions(permission); +// +// User user = ShiroUtils.getSysUser(); +// // 角色列表 +// Set roles = new HashSet(); +// // 功能列表 +// Set menus = new HashSet(); +// // 管理员拥有所有权限 +// if (user.isAdmin()) { +// info.addRole("admin"); +// info.addStringPermission("*:*:*"); +// } else { +// roles = roleService.selectRoleKeys(user.getUserId()); +// menus = menuService.selectPermsByUserId(user.getUserId()); +// // 角色加入AuthorizationInfo认证对象 +// info.setRoles(roles); +// // 权限加入AuthorizationInfo认证对象 +// info.setStringPermissions(menus); +// } +// return info; +// } +// +// /** +// * 清理缓存权限 +// */ +// @Override +// public void clearCachedAuthorizationInfo() +// { +// this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals()); +// } +//} \ No newline at end of file diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/service/PasswordService.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/service/PasswordService.java index b729ea82..41eed6c0 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/service/PasswordService.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/service/PasswordService.java @@ -7,10 +7,12 @@ import com.zdxt.auth.common.exception.user.UserPasswordRetryLimitExceedException import com.zdxt.auth.common.utils.MessageUtils; import com.zdxt.auth.framework.manager.AsyncManager; import com.zdxt.auth.framework.manager.factory.AsyncFactory; +import com.zdxt.common.util.Md5Hash; import com.zdxt.domain.auth.User; import org.apache.shiro.cache.Cache; import org.apache.shiro.cache.CacheManager; -import org.apache.shiro.crypto.hash.Md5Hash; +//import org.apache.shiro.crypto.hash.Md5Hash; +import org.apache.shiro.crypto.hash.SimpleHash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -70,7 +72,9 @@ public class PasswordService { } public String encryptPassword(String username, String password, String salt) { - return new Md5Hash(username + password + salt).toHex().toString(); + +// return new SimpleHash(username + password + salt).toHex().toString(); + return new Md5Hash(username + password + salt).toHex(); } public void unlock(String loginName) { diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/CasFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/CasFilter.java index 64384552..a0c5bc82 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/CasFilter.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/CasFilter.java @@ -1,73 +1,73 @@ -package com.zdxt.auth.framework.shiro.web.filter; - -import org.apache.shiro.authc.AuthenticationToken; -import org.apache.shiro.cas.CasToken; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestMethod; - -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; - -/** - * cas单点登录过滤器 - * - * @author: QingWang.Li - * @date: 2020/5/14 9:13 - */ -public class CasFilter extends org.apache.shiro.cas.CasFilter { - private static Logger logger = LoggerFactory.getLogger(CasFilter.class); - private static final String TICKET_PARAMETER = "ticket"; - - public CasFilter() { - } - - @Override - public AuthenticationToken createToken(ServletRequest request, ServletResponse response) throws Exception { - // 获取请求的ticket - HttpServletRequest httpRequest = (HttpServletRequest) request; - String ticket = getRequestTicket(httpRequest); - if (StringUtils.isEmpty(ticket)) { - logger.debug("票证获取失败,票证为空!"); - return null; - } - return new CasToken(ticket); - } - - /** - * 拒绝除了option以外的所有请求 - **/ - @Override - public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) { - if (((HttpServletRequest) request).getMethod().equals(RequestMethod.OPTIONS.name())) { - return true; - } - return false; - } - - @Override - public boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { - // 获取ticket,如果不存在,直接返回false - String ticket = getRequestTicket((HttpServletRequest) request); - if (StringUtils.isEmpty(ticket)) { - return false; - } - return this.executeLogin(request, response); - } - - /** - * 获取请求的ticket - */ - private String getRequestTicket(HttpServletRequest httpRequest) { - // 从参数中获取ticket - String ticket = httpRequest.getParameter(TICKET_PARAMETER); - if (StringUtils.isEmpty(ticket)) { - // 如果为空的话,则从header中获取参数 - ticket = httpRequest.getHeader(TICKET_PARAMETER); - } - return ticket; - } - -} +//package com.zdxt.auth.framework.shiro.web.filter; +// +//import org.apache.shiro.authc.AuthenticationToken; +//import org.apache.shiro.cas.CasToken; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.util.StringUtils; +//import org.springframework.web.bind.annotation.RequestMethod; +// +//import javax.servlet.ServletRequest; +//import javax.servlet.ServletResponse; +//import javax.servlet.http.HttpServletRequest; +// +///** +// * cas单点登录过滤器 +// * +// * @author: QingWang.Li +// * @date: 2020/5/14 9:13 +// */ +//public class CasFilter extends org.apache.shiro.cas.CasFilter { +// private static Logger logger = LoggerFactory.getLogger(CasFilter.class); +// private static final String TICKET_PARAMETER = "ticket"; +// +// public CasFilter() { +// } +// +// @Override +// public AuthenticationToken createToken(ServletRequest request, ServletResponse response) throws Exception { +// // 获取请求的ticket +// HttpServletRequest httpRequest = (HttpServletRequest) request; +// String ticket = getRequestTicket(httpRequest); +// if (StringUtils.isEmpty(ticket)) { +// logger.debug("票证获取失败,票证为空!"); +// return null; +// } +// return new CasToken(ticket); +// } +// +// /** +// * 拒绝除了option以外的所有请求 +// **/ +// @Override +// public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) { +// if (((HttpServletRequest) request).getMethod().equals(RequestMethod.OPTIONS.name())) { +// return true; +// } +// return false; +// } +// +// @Override +// public boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { +// // 获取ticket,如果不存在,直接返回false +// String ticket = getRequestTicket((HttpServletRequest) request); +// if (StringUtils.isEmpty(ticket)) { +// return false; +// } +// return this.executeLogin(request, response); +// } +// +// /** +// * 获取请求的ticket +// */ +// private String getRequestTicket(HttpServletRequest httpRequest) { +// // 从参数中获取ticket +// String ticket = httpRequest.getParameter(TICKET_PARAMETER); +// if (StringUtils.isEmpty(ticket)) { +// // 如果为空的话,则从header中获取参数 +// ticket = httpRequest.getHeader(TICKET_PARAMETER); +// } +// return ticket; +// } +// +//} diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/LogoutFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/LogoutFilter.java index b38c81b7..bf0d01b4 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/LogoutFilter.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/web/filter/LogoutFilter.java @@ -1,7 +1,6 @@ package com.zdxt.auth.framework.shiro.web.filter; import java.io.Serializable; -import java.net.URLEncoder; import java.util.Deque; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; @@ -24,11 +23,9 @@ import com.zdxt.auth.common.utils.StringUtils; import com.zdxt.auth.common.utils.security.ShiroUtils; import com.zdxt.auth.framework.manager.AsyncManager; import com.zdxt.auth.framework.manager.factory.AsyncFactory; -import org.slw.sso.client.SsoClient; -import org.slw.sso.config.SsoConfig; + import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; + /** * 退出过滤器 diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java index 0c8b27c6..18a948f0 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java @@ -96,6 +96,8 @@ public class LoginController extends BaseController secretKey = AesHelper.desEncrypt(secretKey); // UsernamePasswordToken token = new UsernamePasswordToken(username, password, false); UserToken token = new UserToken(secretName, secretKey, LoginType.PASSWORD); + //禁止使用rememberMe + token.setRememberMe(false); Subject subject = SecurityUtils.getSubject(); try { if ("1".equals(type)) { //APP @@ -186,6 +188,8 @@ public class LoginController extends BaseController loginDTO.setSecretKey(AesHelper.desEncrypt(loginDTO.getSecretKey())); // UsernamePasswordToken token = new UsernamePasswordToken(username, password, false); UserToken token = new UserToken(loginDTO.getSecretName(), loginDTO.getSecretKey(), LoginType.PASSWORD); + //禁止使用rememberMe + token.setRememberMe(false); Subject subject = SecurityUtils.getSubject(); try { //PC diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java index 2b280713..0d3be96f 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/UserServiceImpl.java @@ -30,7 +30,6 @@ import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; -import org.apache.shiro.crypto.hash.Md5Hash; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/ajax/libs/jquery-layout/jquery-ui-latest.js b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/ajax/libs/jquery-layout/jquery-ui-latest.js index 6dc062e6..9041634a 100644 --- a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/ajax/libs/jquery-layout/jquery-ui-latest.js +++ b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/ajax/libs/jquery-layout/jquery-ui-latest.js @@ -147,7 +147,7 @@ function focusable( element, isTabIndexNotNaN ) { function visible( element ) { return $.expr.filters.visible( element ) && - !$( element ).parents().andSelf().filter(function() { + !$( element ).parents().addBack().filter(function() { return $.css( this, "visibility" ) === "hidden"; }).length; } @@ -6153,7 +6153,7 @@ $.widget("ui.draggable", $.ui.mouse, { var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; $(this.options.handle, this.element) .find("*") - .andSelf() + .addBack() .each(function() { if(this == event.target) handle = true; }); @@ -6913,7 +6913,7 @@ $.ui.ddmanager = { var m = $.ui.ddmanager.droppables[t.options.scope] || []; var type = event ? event.type : null; // workaround for #2317 - var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); + var list = (t.currentItem || t.element).find(":data(droppable)").addBack(); droppablesLoop: for (var i = 0; i < m.length; i++) { @@ -7756,7 +7756,7 @@ $.effects.animateClass = function( value, duration, easing, callback ) { var animated = $( this ), baseClass = animated.attr( "class" ) || "", applyClassChange, - allAnimations = o.children ? animated.find( "*" ).andSelf() : animated; + allAnimations = o.children ? animated.find( "*" ).addBack() : animated; // map the animated objects to store the original styles. allAnimations = allAnimations.map(function() { @@ -9377,7 +9377,7 @@ $.widget( "ui.menu", { // Destroy (sub)menus this.element .removeAttr( "aria-activedescendant" ) - .find( ".ui-menu" ).andSelf() + .find( ".ui-menu" ).addBack() .removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" ) .removeAttr( "role" ) .removeAttr( "tabIndex" ) @@ -10823,7 +10823,7 @@ $.widget("ui.selectable", $.ui.mouse, { } }); - $(event.target).parents().andSelf().each(function() { + $(event.target).parents().addBack().each(function() { var selectee = $.data(this, "selectable-item"); if (selectee) { var doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass('ui-selected'); @@ -11217,7 +11217,7 @@ $.widget( "ui.slider", $.ui.mouse, { .focus(); offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); + mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" ); this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { left: event.pageX - offset.left - ( closestHandle.width() / 2 ), top: event.pageY - offset.top - @@ -11698,7 +11698,7 @@ $.widget("ui.sortable", $.ui.mouse, { if(this.options.handle && !overrideHandle) { var validHandle = false; - $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); + $(this.options.handle, currentItem).find("*").addBack().each(function() { if(this == event.target) validHandle = true; }); if(!validHandle) return false; } @@ -14592,7 +14592,7 @@ $.widget( "ui.tooltip", { }); // remove title attributes to prevent native tooltips - this.element.find( this.options.items ).andSelf().each(function() { + this.element.find( this.options.items ).addBack().each(function() { var element = $( this ); if ( element.is( "[title]" ) ) { element @@ -14604,7 +14604,7 @@ $.widget( "ui.tooltip", { _enable: function() { // restore title attributes - this.element.find( this.options.items ).andSelf().each(function() { + this.element.find( this.options.items ).addBack().each(function() { var element = $( this ); if ( element.data( "ui-tooltip-title" ) ) { element.attr( "title", element.data( "ui-tooltip-title" ) ); diff --git a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/information/information.html b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/information/information.html index f0b76ea4..69bf01f9 100644 --- a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/information/information.html +++ b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/information/information.html @@ -49,7 +49,7 @@ 删除 -
+
diff --git a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelModuleController.java b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelModuleController.java index 90dca375..e7761ded 100644 --- a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelModuleController.java +++ b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelModuleController.java @@ -10,6 +10,8 @@ import com.zdxt.excel.service.IModuleExcelService; import com.zdxt.excel.upload.util.FileAndStreamUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.TransactionException; @@ -30,9 +32,8 @@ import java.util.List; */ @Controller @RequestMapping(value="/excel/module") -@Slf4j public class ExcelModuleController extends BaseController { - + private static final Logger log = LoggerFactory.getLogger(ExcelModuleController.class); private String prefix = "excel/module"; public static final Integer FILE_DIRECTORY_BEGIN_INDEX = 0; diff --git a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelUploadHisController.java b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelUploadHisController.java index d58eabd6..aa5cee9c 100644 --- a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelUploadHisController.java +++ b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/controller/ExcelUploadHisController.java @@ -9,6 +9,8 @@ import com.zdxt.excel.service.IExcelUploadHisService; import com.zdxt.excel.upload.util.FileAndStreamUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -26,9 +28,9 @@ import java.util.List; */ @Controller @RequestMapping(value="/excel/his") -@Slf4j public class ExcelUploadHisController extends BaseController { + private static final Logger log = LoggerFactory.getLogger(ExcelUploadHisController.class); private String prefix = "excel/his"; @Autowired diff --git a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/AttachmentUpload.java b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/AttachmentUpload.java index 70143741..077495d4 100644 --- a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/AttachmentUpload.java +++ b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/AttachmentUpload.java @@ -3,7 +3,6 @@ package com.zdxt.excel.domain; import com.zdxt.common.BaseDomain; import lombok.Data; -@Data public class AttachmentUpload extends BaseDomain { /** @@ -57,4 +56,83 @@ public class AttachmentUpload extends BaseDomain { */ private String downloadUrl; + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExcelName() { + return excelName; + } + + public void setExcelName(String excelName) { + this.excelName = excelName; + } + + public String getExcelObjectName() { + return excelObjectName; + } + + public void setExcelObjectName(String excelObjectName) { + this.excelObjectName = excelObjectName; + } + + public String getExcelPath() { + return excelPath; + } + + public void setExcelPath(String excelPath) { + this.excelPath = excelPath; + } + + public Long getExcelSize() { + return excelSize; + } + + public void setExcelSize(Long excelSize) { + this.excelSize = excelSize; + } + + public String getExcelSuffix() { + return excelSuffix; + } + + public void setExcelSuffix(String excelSuffix) { + this.excelSuffix = excelSuffix; + } + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } + + public String getUploadStatus() { + return uploadStatus; + } + + public void setUploadStatus(String uploadStatus) { + this.uploadStatus = uploadStatus; + } + + public String getExcelMdName() { + return excelMdName; + } + + public void setExcelMdName(String excelMdName) { + this.excelMdName = excelMdName; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public void setDownloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + } } diff --git a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelModule.java b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelModule.java index a0ca4483..defc528a 100644 --- a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelModule.java +++ b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelModule.java @@ -2,7 +2,7 @@ package com.zdxt.excel.domain; import lombok.Data; -@Data +//@Data public class ExcelModule extends AttachmentUpload { /** @@ -10,4 +10,11 @@ public class ExcelModule extends AttachmentUpload { */ private String moduleType; + public String getModuleType() { + return moduleType; + } + + public void setModuleType(String moduleType) { + this.moduleType = moduleType; + } } diff --git a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelUpload.java b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelUpload.java index 62eb396f..1a2bf078 100644 --- a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelUpload.java +++ b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/domain/ExcelUpload.java @@ -3,7 +3,7 @@ package com.zdxt.excel.domain; import com.zdxt.common.BaseDomain; import lombok.Data; -@Data + public class ExcelUpload extends BaseDomain { /** @@ -80,4 +80,123 @@ public class ExcelUpload extends BaseDomain { */ private String activityType; + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAttachmentName() { + return attachmentName; + } + + public void setAttachmentName(String attachmentName) { + this.attachmentName = attachmentName; + } + + public String getAttachmentObjectName() { + return attachmentObjectName; + } + + public void setAttachmentObjectName(String attachmentObjectName) { + this.attachmentObjectName = attachmentObjectName; + } + + public String getAttachmentPath() { + return attachmentPath; + } + + public void setAttachmentPath(String attachmentPath) { + this.attachmentPath = attachmentPath; + } + + public Long getAttachmentSize() { + return attachmentSize; + } + + public void setAttachmentSize(Long attachmentSize) { + this.attachmentSize = attachmentSize; + } + + public String getAttachmentSuffix() { + return attachmentSuffix; + } + + public void setAttachmentSuffix(String attachmentSuffix) { + this.attachmentSuffix = attachmentSuffix; + } + + public String getAttachmentBucketName() { + return attachmentBucketName; + } + + public void setAttachmentBucketName(String attachmentBucketName) { + this.attachmentBucketName = attachmentBucketName; + } + + public String getAttachmentUploadStatus() { + return attachmentUploadStatus; + } + + public void setAttachmentUploadStatus(String attachmentUploadStatus) { + this.attachmentUploadStatus = attachmentUploadStatus; + } + + public String getAttachmentMdName() { + return attachmentMdName; + } + + public void setAttachmentMdName(String attachmentMdName) { + this.attachmentMdName = attachmentMdName; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public void setDownloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + } + + public String getUploadType() { + return uploadType; + } + + public void setUploadType(String uploadType) { + this.uploadType = uploadType; + } + + public String getUploadMessage() { + return uploadMessage; + } + + public void setUploadMessage(String uploadMessage) { + this.uploadMessage = uploadMessage; + } + + public String getErrorExcelObjName() { + return errorExcelObjName; + } + + public void setErrorExcelObjName(String errorExcelObjName) { + this.errorExcelObjName = errorExcelObjName; + } + + public String getErrorExcelPath() { + return errorExcelPath; + } + + public void setErrorExcelPath(String errorExcelPath) { + this.errorExcelPath = errorExcelPath; + } + + public String getActivityType() { + return activityType; + } + + public void setActivityType(String activityType) { + this.activityType = activityType; + } } diff --git a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/test/TestExportService.java b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/test/TestExportService.java index b40a95de..b0c54133 100644 --- a/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/test/TestExportService.java +++ b/lib/EmergencyService/zdxtEmergencyExcelService/src/main/java/com/zdxt/excel/test/TestExportService.java @@ -1,16 +1,19 @@ package com.zdxt.excel.test; +import com.zdxt.excel.controller.ExcelUploadHisController; import com.zdxt.excel.domain.ExcelUpload; import com.zdxt.excel.export.service.IExcelExportDataService; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service -@Slf4j public class TestExportService implements IExcelExportDataService { + private static final Logger log = LoggerFactory.getLogger(TestExportService.class); @Override public List getData(ExcelUpload param) { log.error("test param+++++++++++++++++++++++++"+param.getUploadType()); diff --git a/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/feign/PublicMessageApiImpl.java b/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/feign/PublicMessageApiImpl.java index 5337b66d..379a659f 100644 --- a/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/feign/PublicMessageApiImpl.java +++ b/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/feign/PublicMessageApiImpl.java @@ -125,7 +125,7 @@ public class PublicMessageApiImpl implements PublicMessageApi { BeanUtil.copyProperties(messageInfoDTO,messageInfo); tioWsMsgHandler.sendMessage(channelContextByUser.tioConfig,objectMapper,messageInfo,userId); }catch (Exception e){ - log.error("消息推送失败",e); +// log.error("消息推送失败",e); } return ZDResponse.success("推送成功"); } diff --git a/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/tio/TioWsMsgHandler.java b/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/tio/TioWsMsgHandler.java index 87e0cf81..236f2d4f 100644 --- a/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/tio/TioWsMsgHandler.java +++ b/lib/EmergencyService/zdxtEmergencyMessageService/src/main/java/com/zdxt/message/tio/TioWsMsgHandler.java @@ -5,7 +5,7 @@ import cn.hutool.core.bean.BeanUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.sun.org.apache.bcel.internal.generic.NEW; +//import com.sun.org.apache.bcel.internal.generic.NEW; import com.zdxt.auth.dto.UserBean; import com.zdxt.auth.feign.UserApi; import com.zdxt.common.util.StringUtils; diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/ThirdLoginController.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/ThirdLoginController.java index 59a4aa32..1a826df8 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/ThirdLoginController.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/ThirdLoginController.java @@ -3,6 +3,7 @@ package com.zdxt.code.controller; import com.alibaba.fastjson.JSONObject; import com.auth0.jwt.JWTVerifier; import com.zdxt.auth.feign.UserApi; +import com.zdxt.auth.framework.config.CsrfFilter; import com.zdxt.auth.framework.shiro.jwt.JWTUtils; import com.zdxt.auth.project.system.user.service.IUserService; import com.zdxt.code.domain.SiqLogin; @@ -12,6 +13,8 @@ import com.zdxt.common.util.IdCardCryptoUtil; import com.zdxt.common.ZDResponse; import com.zdxt.domain.auth.User; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -23,11 +26,10 @@ import java.util.Map; /** * 第三方登录控制层 */ -@Slf4j @Controller @RequestMapping("/thirdLogin") public class ThirdLoginController { - + private static final Logger log = LoggerFactory.getLogger(ThirdLoginController.class); @Value("${siq.code}") private String code; diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/MssqApiService.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/MssqApiService.java index 50f01d47..411b8750 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/MssqApiService.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/MssqApiService.java @@ -16,5 +16,10 @@ public interface MssqApiService { */ Boolean addMssqOrder(MssqAddOrder mssqAddOrder) throws Exception; + /** + * 获取token + * @return + * @throws Exception + */ MssqBaseDomain getMssqToken() throws Exception; } diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/AccessTokenServiceImpl.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/AccessTokenServiceImpl.java index 398bede4..ef6fcdb2 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/AccessTokenServiceImpl.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/AccessTokenServiceImpl.java @@ -5,6 +5,8 @@ import com.zdxt.code.service.IAccessTokenService; import com.zdxt.code.utils.HttpUtil; import lombok.extern.slf4j.Slf4j; import org.apache.poi.hssf.record.DVALRecord; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -15,9 +17,8 @@ import java.util.Map; * 获取登录令牌接口 包含粤政易,市认证平台 */ @Service -@Slf4j public class AccessTokenServiceImpl implements IAccessTokenService { - + private static final Logger log = LoggerFactory.getLogger(AccessTokenServiceImpl.class); //粤政易 认证信息 // @Value("${yzy.yzyUr}") private String YZYUrl; diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterpriseInformationServiceImpl.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterpriseInformationServiceImpl.java index 46248b21..980208b2 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterpriseInformationServiceImpl.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterpriseInformationServiceImpl.java @@ -25,8 +25,11 @@ import com.zdxt.code.service.IEnterpriseMerchantAuthorizationService; import com.zdxt.code.service.IQrCodeGenerateHistoryService; import com.zdxt.code.utils.PasswordTools; import com.zdxt.code.utils.QRCodeUtil; +import com.zdxt.code.utils.ServiceInvocation; import com.zdxt.common.util.DateUtils; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -41,10 +44,10 @@ import org.springframework.web.multipart.MultipartFile; * @author chenrui * @date 2024-02-20 */ -@Slf4j @Service -public class EnterpriseInformationServiceImpl implements IEnterpriseInformationService -{ +public class EnterpriseInformationServiceImpl implements IEnterpriseInformationService { + private static final Logger log = LoggerFactory.getLogger(EnterpriseInformationServiceImpl.class); + @Autowired private EnterpriseInformationMapper enterpriseInformationMapper; diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/MssqApiServiceImpl.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/MssqApiServiceImpl.java index 1077e28c..93393d1b 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/MssqApiServiceImpl.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/MssqApiServiceImpl.java @@ -6,16 +6,20 @@ import com.zdxt.code.domain.MssqBaseDomain; import com.zdxt.code.service.MssqApiService; import com.zdxt.code.utils.ServiceInvocation; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import static com.zdxt.code.utils.ServiceInvocation.gatewaySignEncode; import static com.zdxt.code.utils.ServiceInvocation.httpRequest; -@Slf4j @Service public class MssqApiServiceImpl implements MssqApiService { + + private static final Logger log = LoggerFactory.getLogger(MssqApiServiceImpl.class); + @Value("${mssq.apiUrl}") private String mssqUrl; diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java index a1ed200b..8cb27fba 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java @@ -15,6 +15,7 @@ import com.zdxt.code.domain.Zfryjdm2405301; import com.zdxt.code.mapper.Xzjcjbxx025711Mapper; import com.zdxt.code.service.IEnterpriseInformationService; import com.zdxt.code.service.ThirdLoginService; +import com.zdxt.code.utils.ServiceInvocation; import com.zdxt.common.util.IdCardCryptoUtil; import com.zdxt.common.ZDResponse; import com.zdxt.common.util.DateUtils; @@ -22,6 +23,8 @@ import com.zdxt.common.util.UserConstants; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -32,11 +35,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -@Slf4j @Service public class ThirdLoginServiceImpl implements ThirdLoginService { - + private static final Logger log = LoggerFactory.getLogger(ThirdLoginServiceImpl.class); @Value("${siq.code}") private String code; diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/Azdg.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/Azdg.java index b21b35a2..77776510 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/Azdg.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/Azdg.java @@ -2,6 +2,7 @@ package com.zdxt.code.utils; import java.io.IOException; import java.security.MessageDigest; +import java.util.Base64; /** * Azdg加密工具类 @@ -80,16 +81,13 @@ public class Azdg { } public String base64_decode(String str) { - sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); + +// sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); + if (str == null) return null; - try { - return new String(decoder.decodeBuffer(str)); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } + return new String(Base64.getDecoder().decode(str)); + } public String key(String txt, String encrypt_key) { @@ -112,7 +110,8 @@ public class Azdg { } public String base64_encode(String str) { - return new sun.misc.BASE64Encoder().encode(str.getBytes()); +// return new sun.misc.BASE64Encoder().encode(str.getBytes()); + return null; } public static final String strMD5(String s) { diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/HttpUtil.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/HttpUtil.java index 233839a4..ec2a0bd4 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/HttpUtil.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/HttpUtil.java @@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONObject; import com.zdxt.auth.dto.DictDataBean; +import com.zdxt.code.service.impl.MssqApiServiceImpl; import com.zdxt.common.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.http.Header; @@ -28,6 +29,8 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; @@ -45,9 +48,8 @@ import java.util.List; import java.util.Map; import java.util.Set; -@Slf4j public class HttpUtil { - + private static final Logger log = LoggerFactory.getLogger(HttpUtil.class); public static String getDictName(List list, String name){ String value = ""; for(DictDataBean bean : list){ diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/QRCodeUtil.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/QRCodeUtil.java index 05135b04..fbced049 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/QRCodeUtil.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/QRCodeUtil.java @@ -9,9 +9,10 @@ import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.springframework.http.MediaType; +import org.springframework.util.Base64Utils; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; -import sun.misc.BASE64Encoder; +//import sun.misc.BASE64Encoder; import javax.imageio.ImageIO; import java.awt.*; @@ -358,7 +359,7 @@ public class QRCodeUtil { //输出二维码图片流 try { ImageIO.write(image, "jpg",outputStream); - String base =new BASE64Encoder().encode(outputStream.toByteArray()); + String base = Base64Utils.encodeToString(outputStream.toByteArray()); return base; } catch (IOException e) { // TODO Auto-generated catch block diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/ServiceInvocation.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/ServiceInvocation.java index b58855dc..fa9f90f5 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/ServiceInvocation.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/utils/ServiceInvocation.java @@ -1,9 +1,12 @@ package com.zdxt.code.utils; import com.alibaba.fastjson.JSONObject; +import com.zdxt.code.controller.ThirdLoginController; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.crypto.*; @@ -21,10 +24,9 @@ import java.security.SecureRandom; /** * 民生诉求氢气 */ -@Slf4j @Component public class ServiceInvocation { - + private static final Logger log = LoggerFactory.getLogger(ServiceInvocation.class); /** * 密钥生成【核心网关】 * diff --git a/lib/EmergencyServiceApi/pom.xml b/lib/EmergencyServiceApi/pom.xml index 902bfb41..28c5b01c 100644 --- a/lib/EmergencyServiceApi/pom.xml +++ b/lib/EmergencyServiceApi/pom.xml @@ -8,6 +8,9 @@ EmergencyServiceApi pom 1.0 + + + EmergencyAuthServiceApi @@ -39,5 +42,21 @@ 1.0.0
- + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + UTF-8 + + + + + + + + \ No newline at end of file diff --git a/lib/ZdxtComponent/pom.xml b/lib/ZdxtComponent/pom.xml index edd0dddb..053671fe 100644 --- a/lib/ZdxtComponent/pom.xml +++ b/lib/ZdxtComponent/pom.xml @@ -57,4 +57,21 @@ + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + UTF-8 + + + + + + + + \ No newline at end of file