undertow

JBOSS 无文件 webshell 的技术研究

那年仲夏 提交于 2020-08-14 20:29:50
作者:宽字节安全 原文链接: https://mp.weixin.qq.com/s/_SQS9B7tkL1H5fMIgPTOKw 本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:paper@seebug.org 前几篇文章主要研究了tomcat,weblogic的无文件webshell。这篇文章则重点研究jboss的无文件webhsell。下面分享一下思路,以下分析基于 jboss 社区版 wildfly-20.0.0.Final版本。 0x01 wildfly 加载Filter分析 在Filter处随便打一个断点,如图,观察堆栈 jboss比较简单,处理Filter的代码如下所示 io.undertow.servlet.handlers.FilterHandler#handleRequest public void handleRequest(HttpServerExchange exchange) throws Exception { ServletRequestContext servletRequestContext = (ServletRequestContext)exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY); ServletRequest request

knife4j只用此插件的最简洁开发方式

跟風遠走 提交于 2020-08-10 22:27:44
一、POM添加 在pom文件里添加包 1 <!-- 引入knife4j以来 --> 2 < dependency > 3 < groupId > com.github.xiaoymin </ groupId > 4 < artifactId > knife4j-spring-boot-starter </ artifactId > < version > 1.9.6 </ version > 5 </ dependency > View Code 二、配置添加,相当于<bean>添加 1 package com.mrliu.undertow.conf; 2 3 import com.github.xiaoymin.knife4j.spring.annotations.EnableSwaggerBootstrapUi; 4 import org.springframework.context.annotation.Bean; 5 import org.springframework.context.annotation.Configuration; 6 import springfox.documentation.builders.ApiInfoBuilder; 7 import springfox.documentation.builders.PathSelectors; 8

Spring Boot 2.3 新特性优雅停机详解

北城以北 提交于 2020-08-09 02:23:08
什么是优雅停机 先来一段简单的代码,如下: @RestController public class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; } } 当我们流量请求到此接口执行业务逻辑的时候,若服务端此时执行关机 (kill),spring boot 默认情况会直接关闭容器(tomcat 等),导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况,事务逻辑不会回滚。 graceful shutdown 在最新的 spring boot 2.3 版本,内置此功能,不需要再自行扩展容器线程池来处理, 目前 spring boot 嵌入式支持的 web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 web 应用程序都支持优雅停机功能。 我们来看下如何使用: 当使用 server.shutdown=graceful 启用时,在 web 容器关闭时,web 服务器将不再接收新请求,并将等待活动请求完成的缓冲期。 配置体验 此处支持的 shutdown 行为

加锁同步等待,和使用volatile 等待数据模拟阻塞

Deadly 提交于 2020-08-08 18:31:54
环境:jdk1.8 springboot maven3.5 项目结构: maven.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>undertowdemo</groupId> <artifactId>undertowdemo</artifactId>

新特性:这招牛逼,Spring Boot 2.3.0 如何优雅停机?

半腔热情 提交于 2020-08-07 07:06:46
原文: https://mp.weixin.qq.com/s/uvNkdcmwkd6lcSRDhjPUJQ 1.什么是优雅停机 先来一段简单的代码, 如下: @RestController public class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; } } 当我们流量请求到此接口执行业务逻辑的时候, 若服务端此时执行关机 (kill), spring boot 默认情况会直接关闭容器(tomcat 等), 导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况, 事务逻辑不会回滚。 2.graceful shutdown 在最新的 spring boot 2.3 版本, 内置此功能, 不需要再自行扩展容器线程池来处理, 目前 spring boot 嵌入式支持的 web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 web 应用程序都支持优雅停机功能。我们来看下如何使用: 当使用 server.shutdown=graceful 启用时, 在

JFinal-Undertow 配置文件工作原理

