-
1、简介 WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。 官方链接:https://www.oracle.com/middleware/technologies/weblogic.html 类别:服务器2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6 Kernel4.14 软件包Jdk1.7.0 Weblogic12.1.3 3、依赖安装参考“华为云鲲鹏云服务最佳实践-JDK-1.8.0安装部署指南.docx”4、组件编译安装 建立并进入存放weblogic包目录mkdir /xxxx/weblogiccd /xxxx/weblogic 从weblogic官网下载源码,并解压wget https://download.oracle.com/otn/nt/middleware/12c/12213/fmw_12.2.1.3.0_wls_Disk1_1of1.zip?AuthParam=1561603885_aa7428f157c78cb75ddb491094cef8a2unzip wls1213_dev_update3.zip?AuthParam=1561619717_820f7aac44b23e568b7cca63d6240d89进入weblogic源码目录cd wls121305、系统配置 设置环境变量,进入/etc/profile目录,并执行以下命令。export JAVA_HOME=/home/myhome/myjavahomeexport MW_HOME=/home/myhome/mywls/wls12130使环境变量立即生效。source /etc/profile运行安装脚本./configure.sh执行设置环境变量脚本$MW_HOME/wlserver/server/bin/setWLSEnv.sh在当前目录创建一个存放domain域的目录,并进入目录mkdir mydomaincd mydomain创建一个weblogic server的domian域,并启动weblogic server$JAVA_HOME/bin/java $JAVA_OPTIONS -Xmx1024m -XX:MaxPermSize=256m weblogic.Server6、测试测试内容:查看weblogic server服务是否正常启动测试结果:正常启动7、参考信息官方源码编译指导:https://docs.oracle.com/middleware/12213/wls/index.html8、FAQQ:启动weblogic server并创建domain域的时候密码验证时有问题? A:创建domain域的时候密码至少八位,并且有一位为数字或者特殊字符。 Q:启动weblogic server的时候可能会报jdk类错误? A:使用jdk1.8.0以下版本。
-
1、简介 Jboss是Java EE应用服务器(就像Apache是web服务器一样),专门用来运行Java EE程序的。JBoss是一个开源的符合J2EE规范的应用服务器,作为J2EE规范的补充,Jboss中引入了AOP框架,为普通Java类提供了J2EE服务,而无需遵循EJB规范。 官方链接:https://developers.redhat.com/products/eap/overview 类别:工具软件2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6 Kernel4.14 软件包JDK1.8.0 JBoss7.0.0 3、依赖安装参照《华为云鲲鹏云服务最佳实践-JDK-1.8.0安装配置指南.docx》4、组件编译安装下载JBoss从下面的地址下载,下载的时候请下载 Installerhttps://developers.redhat.com/products/eap/download 安装jboss选择语言,默认选择英语最终用户授权协议,选择1,同意并继续 选择要安装的组件,输入0确认选择设置管理员用户名和密码<img border="0" style="width: 685px; height: 594px;" src="https://bbs.huaweicloud.com/forum/data/attachment/forum/201907/21/word-76f387e34cc84e064aa0dea24b<span style="/> 安装完成显示 [Console installation done]配置jboss,修改监听地址为0.0.0.0vim /root/EAP-6.4.0/standalone/configuration/standalone.xml #定位到interface的节点并修改监听地址为0.0.0.0 如果8080端口不可用,修改为可用的端口号,本文中改为805、系统配置无6、测试测试内容:启动JBoss测试结果:启动成功测试内容:查看监听端口和进程 测试结果:进程存在,80和9990端口正在被监听测试内容:访问服务(http://<ip>)测试结果:可以访问7、参考信息官方文档:https://developers.redhat.com/products/eap/docs-and-apis 8、FAQQ:服务启动后查看进程和端口监听都正常,但是不能通过浏览器访问A:确认是不是存在端口禁用,如果8080端口被禁用,可以修改为80端口或者开放8080端口即可访问。
-
1、简介 Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。 官方链接:http://www.squid-cache.org/ 类别:服务器2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6 Kernel4.14 软件包libecep1.0.0 perl-Compress-Raw-Zlib2.061 httpd2.4.6 squid-migration-script3.5.20 squid3.5.20 perl-PlRPC0.2020 perl-Compress-Raw-Bzip22.061 perl-Data-Dumper2.145 perl-Digest1.17 perl-Digest-MD52.52 perl-IO-Compress2.061 perl-Net-Daemon0.48 libtool-ltdl 2.4.2 Perl-DBI1.627 3、依赖安装无4、组件编译安装清除yumyum clean all下载服务器包到本地缓存yum makecache更新yum 包yum -y update 安装httpd(用于后面生成密码文件)yum -y install httpd安装squidyum -y install squid5、系统配置修改配置文件vim /etc/squid/squid.conf其他配置项:#increase configure contextcache_mem 128 MBmaximum_object_size 16 MBcache_dir ufs /var/spool/squid 100 16 256access_log /var/log/squid/access.logvisible_hostname www.test.comcache_mgr *******@qq.com htpasswd -c /etc/squid/passwd leiju 2)验证密码,Ok表示验证成功,ERR表示失败/usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd 3)屏蔽掉以下内容并在配置文件最后添加验证和安全相关命令#注释以下内容:# http_access deny !Safe_ports# http_access deny CONNECT !SSL_ports# http_access deny to_localhost# http_access allow localnet# http_access deny all添加命令:6、测试测试内容:初始化squid测试结果:初始化成功测试内容:squid是否正常启动systemctl start squid.servicesystemctl status squid.service测试结果:squid启动成功7、参考信息官方文档:http://www.squid-cache.org/Doc/8、FAQQ:初始化squid的时候出现了错误?A:通过运行命令“squid -k parse”检查配置文件语法后,发现是配置文件的问题,修改后初始化成功。
-
1、简介 Lighttpd 是由德国人 Jan Kneschke 领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。Lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。因此对于那些负载非常高的WEB服务器选用 Lighttpd 会是非常完美的解决方案。 官方链接:http://www.lighttpd.net/ 类别:web服务2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6 Kernel4.14 软件包lighttpd1.4.54https://kojipkgs.fedoraproject.org//packages/libreoffice/6.1.6.3/1.fc29/src/libreoffice-6.1.6.3-1.fc29.src.rpm3、依赖安装# yum install -y epel-release# yum clean all# yum -y update# yum install -y lighttpd4、组件编译安装无5、系统配置无6、测试测试内容:启动lighttpd服务测试结果:启动正常测试内容:lighttpd命令测试结果:正常测试内容:浏览器端访问lighttpd服务测试结果:未通过,应该是配置问题7、参考信息官方文档:http://redmine.lighttpd.net/projects/lighttpd/wiki 8、FAQ无
-
1、简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 官方链接:http://nginx.org/ 类别:代理服务器2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Nginx1.8.0https://kojipkgs.fedoraproject.org/packages/nginx/1.8.0/10.fc22/src/nginx-1.8.0-10.fc22.src.rpm3、依赖安装无4、组件编译安装此步骤建议在chroot环境下进行,一来对chroot环境可以随意修改,不会影响系统,二来多人共用系统环境,免不了对系统有更改,chroot环境更纯净。执行后/root/zmm目录下就是个可用的chroot环境,chroot进去即可进行任意操作。[root@arm-team-0009 ~]# yum install --installroot=/root/xxx/ -y basesystem yum rpm-build[root@arm-team-0009 ~]# mount --bind /dev/ /root/xxx/dev[root@arm-team-0009 ~]# mount --bind /proc/ /root/xxx/proc/Chroot环境创建后,进去发现很多基础命令没有,比如vi,需要自行安装对应的rpm包。如下图所示:已可用。其它命令如遇到不可用的,请参考上图的方法添加。推荐所有reo源修改为华为开源镜像站,速度更快更稳定。配置参考如下图所示:bash-4.2# grep "huawei" -ri /etc/yum.repos.d//etc/yum.repos.d/CentOS-EPEL.repo:baseurl=https://mirrors.huaweicloud.com/epel/7/aarch64//etc/yum.repos.d/euleros.repo:baseurl=http://mirrors.huaweicloud.com/euler/2.3/os/aarch64//etc/yum.repos.d/euleros.repo:gpgkey=http://mirrors.huaweicloud.com/euler/2.3/os/RPM-GPG-KEY-EulerOS/etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/os/aarch64//etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/updates/aarch64//etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/extras/aarch64//etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/centosplus/aarch64/SPEC文件是rpmbuild编译出rpm包的核心,其指定了编译期依赖及运行时依赖,也指定了此包的能力。从fedora下载nginx的src rpm包安装进行编译,可以大大简化编译及避免运行时可能遇到的问题。bash-4.2# yum install -y which wget git sudo makebash-4.2#wget https://kojipkgs.fedoraproject.org/packages/nginx/1.8.0/10.fc22/src/nginx-1.8.0-10.fc22.src.rpm 或者,我们可以使用fedora的git库(其中不包含tar包,下载较快,但错误较多,请做好准备)bash-4.2# git clone https://src.fedoraproject.org/rpms/nginx.gitbash-4.2# git checkout f22说明:git库的源码没有1.8.0的,最接近的是1.8.1,相比1.8.0修复了3个CVE漏洞。安装源码包: Spec文件里要求的编译依赖如下:BuildRequires: GeoIP-develBuildRequires: gd-develBuildRequires: libxslt-develBuildRequires: openssl-develBuildRequires: pcre-develBuildRequires: perl-develBuildRequires: perl(ExtUtils::Embed)BuildRequires: zlib-develBuildRequires: systemdSpec文件里要求的安装依赖如下:Requires: nginx-filesystem = %{epoch}:%{version}-%{release}Requires: GeoIPRequires: gdRequires: opensslRequires: pcreRequires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))Requires(pre): nginx-filesystemRequires(post): systemdRequires(preun): systemdRequires(postun): systemdRequires(pre): shadow-utils找到依赖的对应rpm包安装即可。bash-4.2# yum install -y GeoIP-devel gd-devel libxslt-devel openssl-devel pcre-devel perl-devel zlib-devel systemd perl-ExtUtils-Embedbash-4.2# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec编译后的结果如下:安装:卸载:5、系统配置无6、测试无7、参考信息无8、FAQ无
-
1、简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 官方链接:http://httpd.apache.org/ 类别:Web服务2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Httpd2.4.6 3、依赖安装无4、组件编译安装清除yumyum clean all下载服务器包到本地缓存yum makecache更新yum 包yum -y update安装httpd服务yum -y install httpd5、系统配置添加防火墙规则firewall-cmd --permanent --add-port=80/tcpfirewall-cmd --permanent --add-port=443/tcp重新加载firewall-cmd –reload 或关闭防火墙systemctl stop firewalld 使httpd服务随系统启动systemctl start httpdsystemctl enable httpd 查看服务状态systemctl status httpd6、测试 测试内容:httpd服务是否正常启动 测试结果:服务正常启动测试内容:httpd服务能否访问测试结果:服务可以访问7、参考信息官方文档:http://httpd.apache.org/docs/2.4/ 8、FAQQ:tomcat的默认端口号为80,如果有其他软件占用了此端口,则会导致不能启动A:用FPort等软件查看端口使用情况,然后结束占用端口的进程或配置其改用其它端口
-
1、简介 HTTPS是将HTTP置于SSL/TLS之上,其效果是加密HTTP流量(traffic),包括请求的URL、结果页面、cookies、媒体资源和其他通过HTTP传输的内容。企图干扰HTTPS连接的人既无法监听流量,也无法更改其内容。除了加密,也对远程服务器的身份进行验证。这些措施将使拦截流量变得极其困难。 官方链接:http://httpd.apache.org/ https://www.openssl.org/ 类别:Web服务2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Openssl1.0.2 Httpd2.4.6 3、依赖安装无4、组件编译安装httpd的安装参考《华为云鲲鹏云服务最佳实践-Apach Httpd 安装配置指南》5、系统配置安装httpd服务httpd的安装参考《华为云鲲鹏云服务器最佳实践-Apach Httpd 安装配置指南》安装openssl, mod_ssl;安装完会自动生成/etc/httpd/conf.d/ssl.conf 文件,下文配置会用到!yum -y install openssl mod_ssl生成一个自签名证书首先,生成2048位的加密私钥openssl genrsa -out server.key 2048然后,生成证书签名请求(CSR),这里需要填写许多信息,如国家,省市,公司等openssl req -new -key server.key -out server.csr最后,生成类型为X509的自签名证书。有效期设置3650天openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt创建证书后,将文件复制到对应的目录。# cp server.crt /etc/pki/tls/certs/# cp server.key /etc/pki/tls/private/ # cp server.csr /etc/pki/tls/private/配置Apache Web服务器,首先,修改下面的配置文件。仅需配置红色部分 SSLCertificateFile 和 SSLCertificateKeyFile # vim /etc/httpd/conf.d/ssl.conf ### overwrite the following parameters ###SSLCertificateFile /etc/pki/tls/certs/server.crtSSLCertificateKeyFile /etc/pki/tls/private/server.key ### The following parameter does not need to be modified in case of a self-signed certificate. ###### If you are using a real certificate, you may receive a certificate bundle. The bundle is added using the following parameters ###SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle 然后,重新启动httpd服务使更改生效 # service httpd restart // 或者 /etc/init.d/httpd restart Web服务器现在可以使用HTTPS6、测试 测试内容:httpd服务是否正常启动 测试结果:服务正常启动测试内容:https服务能否访问测试结果:可以访问7、参考信息官方文档:http://httpd.apache.org/docs/2.4/ https://www.openssl.org/ 8、FAQ无
-
1、简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是9.0。 Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。。 官方链接:http://tomcat.apache.org/ 类别:Web服务2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Jdk1.8.0 Tomcat9.0.21 3、依赖安装参考《华为云鲲鹏云服务最佳实践-JDK-1.8.0 安装配置指南》4、组件编译安装下载tomcatwget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz解压tar -xvzf apache-tomcat-9.0.21.tar.gz5、系统配置无6、测试 测试内容:tomcat服务是否正常启动 测试结果:服务正常启动7、参考信息官方文档:http://tomcat.apache.org/tomcat-9.0-doc/index.html8、FAQA:tomcat的默认端口号为8080,如果有其他软件占用了此端口,则会导致tomcat不能启动Q:用FPort等软件查看端口使用情况,然后结束占用端口的进程或配置其改用其它端口
-
应用服务网格总览这块的页面展示有问题吧,尤其是流量总览这块,是不是错位了。终端:macbook 谷歌浏览器最新版。
-
以springboot WEB容器方式启动时出现的NoClassDefFoundError异常:springboot版本:1.5.12CSE版本2.3.69(实际demo测试2.3.65版本及以上都会出现以下异常)demo链接(https://huaweicse.github.io/cse-java-chassis-doc/using-cse-in-spring-boot/java-application.html)org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ClockProvider at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) ~[spring-context-4.3.20.RELEASE.jar:4.3.20.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at com.github.yhs0092.javachassis.demo.AppMain.main(AppMain.java:12) [classes/:na] ....... Caused by: java.lang.NoClassDefFoundError: javax/validation/ClockProvider at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:33) ~[hibernate-validator-6.0.14.Final.jar:6.0.14.Final] at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276) ~[validation-api-1.1.0.Final.jar:na] at org.springframework.boot.validation.MessageInterpolatorFactory.getObject(MessageInterpolatorFactory.java:53) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$ValidatedLocalValidatorFactoryBean.<init>(ConfigurationPropertiesBindingPostProcessor.java:413) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.getValidator(ConfigurationPropertiesBindingPostProcessor.java:370) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.determineValidator(ConfigurationPropertiesBindingPostProcessor.java:354) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:316) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:292) ~[spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407) ~[spring-beans-4.3.20.RELEASE.jar:4.3.20.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1623) ~[spring-beans-4.3.20.RELEASE.jar:4.3.20.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.d**ateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.20.RELEASE.jar:4.3.20.RELEASE] ... 51 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.validation.ClockProvider at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_191] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_191] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_191] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_191] ... 62 common frames omitted这种问题起因可能是你想以sprongboot WEB容器方式启动CSE并且打成可执行jar包,当你引入以下依赖时可能就会出现启动异常了<dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-solution-service-engine</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <!--<exclusion> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </exclusion>--> </exclusions> </dependency>现阶段的解决办法是把cse-solution-service-engine的Hibernate-validator依赖排除掉,以上代码就是解决办法,去掉注释就OK了.
-
我使用Huawei_IoT_Platform_Demo_North_Lite开发一个控制台应用的没问题,但如果想在web app的servlet中使用,会报以下错误,java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest编译无问题,但运行出错请高手赐教
-
本期【云享专家·微话题】由云享专家 HuangJacky 与大家一起探讨“云端WAF技术”,希望大家能够畅所欲言。如果大家有其他相关的问题,也可以在本帖回复直接咨询云享专家 HuangJacky 。=======【云享专家·微话题】云端WAF技术 =======随着云计算的普及,客户更多业务迁移到云上,以往传统的配套安全服务也转变云上SaaS服务,Web应用防火墙(WAF)对业务无侵入,来划分安全和业务开发的职责,大大减轻业务安全工作量,因此成为云上客户标配安全服务之一。然而云上客户业务的多样性,流量大,这些都对云WAF提出了新的挑战。为了应对这些挑战,云WAF不断引入新的技术,比如利用机器学习打造更加智能更贴合业务的检测引擎,利用DPDK技术打造更高并发网关。我们始终相信技术创造未来,开启云WAF新时代。每个人对“云端WAF技术”都有不一样的理解,今天我们就“云端WAF技术”一起来讨论,希望看到大家精彩的评论:1. 云WAF和传统WAF的区别?2. 云WAF遇到的问题和误报?3. 机器学习和云WAF能做什么?4. 你期望云WAF应该具备哪些功能?微话题活动:参与本次微话题讨论,有机会获得优质评论奖活动时间:2018年8月20日-9月2日参与方式:直接在本帖回复你关于以上4个问题的理解或评论获奖方式:活动结束后,将由云享专家 HuangJacky 选取出3名优质评论奖,各送出《白帽子讲Web安全》书籍1本。优质评论:ecstatic:1. 云WAF和传统WAF的区别? 云WAF支持SaaS模式,安全即服务,免部署,免安装,免维护,免更新 云WAF支持双向数据流过滤机制 云WAF基于海量数据的灰度规则和智能调控 云WAF的计算能力没有限制,支持横向扩展2. 云WAF遇到的问题和误报? 安全策略拦截正常HTTP请求 安全策略放过攻击HTTP请求3. 机器学习和云WAF能做什么? 通过机器学习实现取证分析——当我们不知道发生了什么事情并将所有活动分类以找出异常值时,恶意软件分析解决方案(即恶意软件防护)可以实施它来将合法文件与异常值分开。还有就是用户行为分析。在这种情况下,应用程序用户聚集在一起,并且可以查看它们是否属于特定的组。根据他们所在的组,提供相应的有效的网络安全解决方案。4. 你期望云WAF应该具备哪些功能? 上下文理解能力 语义分析能力 机器学习能力 审计取证能力 情报能力 业务安全防护能力 协同能力建赟:1. 云WAF和传统WAF的区别? 传统WAF和基于云的WAF之间存在一些主要差异,其中最大的差异在于其部署方式不同。传统WAF在数据中心运行,或通过“基础设施即服务”(IaaS)作为虚拟机运行。而云WAF则以“软件即服务”(SaaS)的形式出售,并通过Web界面或移动应用程序进行管理。传统WAF需要你自行处理容量规划和复杂性;但是使用云WAF,这些工作都是由WAF提供商进行处理的。虽然传统WAF具有开箱即用/即插即用的政策,但是管理员可以完全控制其公司的规则。本地部署系统更具可定制性和复杂性,让管理员能够调整应用程序与WAF的交互方式。但是,这也要求企业必须对这些数据进行监控,确保其无法访问。但是,基于云的WAF却有所不同,其安全策略是由WAF提供商根据他们对威胁情况的看法进行预先定义的,以免客户得到太多误报。云WAF通常具有负载均衡,API,应用交付规则和DDoS保护等功能。但是,客户通常不具备对于预置WAF的细粒度访问权限。软件由提供者托管在数据中心中,并由提供商负责保护它们。至于究竟要选择传统WAF还是云WAF,则需要根据你的具体业务需求,以及应用程序和数据的敏感程度进行综合评估。有些企业会使用混合模式,即在本地部署硬件WAF以及在公共云中部署WAF即服务模式。例如,基于云的WAF可以放置在网络边缘,因为预先设置的WAF能够分析复杂的内部威胁情况。企业安全人员需要结合业务需求,弄清楚企业重心是否正在转向云端,以及转向云端的速度如何,当明确了企业业务发展路线之后,他们就可以决定自己想要的WAF部署模式究竟是传统WAF还是云交付的WAF。 2. 云WAF遇到的问题和误报?云WAF之弊(一):存在轻易被绕过的风险云WAF的主要实现原理是通过将用户的DNS解析到云节点实现防护,这样一来,如果黑客通过相关手段获取了服务器的真实IP地址,然后强制解析域名,就可以轻松绕过云WAF对服务器发起攻击云Waf之弊(二):可靠性低云WAF处理一次请求,其中需要经过DNS解析、请求调度、流量过滤等环节,其中涉及协同关联工作,其中只要有一个环节出现问题,就会导致网站无法访问。必要时,只能手动切换为原DNS来保证业务正常运行,而域名解析需要一定时间,则会导致网站短时间无法正常访问云WAF之弊(三):保密性低网站访问数据对于一些企业、机构来说为保密数据,里面可能包含用户的隐私或者商业信息,这些数据自行管控会相对安全,但是如果使用WAF,所有的数据会记录到云端,这相当于数据被别人保管,可能存在一定的泄露风险分析利弊后,我们发现云WAF目前只适用于安全需求较低的中小型企业或者个人网站,对于安全需求较高的网站,如政府、金融、运营商等,云WAF无法满足相关要求,所以广大网站管理者,需要根据自身实际情况来选择合适的安全产品和服务 3. 机器学习和云WAF能做什么?从根本上说,机器学习算法是指机器先获得一组“教学”数据,然后被要求利用那些数据去回答问题。举例来说,你给计算机提供一组照片的教学数据,当中有的数据说“这是猫”,有的则说“这不是猫”。之后,你可以给该计算机展示一系列的新照片,接着它会开始识别哪些照片是猫,哪些不是。接着,机器学习不断扩充它的教学数据。它识别(不管准确与否)的每一张照片都会被添加到教学数据组,程序因而能够逐渐变得更加“智能”,变得更加善于完成任务。这实际上就是学习的过程,其又分为有监督的学习和无监督的学习。 云WAF目前还只适用于一些安全需求较低的中小企业网站或个人网站。对于一些安全需求较高的网站,像政府、金融、运营商等,无论从政策法规上还是业务特性上看,云WAF都无法满足要求。所以建议广大网站管理者,需要根据网站的实际情况,明确需求,选择最为合适的安全产品和服务。4. 你期望云WAF应该具备哪些功能?我理想中的WAF上下文理解能力 也就是处理能力,传统WAF对于http协议的理解主要是单向处理请求或者应答,缺乏对应http整个session行为的分析,缺乏结合上下文综合理解请求应答内容的能力,这好比盲人摸象,对于问题分析很片面。语义分析能力 华为的产品叫安全沙箱,其产品型号为FH6000,本质上是WAF具备语义识别常见的SQL、PHP、shell语言的能力,传统WAF的规则多是基于正则,说白了就是用文本的角度去理解http协议,走简单的正则匹配,理论上可以解决基于正则的规则的搂抱和误报的问题,不过也不是万能的.机器学习能力机器学习、人工智能、深度学习,这个是现如今最热门的话题。审计取证能力 以http会话作为存储单位,保存至少一个月的存储日志,完整记录请求应答内容,至少包括请求和应答的前4兆内容,支持基于常见http字段的正则查询,支持ELK那种基础的聚合、TOP、大于、小于操作等操作。情报能力威胁情报这两年一直比较火,逐渐也从概念层面过渡到实战,从IP地址库、http代理库、vpn库进步到真正是肉鸡库等,这一进步也给WAF带来了新的手段,对于大面积机器攻击行为,比如CC/DDoS肉鸡等可以做到直接封禁。业务安全防护能力业务安全的方范围非常广,我认为至少包括方面希望WAF是可以解决的:网站内容保护——反恶意抓取、垃圾信息注入、黄**毒信息注入等、主页篡改(这个对党政军用户非常非常非常重要)等高级业务逻辑CC攻击——对API接口的海量调用、例如短信接口、验证码接口、登录接口、数据查询接口等,撞库也可以算这类轻量级防**–暴力注册、刷红包、刷代金券、各种刷与其他安全设备联动能力 一个设备的功能依托与其本身物理硬件设备的配置及性能,同时其做不到全面防护,就比如一个公司,每个人不同的角色,做自己所擅长的工作,每个人都独当一面,假如所有的工作都由一个人来做,恐怕就精力不足,分身无术。我们应用到网络中也是,每个人设备做自己最擅长的工作,发现攻击等异常情况时,需要其相关设备一块解决,也就是我们经常提到的联动功能,个人认为,作为一款安全设备需要与其他设备有联动功能,比如防火墙、堡垒机等等。当然,最好是同品牌,同厂家的联动效果最好,哈哈。aprion:1. 云WAF和传统WAF的区别?这个区别其实和云主机和传统服务器的区别一个性质,关于价格、关于效率等等。2. 云WAF遇到的问题和误报?云防火墙的价格虽然相对传统服务器低很多,对于中小企业和个人站长来说还是太高。关于误报,传统和云都是相同的。这就引出下一个问题。3. 机器学习和云WAF能做什么?机器学习我认为通过大量的案例和众多安全工程师的工作,能够预防和降低云防火墙的问题。4. 你期望云WAF应该具备哪些功能?我唯一期望的就是价格、价格、价格。
-
悟空CRM(9.0版本)悟空软件长期为企业提供企业管理软件(CRM/HRM/OA/ERP等)的研发、实施、营销、咨询、培训、服务于一体的信息化服务。悟空软件以高科技为起点,以技术为核心、以完善的售后服务为后盾,秉承稳固与发展、求实与创新的精神,已为国内外上千家企业提供服务。悟空的发展受益于开源,也会回馈于开源。2019年,悟空CRM会继续秉承“拥抱开放、合作共赢、创造价值”的理念,在开源的道路上继续砥砺前行,和更多的社区开发者一起为国内外开源做出积极贡献。官网:http://www.5kcrm.com官网:http://www.72crm.com论坛:http://bbs.72crm.net演示地址:demo9.5kcrm.net(帐号:18888888888 密码:123456)QQ**流群⑩群:486745026JAVA版下载地址:https://gitee.com/wukongcrm/72crm-java微信交流群:悟空CRM采用全新的前后端分离模式,本仓库代码中已集成前端vue打包后文件,可免去打包操作如需调整前端代码,请单独下载前端代码,前端代码在根目录的ux文件夹中主要技术栈后端框架:ThinkPHP 5.0.2前端MVVM框架:Vue.JS 2.5.x路由:Vue-Router 3.x数据交互:AxiosUI框架:Element-UI 2.6.3悟空crm9.0的运行环境要求PHP5.6以上一键安装代码中已集成前端vue打包后文件,可免去打包操作: 以本地(phpstudy集成环境)搭建举例: 下载悟空CRM9.0开源版,在服务器根目录(www目录)下创建72crm文件夹,并放置代码; 浏览器访问http://localhost/72crm/index.php/admin/install/index.html 根据安装提示步骤,完成悟空CRM9.0 的部署安装开发依赖(需个性化安装或调整前端代码请按照以下教程,一键安装用户可忽略)数据交互数据交互通过axios以及RESTful架构来实现 用户校验通过登录返回的auth_key放在header 值得注意的一点是:跨域的情况下,会有预请求OPTION的情况Server搭建服务端使用的框架为thinkphp5.0.2,搭建前请确保拥有lamp/lnmp/wamp环境。这里所说的搭建其实就是把server框架放入WEB运行环境,并使用80端口。 导入服务端根文件夹数据库文件public/sql/5kcrm.sql,并修改config/database.php配置文件。配置要求PHP >= 5.6.0 (暂不支持PHP7及以上版本) 当访问 http://localhost/, 出现“悟空软件”即代表后端接口搭建成功。前端部署安装node.js 前端部分是基于node.js上运行的,所以必须先安装node.js,版本要求为6.0以上使用npm安装依赖 下载悟空CRM9.0前端代码; 可将代码放置在后端同级目录frontend,执行命令安装依赖:修改内部配置 修改请求地址或域名:config/dev.env.js里修改BASE_API(开发环境服务端地址,默认localhost) 修改自定义端口:config/index.js里面的dev对象的port参数(默认8080,不建议修改)运行前端注意:前端服务启动,默认会占用8080端口,所以在启动前端服务之前,请确认8080端口没有被占用。 程序运行之前需搭建好Server端系统介绍以下为悟空CRM9.0 部分功能系统截图
-
在平台的Web应用开发中,编辑应用的时候添加了设备列表组件,也显示了我已经绑定的设备,而且也能正常的接收数据,然后我就发布了试用版,用账号密码登录上去后发现设备选择里面是空的,请问这是怎么回事?谢谢!!!
-
报错信息:org.apache.servicecomb.swagger.invocation.exception.InvocationException: InvocationException: code=400;msg=CommonExceptionData [message=Parameter is not valid for operation [provider.fileController.completeMultipartUpload]. Parameter is [completeMultipartReq]. Processor is [body].] at org.apache.servicecomb.common.rest.codec.RestCodec.restToArgs(RestCodec.java:66) ~[common-rest-1.1.0.B036.jar:1.1.0.B036] at org.apache.servicecomb.common.rest.filter.inner.ServerRestArgsFilter.afterReceiveRequest(ServerRestArgsFilter.java:60) ~[common-rest-1.1.0.B036.jar:1.1.0.B036] at org.apache.servicecomb.common.rest.AbstractRestInvocation.prepareInvoke(AbstractRestInvocation.java:226) [common-rest-1.1.0.B036.jar:1.1.0.B036] at org.apache.servicecomb.common.rest.AbstractRestInvocation.invoke(AbstractRestInvocation.java:206) [common-rest-1.1.0.B036.jar:1.1.0.B036] at org.apache.servicecomb.common.rest.AbstractRestInvocation.runOnExecutor(AbstractRestInvocation.java:196) [common-rest-1.1.0.B036.jar:1.1.0.B036] at org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$scheduleInvocation$0(AbstractRestInvocation.java:159) [common-rest-1.1.0.B036.jar:1.1.0.B036] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_152] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_152] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_152]前端代码:const params = { "uploadId":uploadId, "fileName":"redis.rar", "partETags":partETags }; this.http.post("http://192.168.1.29:8111/completeMultipartUpload",params,{withCredentials:false}).subscribe(response=> { console.log(response); });后端代码:@RestController @RestSchema(schemaId = "fileController") public class FileController { @Autowired private FileService fileService; @PostMapping(value = "/claimUploadId") public ResponseEntity claimUploadId(@RequestBody FileReq fileReq) throws Exception { return fileService.claimUploadId(fileReq.getFileName()); } @PostMapping(value = "/upload",consumes = MediaType.MULTIPART_FORM_DATA) public ResponseEntity upload(@RequestPart("file") MultipartFile multipartFile,String fileName,Integer partNum, String uploadId) throws Exception { return fileService.upload(multipartFile,fileName,partNum,uploadId); } @PostMapping(value = "/completeMultipartUpload") public ResponseEntity completeMultipartUpload(@RequestBody CompleteMultipartReq completeMultipartReq) throws Exception { return fileService.completeMultipartUpload(completeMultipartReq.getUploadId(),completeMultipartReq.getFileName(),completeMultipartReq.getPartETags()); } @PostMapping(value = "/sampleUpload",consumes = MediaType.MULTIPART_FORM_DATA) public ResponseEntity sampleUpload(@RequestPart(name = "file") MultipartFile multipartFile) throws Exception { return fileService.sampleUpload(multipartFile); }请求参数实体:public class CompleteMultipartReq implements Serializable { private String uploadId; private String fileName; private List<PartEtag> partETags; public String getUploadId() { return uploadId; } public void setUploadId(String uploadId) { this.uploadId = uploadId; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public List<PartEtag> getPartETags() { return partETags; } public void setPartETags(List<PartEtag> partETags) { this.partETags = partETags; } }解析之后的Swagger:swagger: "2.0"info: version: "1.0.0" title: "swagger definition for com.sample.servicecomb.provider.controller.FileController" x-java-interface: "cse.gen.SpringCloud_ServiceComb.provider.fileController.FileControllerIntf"basePath: "/"consumes:- "application/json"produces:- "application/json"paths: /claimUploadId: post: operationId: "claimUploadId" parameters: - in: "body" name: "fileReq" required: true schema: $ref: "#/definitions/FileReq" responses: 200: description: "response of 200" schema: $ref: "#/definitions/ResponseEntity" /completeMultipartUpload: post: operationId: "completeMultipartUpload" parameters: - in: "body" name: "completeMultipartReq" required: true schema: $ref: "#/definitions/CompleteMultipartReq" responses: 200: description: "response of 200" schema: $ref: "#/definitions/ResponseEntity" /sampleUpload: post: operationId: "sampleUpload" consumes: - "multipart/form-data" parameters: - name: "file" in: "formData" required: true type: "file" responses: 200: description: "response of 200" schema: $ref: "#/definitions/ResponseEntity" /upload: post: operationId: "upload" consumes: - "multipart/form-data" parameters: - name: "file" in: "formData" required: true type: "file" - name: "fileName" in: "query" required: false type: "string" - name: "partNum" in: "query" required: false type: "integer" format: "int32" - name: "uploadId" in: "query" required: false type: "string" responses: 200: description: "response of 200" schema: $ref: "#/definitions/ResponseEntity"definitions: FileReq: type: "object" properties: fileName: type: "string" x-java-class: "com.sample.servicecomb.provider.model.req.FileReq" ResponseEntity: type: "object" properties: errorMsg: type: "string" errorCode: type: "string" data: type: "object" x-java-class: "com.sample.servicecomb.common.bean.ResponseEntity" CompleteMultipartReq: type: "object" properties: uploadId: type: "string" fileName: type: "string" partETags: type: "array" items: $ref: "#/definitions/PartEtag" x-java-class: "com.sample.servicecomb.provider.model.req.CompleteMultipartReq" PartEtag: type: "object" properties: etag: type: "string" partNumber: type: "integer" format: "int32" geteTag: type: "string" x-java-class: "com.obs.services.model.PartEtag"
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签