Code Monkey home page Code Monkey logo

dwsurvey's Introduction

调问开源问卷系统(DWSurvey)

此代码仓库为基于 Spring Boot、Vue 实现的后端仓库

star fork GitHub Repo stars GitHub forks

DWSurvey是一款简单、高效、成熟、稳定、专业的开源问卷系统,自2012年启动至今经过9年的积累,已经形成一套完善的基于 JAVA WEB 的开源问卷表单解决方案。

🎉🎉🎉 企业版
全新的 企业版 已经发布,前后端分别采用 React(Ant design)、VUE(Element)、Spring Boot,详情可前往体验

调问网官网地址:https://www.diaowen.net

企业版体验地址

新版本:https://element-ent.surveyform.cn账号密码([email protected]/123456)

原版本:https://ent.surveyform.cn


🎉🎉🎉 专业版
新一代的 专业版 即将发布,前端采用纯VUE实现(Element)、后端使用 Spring Boot、Elasticsearch,敬请关注

调问网官网地址:https://www.diaowen.net


☀️☀️☀️ 社区版
️ 全新的 社区版 也已经发布,前后端分别采用Vue、ElementUI、Spring Boot,详情可前往体验。

社区版文档地址:https://www.diaowen.net/docs

后续我们将持续迭代更新,并有专人维护,敬请关注,别忘了点下源码仓库 右上角Star关注,便于下次查找。

快速安装(一行命令完成)

1、下载调问问卷社区版安装包

最新的JAR包放在QQ群3(811287103已满),请加群4(398556555),加群备注安装包

2、输入启动命令

    java  -Dfile.encoding=utf-8 -jar dwsurvey-oss-vue-v.*.*.jar --server.port=8080 --spring.datasource.username=root --spring.datasource.password=123456

3、打开浏览器访问 http://localhost:8080,输入账号密码: [email protected]/123456

    //可选,文件编码,windows上如果有乱码则使用,linux一般不会出现
    -Dfile.encoding=utf-8 
    //必填,安装包名称, 后面的v.*.*.jar依据您下载的最新安装包来定。
    dwsurvey-oss-vue-v.*.*.jar
    //可选,指定启动服务占用的端口,默认值8080
    --server.port=8080 
    //可选,数据库账号,默认值为root
    --spring.datasource.username=root 
    //可选,数据库账密码,默认值123456,.
    --spring.datasource.password=123456

更详细参数说明请查看配置说明文档

特性

输入图片说明

汇总

  • 多种技术方案,满足不同的技术选型需求
  • 完善的浏览器兼容、保证传统客户也能正常使用
  • 部署简单,一行命令完成部署
  • 更新方便,直接替换原安装文件不用担心数据被覆盖
  • 最高支持多达40多种题型,如单选题、多选题、填空题、评分题、排序题、分页、分段...
  • 可见即所得设计理念、所有内容支持快速富文本编辑
  • 多种端适配,不管是PC还是移动端同一个地址系统自动适配
  • 支持答卷密码、结束跳转、仅微信答卷限制等
  • 数据实时统计,答卷的数据以可视化的方案展现,不同的统计图表
  • 后端满足JPA规范,为未来支持更多数据库提供条件
  • 成熟稳定,经过多年技术发展,技术体系完善
  • 完善的支持服务,QQ群,微信群全天24小时技术服务

完善的浏览器兼容

支持现代浏览器和IE6

在实际收集问卷过程中,不是所有用户都会安装最新的浏览器,DWSurvey在答卷端支持所有的浏览器环境,方案B、方案C更是全站完全支持

IE / Edge Firefox Chrome Safari Opera
IE6+,Edge 支持 支持 支持 支持

各技术方案简介

方案A前后端分离,基于 Vue、Element ui、Spring Boot
方案特性:基于VUE、前后分离开发更容易,部署维护更简单
前端Giteehttps://gitee.com/wkeyuan/dwsurvey-vue
GitHubhttps://github.com/wkeyuan/DWSurvey_Vue
后端Giteehttps://gitee.com/wkeyuan/DWSurvey
GitHubhttps://github.com/wkeyuan/DWSurvey
方案BSpring Boot + JSP
方案特性: 原生JS+HTML技术,支持更多浏览器,如IE6
Giteehttps://gitee.com/wkeyuan/dwsurvey-springboot-jsp
GitHubhttps://gitee.com/wkeyuan/dwsurvey-springboot-jsp
方案CStruts2 + JSP
方案特性: 原生JS+HTML技术,支持更多浏览器,如IE6 |
Giteehttps://gitee.com/wkeyuan/dwsurvey-struts2-jsp
GitHubhttps://gitee.com/wkeyuan/dwsurvey-struts2-jsp

