当前位置: 首页 > news >正文

企业微信网站开发文档东营网站建设天锐科技

企业微信网站开发文档,东营网站建设天锐科技,主机如何做网站空间,评论插件 wordpress目录 排错过程 报错信息 SysLoginController SysLoginService#xff08;问题核心#xff09; 太长不看版#xff1a;解决方法 文章传送门#xff1a;若依(RuoYi)SpringBoot框架密码加密传输(前后分离板)_若依密码加密方式-CSDN博客文章浏览阅读1.5w次#xff0c;点赞…目录 排错过程 报错信息 SysLoginController SysLoginService问题核心 太长不看版解决方法 文章传送门若依(RuoYi)SpringBoot框架密码加密传输(前后分离板)_若依密码加密方式-CSDN博客文章浏览阅读1.5w次点赞18次收藏63次。目前登录接口密码是明文传输 为了更高安全性 我准备调整为加密方式传输( 这里选择Rsa加密算法) 并分享下编写过程大概加密流程:后台生成随机公钥私钥前台拿到公钥集成jsencrypt实现密码加密传输加密后的密码给后台后台通过私钥对加密后的密码进行解密若依详细登陆流程_若依密码加密方式https://blog.csdn.net/weixin_56567361/article/details/124961493 本文主要解决根据上面文章改动但是出现改了之后密码错误无法登录的问题。 环境若依 v3.8.7基于 springboot vue 前后端分离版本不是这个版本但问题相同的也可以参考。 目录 排错过程 太长不看版解决方法 排错过程 报错信息 10:29:23.155 [http-nio-8080-exec-14] ERROR c.r.f.w.e.GlobalExceptionHandler - [handleRuntimeException,93] - 请求地址/login,发生未知异常. com.ruoyi.common.exception.user.UserPasswordNotMatchException: 用户不存在/密码错误at com.ruoyi.framework.web.service.SysLoginService.loginPreCheck(SysLoginService.java:157)at com.ruoyi.framework.web.service.SysLoginService.login(SysLoginService.java:71)at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:64)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:568)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:43)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:42)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.base/java.lang.Thread.run(Thread.java:833) 10:29:23.160 [http-nio-8080-exec-14] WARN o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - [logException,208] - Resolved [com.ruoyi.common.exception.user.UserPasswordNotMatchException: 用户不存在/密码错误] 10:29:23.165 [schedule-pool-1] INFO sys-user - [run,55] - [127.0.0.1]内网IP[admin][Error][用户不存在/密码错误] 10:29:23.186 [schedule-pool-1] DEBUG c.r.s.m.S.insertLogininfor - [debug,135] - Preparing: insert into sys_logininfor (user_name, status, ipaddr, login_location, browser, os, msg, login_time) values (?, ?, ?, ?, ?, ?, ?, sysdate()) 10:29:23.188 [schedule-pool-1] DEBUG c.r.s.m.S.insertLogininfor - [debug,135] - Parameters: admin(String), 1(String), 127.0.0.1(String), 内网IP(String), Chrome 12(String), Windows 10(String), 用户不存在/密码错误(String) 10:29:23.196 [schedule-pool-1] DEBUG c.r.s.m.S.insertLogininfor - [debug,135] - Updates: 1 涉及到我们代码的部分如下蓝色部分 灰色是程序框架底层代码别动蓝色是自己的代码可以修改。 怎么看从下往上看。这是一个栈相当于多层调用越靠下的越外层越靠上的越靠近你出错的核心代码所以应该是从下往上点开蓝色代码部分。 RepeatableFilter 替大家看过了这个没有错误。 SysLoginController 定位到这个 controlller可以看到调用的 loginService 里 的 login 方法这个你一看没有涉及到密码的验证部分因为报错是密码错误所以下一步得进这个方法再看。 SysLoginService问题核心 来到 login 方法中。这个我直接说解决方法吧。 如图是我改过之后的代码原作者的代码在 71 行没有进行解密。经过输出检测发现没有进入 77 行的 Authentication 认证所以是这个方法中出了问题我们进入这个方法。 根据作者的注释找到和错误相关的代码如图。 可以看到作者对密码长度做了校验不满足长度的都会被视为异常我们进去看看长度。 标题src/main/java/com/ruoyi/common/constant/UserConstants.java 可以看到问题出在这里了。我们知道 RSA 加密后的密码是非常长的远超 20由于原作是明文传输所以正常密码长度不会超过 20因此可以通过验证而我们的 RSA 加密后长度不符合这个所以会被视为错误。找到归因了。 修改方法 既然是加密后的密码太长那么就说明加密前的原始密码是符合规定的。所以在 login 方法中我们先对密码进行一次解密并放在程序中利用这个原始密码去完成验证即可。代码片段如下 // 首先在这里用解密后密码不然过不了长度校验String passwordUnlock RsaUtils.decryptByPrivateKey(password);// 登录前置校验loginPreCheck(username, passwordUnlock);try { // System.out.println(password); // 对局部变量做的修改现在密码还是加密的okUsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(username, passwordUnlock);AuthenticationContextHolder.setContext(authenticationToken);// 该方法会去调用 UserDetailsServiceImpl.loadUserByUsername // authentication authenticationManager.authenticate(authenticationToken);// 测试内部会调用 authenticationManager.authenticate () 对账号和密码做验证// System.out.println(username username 解密后 password password); // ok // 修改后加密传输authentication authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, passwordUnlock)); 另附上整个 login 方法的代码 /*** 登录验证** param username 用户名* param password 密码* param code 验证码* param uuid 唯一标识* return 结果*/public String login(String username, String password, String code, String uuid) throws Exception {// 验证码校验validateCaptcha(username, code, uuid);// 用户验证Authentication authentication null;// 首先在这里用解密后密码不然过不了长度校验String passwordUnlock RsaUtils.decryptByPrivateKey(password);// 登录前置校验loginPreCheck(username, passwordUnlock);try { // System.out.println(password); // 对局部变量做的修改现在密码还是加密的okUsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(username, passwordUnlock);AuthenticationContextHolder.setContext(authenticationToken);// 该方法会去调用 UserDetailsServiceImpl.loadUserByUsername // authentication authenticationManager.authenticate(authenticationToken);// 测试内部会调用 authenticationManager.authenticate () 对账号和密码做验证 // System.out.println(username username 解密后 password password); // ok // 修改后加密传输authentication authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, passwordUnlock));} catch (Exception e) {if (e instanceof BadCredentialsException) {AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message(user.password.not.match)));throw new UserPasswordNotMatchException();} else {AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));throw new ServiceException(e.getMessage());}} finally {AuthenticationContextHolder.clearContext();}AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message(user.login.success)));LoginUser loginUser (LoginUser) authentication.getPrincipal();recordLoginInfo(loginUser.getUserId());// 生成tokenreturn tokenService.createToken(loginUser);} 注意我们并不是要把密码解密而是使用一个局部变量存储解密后的密码进行校验密码仍然是要加密存储在数据库里的  至此整个排错过程结束如果有抛出异常的提示跟着 idea 加上就行。 太长不看版解决方法 我来不及排错了只想知道答案 ↓ 找到 src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 使用下面的 login 方法 /*** 登录验证** param username 用户名* param password 密码* param code 验证码* param uuid 唯一标识* return 结果*/public String login(String username, String password, String code, String uuid) throws Exception {// 验证码校验validateCaptcha(username, code, uuid);// 用户验证Authentication authentication null;// 首先在这里用解密后密码不然过不了长度校验String passwordUnlock RsaUtils.decryptByPrivateKey(password);// 登录前置校验loginPreCheck(username, passwordUnlock);try { // System.out.println(password); // 对局部变量做的修改现在密码还是加密的okUsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(username, passwordUnlock);AuthenticationContextHolder.setContext(authenticationToken);// 该方法会去调用 UserDetailsServiceImpl.loadUserByUsername // authentication authenticationManager.authenticate(authenticationToken);// 测试内部会调用 authenticationManager.authenticate () 对账号和密码做验证 // System.out.println(username username 解密后 password password); // ok // 修改后加密传输authentication authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, passwordUnlock));} catch (Exception e) {if (e instanceof BadCredentialsException) {AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message(user.password.not.match)));throw new UserPasswordNotMatchException();} else {AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));throw new ServiceException(e.getMessage());}} finally {AuthenticationContextHolder.clearContext();}AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message(user.login.success)));LoginUser loginUser (LoginUser) authentication.getPrincipal();recordLoginInfo(loginUser.getUserId());// 生成tokenreturn tokenService.createToken(loginUser);} 有抛出异常报错跟着 idea 改就行了。
文章转载自:
http://www.morning.thjqk.cn.gov.cn.thjqk.cn
http://www.morning.skmpj.cn.gov.cn.skmpj.cn
http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn
http://www.morning.lkfhk.cn.gov.cn.lkfhk.cn
http://www.morning.dnzyx.cn.gov.cn.dnzyx.cn
http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn
http://www.morning.zxcny.cn.gov.cn.zxcny.cn
http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn
http://www.morning.mbdbe.cn.gov.cn.mbdbe.cn
http://www.morning.rkfxc.cn.gov.cn.rkfxc.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.xqxrm.cn.gov.cn.xqxrm.cn
http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn
http://www.morning.pgmyn.cn.gov.cn.pgmyn.cn
http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn
http://www.morning.yqrfn.cn.gov.cn.yqrfn.cn
http://www.morning.kaylyea.com.gov.cn.kaylyea.com
http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn
http://www.morning.1000sh.com.gov.cn.1000sh.com
http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn
http://www.morning.wfbs.cn.gov.cn.wfbs.cn
http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn
http://www.morning.rcrnw.cn.gov.cn.rcrnw.cn
http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn
http://www.morning.bfhfb.cn.gov.cn.bfhfb.cn
http://www.morning.pslzp.cn.gov.cn.pslzp.cn
http://www.morning.tdmgs.cn.gov.cn.tdmgs.cn
http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn
http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn
http://www.morning.wnxqf.cn.gov.cn.wnxqf.cn
http://www.morning.xpzgg.cn.gov.cn.xpzgg.cn
http://www.morning.ktntj.cn.gov.cn.ktntj.cn
http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn
http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn
http://www.morning.jgrjj.cn.gov.cn.jgrjj.cn
http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn
http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn
http://www.morning.tpdg.cn.gov.cn.tpdg.cn
http://www.morning.pwdrc.cn.gov.cn.pwdrc.cn
http://www.morning.bqts.cn.gov.cn.bqts.cn
http://www.morning.gqddl.cn.gov.cn.gqddl.cn
http://www.morning.fwmln.cn.gov.cn.fwmln.cn
http://www.morning.tzzfy.cn.gov.cn.tzzfy.cn
http://www.morning.xyrss.cn.gov.cn.xyrss.cn
http://www.morning.jrlxz.cn.gov.cn.jrlxz.cn
http://www.morning.mlzyx.cn.gov.cn.mlzyx.cn
http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn
http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn
http://www.morning.mlnby.cn.gov.cn.mlnby.cn
http://www.morning.pwwjs.cn.gov.cn.pwwjs.cn
http://www.morning.ddfp.cn.gov.cn.ddfp.cn
http://www.morning.kyfrl.cn.gov.cn.kyfrl.cn
http://www.morning.skkln.cn.gov.cn.skkln.cn
http://www.morning.lfpzs.cn.gov.cn.lfpzs.cn
http://www.morning.lsbjj.cn.gov.cn.lsbjj.cn
http://www.morning.bhznl.cn.gov.cn.bhznl.cn
http://www.morning.china-cj.com.gov.cn.china-cj.com
http://www.morning.frtb.cn.gov.cn.frtb.cn
http://www.morning.fmry.cn.gov.cn.fmry.cn
http://www.morning.wtlyr.cn.gov.cn.wtlyr.cn
http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn
http://www.morning.ysbhj.cn.gov.cn.ysbhj.cn
http://www.morning.hbjqn.cn.gov.cn.hbjqn.cn
http://www.morning.xrftt.cn.gov.cn.xrftt.cn
http://www.morning.frzdt.cn.gov.cn.frzdt.cn
http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn
http://www.morning.bpmdz.cn.gov.cn.bpmdz.cn
http://www.morning.chkfp.cn.gov.cn.chkfp.cn
http://www.morning.wbllx.cn.gov.cn.wbllx.cn
http://www.morning.tgtwy.cn.gov.cn.tgtwy.cn
http://www.morning.fbnsx.cn.gov.cn.fbnsx.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn
http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn
http://www.morning.rwls.cn.gov.cn.rwls.cn
http://www.morning.pmhln.cn.gov.cn.pmhln.cn
http://www.morning.knsmh.cn.gov.cn.knsmh.cn
http://www.morning.znqfc.cn.gov.cn.znqfc.cn
http://www.morning.hkgcx.cn.gov.cn.hkgcx.cn
http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn
http://www.tj-hxxt.cn/news/278484.html

