JAVA代码审计-JAVA 开发环境搭建

admin 2024年8月15日16:36:33评论21 views字数 7886阅读26分17秒阅读模式

JAVA开发环境搭建

对应视频链接

暂时无法播放,可回源网站播放

一、maven

1、 Maven介绍

Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。Maven 使用了一个标准的目录结构在不同开发工具中也能实现项目结构的统一。Maven提供了清理,编译,测试,安装,打包,发布等命令可以让我们更加方便的去构建项目,同时采用pom.xml来导入依赖,可以自动下载jar,以及其所依赖jar,无需手动下载,拷贝jar到项目中,大大解放了程序员的劳动力。

使用Maven可以为我们完成很多相应的功能:清理代码,自动编译,完成测试,生成站点报告,进行打包(jar,war),项目部署。

清理代码:相当于我们运行clear的效果自动编译:可以较为方便的实现对项目的管理打包:普通项目打jar包,web项目打成war包项目部署:只需一行命令就能实现项目的部署

2、maven安装

(1)、maven下载

下载地址:https://maven.apache.org/download.cgi

JAVA代码审计-JAVA 开发环境搭建

windwos 直接下载 apache-maven-3.9.3-bin.zip 即可,解压后如下:

JAVA代码审计-JAVA 开发环境搭建

各目录作用如下:

bin: maven 命令boot: maven 引导程序,如类加载器等conf: maven 配置文件,如 setting.xml 文件lib: maven 本身运行所需的 jar 包

(2)、环境变量配置

配置 MAVEN_HOME ,变量值即为 maven 安装的路径(bin 目录的上级目录)

JAVA代码审计-JAVA 开发环境搭建

将MAVEN_HOME 添加到Path系统变量

JAVA代码审计-JAVA 开发环境搭建

打开命令行,输入 mvn –v 命令,命令执行成功则 maven 安装成功

JAVA代码审计-JAVA 开发环境搭建

3、maven仓库配置

maven仓库分类

本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,是由 Maven 团队自己维护,里面存储了非常全的 jar 包,包含了世界上大部分流行的开源项目构件

(1)、配置本地仓库

在maven安装目录中conf文件夹存在 settings.xml 文件,此文件可进行本地仓库配置

JAVA代码审计-JAVA 开发环境搭建

添加配置D:apache-maven-3.8.6repository,其中D:apache-maven-3.8.6repository为自定义存储目录

JAVA代码审计-JAVA 开发环境搭建

(2)、配置远程仓库

仍在之前 settings.xml 文件中进行配置

<mirror>    <id>alimaven</id>    <name>aliyun maven</name>    <url>        https://maven.aliyun.com/repository/public    </url>    <mirrorOf>central</mirrorOf>        </mirror>

JAVA代码审计-JAVA 开发环境搭建

注:

国内maven仓库镜像地址

阿里云:https://maven.aliyun.com/repository/public

中央仓库:https://repo1.maven.org/maven2/

网易:http://maven.netease.com/repository/public/

华为云:https://repo.huaweicloud.com/repository/maven/

tencent:https://mirrors.cloud.tencent.com/repository/maven/

中国科技大学:http://mirrors.ustc.edu.cn/maven/maven2/

南京大学:http://maven.nju.edu.cn/repository/

清华大学:https://repo.maven.apache.org/maven2/

北京理工大学:http://mirror.bit.edu.cn/maven/

东软信息学院:https://mirrors.neusoft.edu.cn/maven2/

中国科学院开源协会:http://maven.opencas.cn/maven/

北京交通大学:http://maven.bjtu.edu.cn/maven2/

4、idea中maven配置

打开settings ,选择Build ,Execution这个选项的Maven选项即可

JAVA代码审计-JAVA 开发环境搭建

5、Maven 依赖

<project>    <dependencies>        <dependency>            <groupId></groupId>            <artifactId></artifactId>            <version></version>            <type>...</type>            <scope>...</scope>            <optional>...</optional>            <exclusions>                <exclusion>                  <groupId>...</groupId>                  <artifactId>...</artifactId>                </exclusion>          </exclusions>        </dependency>      </dependencies></project>

配置说明:

dependencies:一个 pom.xml 文件中只能存在一个这样的标签,是用来管理依赖的总标签。dependency:包含在 dependencies 标签中,可以有多个,每一个表示项目的一个依赖。groupId,artifactId,version(必要):依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven 根据坐标才能找到需要的依赖。我们在上面解释过这些元素的具体意思,这里就不重复提了。type(可选):依赖的类型,对应于项目坐标定义的 packaging。大部分情况下,该元素不必声明,其默认值是 jar。scope(可选):依赖的范围,默认值是 compile。optional(可选):标记依赖是否可选exclusions(可选):用来排除传递性依赖,例如 jar 包冲突