各版本简介

我们提供各种不版本及服务,保证您不同场景的需求都得到满足

版本 特性及地址
社区版 源码全量开源,可独立部署,可二次开发
官网地址 http://www.diaowen.net
企业版 源码全量开源,前后端分离,可独立部署,可二次开发
企业版地址 http://ent.surveyform.cn
在线平台 提供标准API,可快速集成到应用中,功能更丰富,不需要部署,可直接发布问卷收集
平台地址 https://www.surveyform.cn

下面是如何使用Spring Boot方案的快速指南。

本地开发

环境版本:jdk1.8, tomcat8.5.59

基本步骤

1、下载代码后

具体代码地址参考多种技术方案

2、创建数据库进行初始化

数据库脚本在resources/sql/目录下的dwsurvey.sql数据库脚本文件,如下:

https://gitee.com/wkeyuan/DWSurvey/blob/master/src/main/resources/conf/sql/

说明:升级后的数据库与老版本兼容

3、用IDEA打开,进行本地开发

现在您可以进行本地开发了

4、开发完成,编译打包

进入 cd DWSurvey:

mvn package

配置文件地址

源码配置文件地址
resources/application-***.yml

war包配置文件地址
/dwsurvey-oss-v.4.0/WEB-INF/classes/application-dev.yml

#database settings
datasource:
url: jdbc:mysql://localhost:3306/dwsurvey_21test?useUnicode=true&characterEncoding=utf8
username: root
password: 123456,.

分别修改```url、username、password```

5、启动浏览器访问

输入 http://localhost:8080

初始账号:[email protected] 密码:123456

特色

全新体验、流程简单

以一种全新的设计体验,告别繁琐的设计流程,通过简单有趣的方式,轻轻松松完成问卷设计,多种技术方案,只为呈现更精美的表单问卷.

丰富的题型支持,通过拖拽即可完成题目选择,并可以随意拖动其位置,还可置入所需图片、企业LOGO、设置答题逻辑,一份优美的问卷就是这么简单。

我的问卷

问卷编辑

问卷预览

答卷地址

答卷规则

数据统计

原始数据

有问题怎么办?

对于调问网问卷系统安装及使用的问题,可以在用户交流群里,向作者或其它同学提问。

调问网交流QQ群 群1:635994795(满)群2:301105635(满)群3:811287103(满),群4:398556555(可加)(加群时请说明来由)

微信公众号

图片替换文本

源代码地址

gitee: http://gitee.com/wkeyuan/DWSurvey

github: https://github.com/wkeyuan/DWSurvey

开源协议

DWSurvey以通用公共许可证AGPL3.0为开源协议,需要更优质的服务可以购买我们的商业版与企业版!


关于调问网

没事喜欢瞎折腾,业余时间也想做点有意思的事情,同时对产品也比较感兴趣,一翻调研之后就决定来做个问卷系统。 于是便利用业余时间来做这款问卷表单平台,因为在2012的时候,国内的问卷系统都还比较初级,问卷设计流程复杂,页面也不美观。 所以就开始边调研、边画原型、边写前后端代码,最初的想法是一定要好用美观,在这之后的一年里就不断的设计开发,前前后后修改过3个版本。


作者

柯远 [email protected]

谢谢您的支持

觉得不错就点下右上角的star,随时关注我们的动态,非常感谢!

dwsurvey's People

Contributors

bingdian-s avatar claire9910 avatar hsluoyz avatar pengzl3777 avatar stephenpcg avatar wkeyuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dwsurvey's Issues

[security vulnerability] Reflective XSS when view the survey result