相关文章:

  • 网站建设服务器的选择方案新乡集团网站建设
  • 宁波做网站有哪些公司公司电子商务网站建设市场
  • 青岛网站建设服务平台h5做招聘网站
  • 网站运营怎么样做网站该读啥学校
  • 网站销售怎么做广州网站备案
  • 中山手机网站建设费用广告公司怎么做业务
  • python做网站前端网站定位方案
  • 住房和城市建设部网站网络运营推广
  • 爱站网能不能挖掘关键词营销方案模板
  • 酒店 公司 安徽 网站建设网站功能模块 分析
  • 摄影师都在哪些网站发布作品赤峰网站设计公司
  • 如何做照片ppt模板下载网站做任务的正规网站
  • 海口企业建站系统模板沈阳网站建设报价
  • 网站建设企业谁家好asp网站建设项目实训
  • 温州专业营销网站建设wordpress 幻灯片代码在哪
  • 惠州网站建设html5网站备案协议书
  • 各大网站收录提交入口上海缘震网络科技有限公司
  • 网站备案服务商查询已备案域名购买网址低价
  • 想做网站怎么跟做网站的公司谈判产品logo设计
  • 家装设计网站排行榜前十名网站关键词设置
  • 建站宝盒小程序网站建设实训记录
  • 怎样做简易局域网站点怎么建php网站
  • 典型的企业网站青岛网站建设公司大全
  • 手机网站建设动态个人网站网址
  • 网站建设流程书籍页面设计工作内容自述
  • 网站建设的摘要怎么写ios开发者账号多少钱一年
  • asp网站建设参考文献网站模版开发
  • 网站主体备案号网站制作企业首页
  • 开网站做家政产品外观设计用什么软件
  • 迎访问备案网站管理系统wordpress白色主题