依赖示例:

<dependency>  <groupId>javax.servlet</groupId>  <artifactId>javax.servlet-api</artifactId>  <version>3.1.0</version></dependency>

二、Tomcat

1、Tomcat安装

下载地址:https://tomcat.apache.org/

JAVA代码审计-JAVA 开发环境搭建

解压后如下:

JAVA代码审计-JAVA 开发环境搭建

各目录功能如下:

bin: 存放一些二进制的文件, 例如Tomcat常用的 启动脚本: startup.bat或startup.sh 关闭脚本: shutdown.bat 或 shutdown.sh 等等conf: 存放的是Tomcat的配置文件, 例如最常用的 server.xml 如果需要修改Tomcat的端口(默认端口是8080, 可以改成自己喜欢的如9090, 8888, 9999, 9070 等)就在这里修改lib: 存放的是全局的jar包logs: 存放的是Tomcat的日志, 如果Tomcat出错什么的,就需要在这里的日志中查找问题temp: 存放的是临时性的文件webapps: 存放的是Java的Web项目, 要部署的项目就需要放在这个目录当中work: 存放的是由JSP代码翻译的Java代码, 以及编译的.class文件

2、Tomcat启动

启动脚本: tomcat安装目录binstartup.bat或startup.sh

JAVA代码审计-JAVA 开发环境搭建

启动成功后访问 localhost:8080 如下启动成功

JAVA代码审计-JAVA 开发环境搭建

3、Tomcat配置

Tomcat 服务器的配置主要集中于 tomcat/conf 下的 catalina.policy、 catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml 文件。

1、server.xml

server.xml 是tomcat 服务器的核心配置文件,包含了Tomcat的 Servlet 容器 (Catalina)的所有配置。由于配置的属性特别多,我们在这里主要讲解其中的一部分重 要配置。

<Server port="8005" shutdown="SHUTDOWN"></Server>

port : Tomcat 监听的关闭服务器的端口。shutdown:关闭服务器的指令字符串。Server内嵌的子元素为 Listener、GlobalNamingResources、Service。

默认配置的5个Listener 的含义

<!‐‐ 用于以日志形式输出服务器 、操作系统、JVM的版本信息 ‐‐><Listener className="org.apache.catalina.startup.VersionLoggerListener"/><!‐‐ 用于加载(服务器启动) 和 销毁 (服务器停止) APR。如果找不到APR库, 则会输出日志, 并不影响Tomcat启动 ‐‐><Listener className="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" /><!‐‐ 用于避免JRE内存泄漏问题 ‐‐><ListenerclassName="org.apache.catalina.core.JreMemoryLeakPreventionListener" /><!‐‐ 用户加载(服务器启动) 和 销毁(服务器停止) 全局命名服务 ‐‐><ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/><!‐‐ 用于在Context停止时重建Executor 池中的线程, 以避免ThreadLocal 相关的内存泄漏 ‐‐><ListenerclassName="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

2、Service

该元素用于创建 Service 实例,默认用org.apache.catalina.core.StandardService。默认情况下,Tomcat 仅指定了Service 的名称, 值为 “Catalina”。Service 可以内嵌的 元素为 :Listener、Executor、Connector、Engine,其中 :Listener 用于为Service 添加生命周期监听器, Executor 用于配置Service 共享线程池,Connector 用于配置 Service 包含的链接器, Engine 用于配置Service中链接器对应的Servlet 容器引擎。一个Server服务器,可以包含多个Service服务。

<Service name="Catalina">...</Service>

3、Executor

默认情况下,Service 并未添加共享线程池配置。如果我们想添加一个线程池, 可以在 下添加如下配置:

<Executor name="tomcatThreadPool"namePrefix="catalina‐exec‐"maxThreads="200"minSpareThreads="100"maxIdleTime="60000"maxQueueSize="Integer.MAX_VALUE"prestartminSpareThreads="false"threadPriority="5"className="org.apache.catalina.core.StandardThreadExecutor"/>

4、Connector

Connector 用于创建链接器实例。默认情况下,server.xml 配置了两个链接器,一个支 持HTTP协议,一个支持AJP协议。因此大多数情况下,我们并不需要新增链接器配置, 只是根据需要对已有链接器进行优化。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

属性说明:

