tomcat导入java代码_Eclipse导入Tomcat8源代码并编译安全补丁文件-程序员宅基地

技术标签: tomcat导入java代码  

1:到官网下载Tomcat源码,我这里Tomcat版本是8.0.29;下载地址:http://archive.apache.org/dist/tomcat/tomcat-8/,下载对应版本后解压

94cb84d5a82ba5761f38c64a7bb24f11.png

02840e31eeb38d3f814e7e089e8302e7.png

2:Eclipse新建Dynamic Web Project项目 Tomcat8.0.29;然后File-Import-File System,选择解压后的目录

8c45c6f57693c0221097855222256d4d.png

导入后项目会报错;因为缺少jar

3:在项目下 java和test上右键 Build Path - Use as Source Folder

4:添加需要的jar;更改java编译版本为1.7+,加入Junit,然后添加其它Jar;jar如下:

8aa30f69f4ad1bd2ec7e627343a45f04.png

有一些Jar Eclipse自带可以搜索一下,如果没有则在Maven仓库上搜索下载;

5:到这一步,大多数Java文件的红叉已经去掉了(javax.servlet.resources下的资源文件除外);在Test中 TestCookieFilter类中 CookieFilter类缺失,在网上找了很久看到有人找到了该类的源代码;在Eclipse中新建该类 复制下面代码即可。/*

* Licensed to the Apache Software Foundation (ASF) under one or more

* contributor license agreements.  See the NOTICE file distributed with

* this work for additional information regarding copyright ownership.

* The ASF licenses this file to You under the Apache License, Version 2.0

* (the "License"); you may not use this file except in compliance with

* the License.  You may obtain a copy of the License at

*

*     http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package util;

import org.junit.Assert;

import org.junit.Test;

import org.apache.catalina.authenticator.Constants;

public class TestCookieFilter {

@Test

public void test01() {

// Single cookie

Assert.assertEquals("a=b", CookieFilter.filter("a=b", null));

}

@Test

public void test02() {

// Two cookies

Assert.assertEquals("a=b;c=d", CookieFilter.filter("a=b;c=d", null));

}

@Test

public void test03() {

// Cookies with leading and trailing whitespace

Assert.assertEquals(" a=b  ;   c=d    ",

CookieFilter.filter(" a=b  ;   c=d    ", null));

}

@Test

public void test04() {

// Empty name (not necessarily valid but checking edge cases in filter)

Assert.assertEquals("=b", CookieFilter.filter("=b", null));

}

@Test

public void test05() {

// Empty value (not necessarily valid but checking edge cases in filter)

Assert.assertEquals("a=", CookieFilter.filter("a=", null));

}

@Test

public void test06() {

// Simple case

Assert.assertEquals("JSESSIONID=[obfuscated]",

CookieFilter.filter("JSESSIONID=0123456789", null));

}

@Test

public void test07() {

// Simple SSO case

Assert.assertEquals(Constants.SINGLE_SIGN_ON_COOKIE + "=[obfuscated]",

CookieFilter.filter(Constants.SINGLE_SIGN_ON_COOKIE + "=0123456789", null));

}

@Test

public void test08() {

// Simple case

String id = "0123456789";

String cookie = "JSESSIONID=" + id;

Assert.assertEquals(cookie, CookieFilter.filter(cookie, id));

}

@Test

public void test09() {

// Simple SSO case

String id = "0123456789";

String cookie = Constants.SINGLE_SIGN_ON_COOKIE + "=" + id;

Assert.assertEquals(cookie, CookieFilter.filter(cookie, id));

}

@Test

public void test10() {

// Single cookie

Assert.assertEquals("a=\"xx;x\"", CookieFilter.filter("a=\"xx;x\"", null));

}

}

6:到此步骤,Eclipse已经可编译出class文件了;剩下的就是下载安全补丁文件(下载地址:https://tomcat.apache.org/security-8.html),重新编译替换原文件了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33421437/article/details/114561726

智能推荐

azkaban任务报错java.lang.RuntimeException: The root scratch dir: /tmp/hive_azkaban kettle 时间长报错-程序员宅基地

文章浏览阅读3.2k次。azkaban运行任务的时候失败报错如下:23-03-2016 08:16:14 CST analyzer-kafka2hdfs_new ERROR - Exception in thread "main" org.apache.hive.service.cli.HiveSQLException: java.lang.RuntimeException: The root scratch d_azkaban kettle 时间长报错

PHP生成迅雷、快车、旋风等软件的下载链接代码实例-程序员宅基地

文章浏览阅读131次。<?php function Download() { $urlodd=explode('//',$_POST["url"],2);//把链接分成2段,//前面是第一段,后面的是第二段 $head=strtolower($urlodd[0]);//PHP对大小写敏感,先统一转换成小写,不然 出现HtTp:或者ThUNDER:这种怪异的写法不好处...

创建带有UTF-8 的声明的XMLDocument_xmlnewdoc utf-8-程序员宅基地

文章浏览阅读4.6k次。class Program { static void Main(string[] args) { // Create and load the XML document. XmlDocument doc = new XmlDocument(); string xmlString = "_xmlnewdoc utf-8

Jquery 多选下拉列表插件jquery multiselect-程序员宅基地

文章浏览阅读286次。有一个多选的需求,在网上找到了这个插件:multiselecthttps://github.com/ehynds/jquery-ui-multiselect-widgetcsdn博客上有这个插件的介绍,不少童鞋都问了这么个问题,怎么获取选中的值?真是个好问题,因为我在看demo的时候也发现了这个问题,呵呵!先简单说说这个插件: jquery-multisel..._multiselect 多级 多选插件 checkbox

解决android studio打包后安装APK提示“签名不一致,该应用可能已被修改。“_签名不一致该应用可能已被修改-程序员宅基地

文章浏览阅读8.4k次,点赞5次,收藏15次。现象解决办法修改applicationId名_签名不一致该应用可能已被修改

PHP用户缓存APCU_php apcu 100%-程序员宅基地

文章浏览阅读6.1k次。故事APCu 是老牌 PHP 字节码和对象缓存 缓存器 APC 的分支,具体由来还得讲个故事。首先提一下,PHP 如果公用多个缓存器是会冲突的,例如同样都是字节码缓存器,OPcache 和 eAccelerate 同时安装就会起冲突甚至报错;而 XCache 同时有字节码缓存器和对象缓存,和 OPCache 共存也是会起冲突的。在 PHP 5.5 之前是没有 OPcache 这个缓存器_php apcu 100%

随便推点

第一范式、第二范式、第三范式、BCNF(BC范式)-程序员宅基地

文章浏览阅读7.6k次,点赞11次,收藏37次。范式原理笔记数据库关系数据理论----范式范式原理笔记什么是(范式)---范式介绍范式发展1、第一范式2、第二范式3、第三范式4、BCNF(扩展第三范式)什么是(范式)—范式介绍官方介绍,数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称1NF;在第一范式中满足进一步要求的为第二范式,其余的一次类推。还不懂?那么简单来说范式是一种标准,也就是你设计表结构是要符合规范。就好像是你装修自己的房子,你按照的标准越高,那么你的房子就更加的牢固安全。所谓“第几范_第一范式

【openresty】API disabled in the context of init_worker_by_lua_api disabled in the current context-程序员宅基地

文章浏览阅读4.9k次。在调用init.lua初始化的过程中,我调用了mysql数据库接口初始化数据,然后就提示了此错误:2020/06/28 19:56:40 [error] 24673#24673: *7 [lua] init.lua:2: init , context: init_worker_by_lua*2020/06/28 19:56:40 [error] 24673#24673: *7 [lua] data.lua:11: load(): context: init_worker_by_lua*2020/0_api disabled in the current context

openlayers6【八】地图覆盖物overlay详解_ol.overlay-程序员宅基地

文章浏览阅读5k次,点赞4次,收藏16次。文章目录1. overlay 简述2. overlay 属性2. overlay 事件4. overlay 方法5. overlay 实例5.1 overlay 实现 windowInfo 弹窗5.2 overlay 实现 label标注信息5.3 overlay 实现 text文本信息1. overlay 简述overlay是覆盖物的意思,顾名思义就是在地图上以另外一种形式浮现在地图上,这里很多同学会跟图层layers搞混淆,主要是放置一些和地图位置相关的元素,常见的地图覆盖物为这三种类型,如:win_ol.overlay

matlab 广义互相关,广义互相关求时延的问题-程序员宅基地

文章浏览阅读708次。clear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%获得语音文件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[x,fs,nbits]=wavread('bluesky3.wav'); %%%%%%打开wav文件%fs=8000%nbits=16x=x/max(abs(x)); %%%%%幅度..._matlab中广义互相关scot求时延

搜索关键词采集YouTube视频字幕-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏12次。使用python采集YouTube视频字幕本篇博客纯干货!!!最近接到leader安排的采集任务,抓取采集世界上最大的视频共享网站YouTube的视频字幕。分析目标网站,开始抓包当我打开视频链接点击显示字幕按钮时,通过浏览器抓取到timedtext这样的一个请求,而返回的内容正式我想要的数据——每个时间点的字幕。...

无语!35 岁华人程序员涉嫌诈骗 150 万美元抗疫贷款,在美国遭 FBI 逮捕-程序员宅基地

文章浏览阅读1.6k次。(给程序员的那些事加星标)有个华人程序员????了最近,有一个华人程序员在网上「火了」,负面的那种火。????5 月 22 日,美国司法部官网公开了一份刑事起诉书,一位软件工程师涉嫌 1...