删除回忆录丶 提交于 2020-08-06 11:33:34
1. 默认配置文件 首先要从 UndertowServer 说起,UndertowServer 有多个创建方法,不管使用哪个创建方法最终创建时创建时都需要先创建 UndertowConfig,并将这个作为参数用于创建 UndertowServer。源码摘取如下: /** * 创建 UndertowServer * * 尝试使用 "undertow.txt" 以及 "undertow-pro.txt" 初始化 undertow * 当配置文件不存在时不抛出异常而是使用默认值进行初始化 */ public static UndertowServer create(Class<? extends JFinalConfig> jfinalConfigClass) { return new UndertowServer(new UndertowConfig(jfinalConfigClass)); } 同样的 UndertowConfig 也有多个创建方法,不管使用哪个创建方法最终创建时都是需要进行配置文件的加载和配置项的初始化,当指定配置文件名根据指定的配置文件进行加载,未指定配置文件名时将加载默认的配置文件 undertow.txt,并进行参数赋值。源码摘取如下: public UndertowConfig(String jfinalConfigClass) { this

Java 后端开发学习路线

你离开我真会死。 提交于 2020-07-27 09:05:19
编程基础 Java语言 语言基础 基础语法 面向对象 接口 容器 异常 泛型 反射 注解 I/O 图形化(如Swing) JVM 类加载机制 字节码执行机制 jvm内存模型 GC垃圾回收 jvm性能监控与故障定位 jvm调优 并发/多线程 并发编程基础 线程池 锁 并发容器 原子类 juc并发工具类 数据结构和算法 数据结构 字符串 数组 链表 二叉树 堆、栈、队列 哈希 算法 查找 排序 贪心 分治 动态规划 回溯 计算机网络 ARP协议 IP/ICMP协议 TCP/UDP协议 DNS/HTTP/HTTPS协议 Session/Cookie 数据库/SQL SQL语句书写 SQL语句优化 事务以及隔离级别 索引 锁 操作系统 进程/线程 并发/锁 内存管理和调度 I/O原理 设计模式 单例 工厂 代理 策略 模板方法 观察者 适配器 责任链 建造者 开发工具 集成开发环境 Eclipse IDEA VSCode Linux系统 Linux常用命令 基本Shell脚本 代码管理工具 Git SVN 项目管理/构建工具 Maven Gradle 应用框架 后端 Spring家族 Spring IOC AOP SpringMVC SpringBoot 自动配置、开箱即用 整合Web 整合数据库(事务问题) 整合权限 Shiro SpringSecurity 整合各种中间件 缓存 MQ

Whitelabel Error coming when trying to integrate @ManagementContextConfiguration in META-INF/spring.factories

冷暖自知 提交于 2020-07-23 06:43:05
问题 I am building Spring boot gradle application. I am trying to add an additional port for the actuator endpoint with Undertow. Code : SecondActuatorPortConfiguration.java package com.test.config; import org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration; import org.springframework.boot.actuate.autoconfigure.web.ManagementContextType; import org.springframework.boot.web.embedded.undertow.UndertowBuilderCustomizer; import org.springframework.context.annotation.Bean;

Whitelabel Error coming when trying to integrate @ManagementContextConfiguration in META-INF/spring.factories

纵然是瞬间 提交于 2020-07-23 06:42:32
问题 I am building Spring boot gradle application. I am trying to add an additional port for the actuator endpoint with Undertow. Code : SecondActuatorPortConfiguration.java package com.test.config; import org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration; import org.springframework.boot.actuate.autoconfigure.web.ManagementContextType; import org.springframework.boot.web.embedded.undertow.UndertowBuilderCustomizer; import org.springframework.context.annotation.Bean;

Undertow throws RuntimeException when uploading multipart file exceeding the setting value

只谈情不闲聊 提交于 2020-07-21 06:33:11
问题 I'm running the complete version of Spring boot Upload file guide at Spring Guide, but I used Undertow as embedded servlet instead of Tomcat default. And it worked. When I try to upload file with size larger than the value in config file spring.http.multipart.max-file-size=128KB spring.http.multipart.max-request-size=128KB It raises exception. That is expected behavior With Tomcat embedded servlet, it can be easily handled by catching SizeLimitExceededException or MultipartException But with