port:端口号,Connector 用于创建服务端Socket 并进行监听, 以等待客户端请求 链接。如果该属性设置为0,Tomcat将会随机选择一个可用的端口号给当前Connector 使用。protocol :当前Connector 支持的访问协议。默认为 HTTP/1.1 , 并采用自动切换 机制选择一个基于 JAVA NIO 的链接器或者基于本地APR的链接器(根据本地是否含有 Tomcat的本地库判定)。connectionTimeOut : Connector 接收链接后的等待超时时间, 单位为 毫秒。-1 表 示不超时。redirectPort:当前Connector 不支持SSL请求, 接收到了一个请求, 并且也符合 security-constraint 约束, 需要SSL传输,Catalina自动将请求重定向到指定的端口。executor :指定共享线程池的名称, 也可以通过maxThreads、minSpareThreads 等属性配置内部线程池。URIEncoding : 用于指定编码URI的字符编码, Tomcat8.x版本默认的编码为 UTF-8 , Tomcat7.x版本默认为ISO-8859-1。

完整的配置如下:

Connector port="8080"protocol="HTTP/1.1"executor="tomcatThreadPool"maxThreads="1000"minSpareThreads="100"acceptCount="1000"maxConnections="1000"connectionTimeout="20000"compression="on"compressionMinSize="2048"disableUploadTimeout="true"redirectPort="8443"URIEncoding="UTF‐8" />

5、Engine

Engine 作为Servlet 引擎的顶级元素,内部可以嵌入:Cluster、Listener、Realm、 Valve和Host。

<Engine name="Catalina" defaultHost="localhost">...</Engine>

属性说明:

name:用于指定Engine 的名称, 默认为Catalina 。该名称会影响一部分Tomcat的 存储路径(如临时文件)。defaultHost :默认使用的虚拟主机名称, 当客户端请求指向的主机无效时, 将交 由默认的虚拟主机处理, 默认为localhost。

6、 Host

Host 元素用于配置一个虚拟主机, 它支持以下嵌入元素:Alias、Cluster、Listener、 Valve、Realm、Context。如果在Engine下配置Realm, 那么此配置将在当前Engine下 的所有Host中共享。同样,如果在Host中配置Realm , 则在当前Host下的所有Context 中共享。

Context中的Realm优先级 > Host 的Realm优先级 > Engine中的Realm优先 级。

<Host name="localhost" appBase="webapps" unpackWARs="true"autoDeploy="true">...</Host>

属性说明:

name: 当前Host通用的网络名称, 必须与DNS服务器上的注册信息一致。Engine中 包含的Host必须存在一个名称与Engine的defaultHost设置一致。appBase:当前Host的应用基础目录, 当前Host上部署的Web应用均在该目录下 (可以是绝对目录,相对路径)。默认为webapps。unpackWARs:设置为true, Host在启动时会将appBase目录下war包解压为目 录。设置为false, Host将直接从war文件启动。autoDeploy:控制tomcat是否在运行时定期检测并自动部署新增或变更的web应 用。

通过给Host添加别名,我们可以实现同一个Host拥有多个网络名称,配置如下:

<Host name="www.web1.com" appBase="webapps" unpackWARs="true"autoDeploy="true"><Alias>www.web2.com</Alias></Host>

这个时候,我们就可以通过两个域名访问当前Host下的应用(需要确保DNS或hosts中添 加了域名的映射配置)。

配置2个域名

# tomcat  配置host127.0.0.1 www.tomcat1.com127.0.0.1 www.tomcat2.com
<Host name="www.tomcat1.com"  appBase="webapps1"      unpackWARs="true" autoDeploy="true">    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"           prefix="localhost_access_log" suffix=".txt"           pattern="%h %l %u %t "%r" %s %b" /></Host>
<Host name="www.tomcat2.com"  appBase="webapps2"      unpackWARs="true" autoDeploy="true">    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"           prefix="localhost_access_log" suffix=".txt"           pattern="%h %l %u %t "%r" %s %b" /></Host>

7、Context

用于配置一个Web应用,默认的配置如下:属性描述:

<Context docBase="myApp" path="/myApp">....</Context>

属性说明:

docBase:Web应用目录或者War包的部署路径。可以是绝对路径,也可以是相对于 Host appBase的相对路径。path:Web应用的Context 路径。如果我们Host名为localhost, 则该web应用访问 的根路径为:http://localhost:8080/myApp。它支持的内嵌元素为:CookieProcessor, Loader, Manager,Realm,Resources, WatchedResource,JarScanner,Valve。

4、idea tomcat配置

tomcat服务器-本地

JAVA代码审计-JAVA 开发环境搭建

选择tomcat目录

JAVA代码审计-JAVA 开发环境搭建

添加服务器设置应用程序上下文

JAVA代码审计-JAVA 开发环境搭建

如您有问题、建议、需求、合作、加群交流请后台留言或添加微信

JAVA代码审计-JAVA 开发环境搭建
image.png

 

原文始发于微信公众号(白给信安):JAVA代码审计-JAVA 开发环境搭建

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月15日16:36:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JAVA代码审计-JAVA 开发环境搭建http://cn-sec.com/archives/1998326.html

发表评论

匿名网友 填写信息