There is a Reflective XSS vulnerability when user view the survey result. The failure of the XSS filter to work properly resulted in this vulnerability, which allows remote attackers to inject arbitrary web script or stole admin's or other users cookies. The impact of the problem is serious especially when combined with CSRF vulnerability exploitation.

Vulnerability file:
/diaowen/design/qu-multi-fillblank!answers.action

PoC:
/diaowen/design/qu-multi-fillblank!answers.action?quItemId=2c9790db6c74f25f016c7536aed90022&surveyId=2c9790db6c74f25f016c7"><scr<script>ipt>alert('XSS');</script 200

image

分析:下载原始数据特别慢

建议更改一下问卷的存储方式,可以根据调查(包含的所有题目,通过判断题目类型)生成一个存储调查结果的表,向调查的数据保存在这张表里

评分题设计与显示不一致

在设计模式下,设置评分满分为10分,下方也显示了满分为10分的示例,但在发布后,实际显示的满分值仍然只有5分。

master 分支编译失败

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.491 s
[INFO] Finished at: 2020-09-04T16:36:51+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project diaowen: Could not resolve dependencies for project keyuan:diaowen:war:0.0.1-SNAPSHOT: The following artifacts could not be resolved: net.xssprotect:xssprotest:jar:1.0.2, net.spssw:spssw:jar:1.66, com.baidu:ueditor:jar:1.1.2: Could not find artifact net.xssprotect:xssprotest:jar:1.0.2 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

关于数据分析中的bug

数据分析中,如果是填空题,在数据分析的时候,有个查看按钮。但是点击查看,并不能查看填空题的答案

发现2个bug

1.选择题后,选择选项后填空,在问卷设计中有出现输入框,但是在发布后没有效果。
2.问卷停止收集后,电脑端是无法回答了,手机用二维码还是能回答问题。

引入本地 lib 问题。修改 pom。

可以将 lib 放到 webapp/WEB-INF/lib 目录下面,然后用pom的 引入local。
这样就不用安装了。

<dependency>
			<groupId>net.qrcode</groupId>
			<artifactId>qrcode</artifactId>
			<version>1.0</version>
			<scope>system</scope>
			<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/QRCode.jar</systemPath>
		</dependency>
		<dependency>
				<groupId>net.xssprotect</groupId>
				<artifactId>xssprotest</artifactId>
			<version>1.0</version>
			<scope>system</scope>
			<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/xssProtect-0.1.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>net.spssw</groupId>
			<artifactId>spssw</artifactId>
			<version>1.0</version>
			<scope>system</scope>
			<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/spssw-1.66.jar</systemPath>
		</dependency>
	  <dependency>
		  <groupId>com.baidu</groupId>
		  <artifactId>ueditor</artifactId>
		  <version>1.0</version>
		  <scope>system</scope>
		  <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/ueditor-1.1.2.jar</systemPath>
	  </dependency>

关于调查问卷服务器地址跳转

请问下:从mysql数据库中拿到的地址:
WEB-INF/wjHtml/2017/11/30/40284a81600bf0f801600c1617e70001.html
然后开始跳转,
if (directory != null) { surveyId = directory.getId(); String filterStatus = filterStatus(directory, request); if (filterStatus != null) { return filterStatus; } if (HttpRequestDeviceUtils.isMobileDevice(request)) { return RESPONSE_MOBILE; } else { String htmlPath = directory.getHtmlPath(); request.getRequestDispatcher("/" + htmlPath).forward(request, response); } }
我查看到:urlrewrite.xml .并没有对这个地址匹配
<rule> <from>/resp(.*)/(.*)/(.*)/(.*).html</from> <to>/nosm/response!input.action?year=$1&amp;month=$2&amp;day=$3&amp;parentId=$4</to> </rule> <rule> <from>/wenjuan/(.*).html</from> <to>/response.action?sid=$1</to> </rule>
我的问题是:本项目是哪一个action最终响应,这个流程匹配是如何的?

导入数据,启动报错。

org.apache.jasper.JasperException: /WEB-INF/page/content/diaowen-design/list.jsp(127,29) PWC6038: "${empty(en.answerNum) ? '0':en.answerNum }" contains invalid expression(s): javax.el.ELException: Error Parsing: ${empty(en.answerNum) ? '0':en.answerNum }

根据题目答案跳转显示问题

例如根据题目2的答案来显示后面的问题,后面的问题都选择了答案,但是第二个题我也修改了答案,后面应该将相应的所有答案清空,不应该再保存在数据库里

Tomcat8.5跑源码报错

严重: 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' defined in class path resource [conf/security/applicationContext-shiro.xml]: Cannot resolve reference to bean 'securityManager' while setting bean property 'securityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.service.AccountManager com.key.common.plugs.security.MyDefaultWebSecurityManager.accountManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.dao.UserDao com.key.common.base.service.AccountManager.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [S:\ecl_work\eclipse_work2.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DWSurvey\WEB-INF\classes\com\key\common\base\dao\UserDaoImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:745)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4699)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.service.AccountManager com.key.common.plugs.security.MyDefaultWebSecurityManager.accountManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.dao.UserDao com.key.common.base.service.AccountManager.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [S:\ecl_work\eclipse_work2.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DWSurvey\WEB-INF\classes\com\key\common\base\dao\UserDaoImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 23 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.service.AccountManager com.key.common.plugs.security.MyDefaultWebSecurityManager.accountManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.dao.UserDao com.key.common.base.service.AccountManager.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [S:\ecl_work\eclipse_work2.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DWSurvey\WEB-INF\classes\com\key\common\base\dao\UserDaoImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
... 31 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.dao.UserDao com.key.common.base.service.AccountManager.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [S:\ecl_work\eclipse_work2.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DWSurvey\WEB-INF\classes\com\key\common\base\dao\UserDaoImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:876)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:818)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:735)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
... 33 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.key.common.base.dao.UserDao com.key.common.base.service.AccountManager.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [S:\ecl_work\eclipse_work2.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DWSurvey\WEB-INF\classes\com\key\common\base\dao\UserDaoImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
... 44 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [S:\ecl_work\eclipse_work2.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DWSurvey\WEB-INF\classes\com\key\common\base\dao\UserDaoImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:876)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:818)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:735)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
... 46 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [conf/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByName(AbstractAutowireCapableBeanFactory.java:1136)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
... 55 more
Caused by: org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:127)
at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.java:1704)
at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1654)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1445)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 64 more
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:118)
... 72 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.hibernate.validator.engine.ConfigurationImpl.parseValidationXml(ConfigurationImpl.java:261)
at org.hibernate.validator.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:148)
at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:380)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:109)
... 77 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
... 82 more

手机版的页面显示中文乱码问题

在生成的二维码,扫描显示页面中文全部是乱码!!
我在代码中找到问题,是在跳转时,response对象没有设置ContentType引起的
response.setContentType("text/html;charset=UTF-8"),修改成这样就OK了

文件的包路径:com.key.dwsurvey.action.nologin
方法名:answerMobile()
希望作者大神,修改一下!!支持开源谢谢作者提供这么好的开源项目.

[security vulnerability]stored xss when copy the survey

There is a stored XSS vulnerability which allows remote attackers to inject arbitrary web script or stole admin's or other users cookies when copy the survey

Vulnerability file:
/design/my-survey-design!copySurvey.action

PoC:
/design/my-survey-design!copySurvey.action?surveyName=A%2520test%25EF%25BC%258Dcopy%2522%252F%253E%253Cscript%253Ealert%28document.cookie%29%253C%252Fscript%253E

图片2

图片1

使用docker 安装出现的问题

老铁你好, 首先谢谢你开发的这个应用。
我在使用docker 部署的时候出现了一些问题向你请教下

sudo  docker run  -d --env-file ./dw.env -p 8080: 8080  --name DWsurvey  wkeyuan/dwsurvey:latest

dw.env 中包含说明中说的一些必要信息:

MYSQL_HOST=
MYSQL_PORT=3306
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
ADMIN_EMAIL=
ADMIN_PASSWORD=
CONTEXT_ROOT=/

通过 docker logs 查看到如下:

Unpacking war ...
Configuring dwsurvey ...
Checking if table t_user exist ...
Applying migration ...
Creating admin user ...

但是呢 通过访问 host 的 8080 端口什么都没有出现

HTTP ERROR 404

希望老铁能帮忙解决下问题。
感谢
💯

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.