diff --git a/continew-starter-security/continew-starter-security-xss/pom.xml b/continew-starter-security/continew-starter-security-xss/pom.xml new file mode 100644 index 00000000..4533004c --- /dev/null +++ b/continew-starter-security/continew-starter-security-xss/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + top.continew + continew-starter-security + ${revision} + + + continew-starter-security-xss + ContiNew Starter 安全模块 - XSS 过滤模块 + + + + + top.continew + continew-starter-web + + + \ No newline at end of file diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssAutoConfiguration.java b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/autoconfigure/XssAutoConfiguration.java similarity index 73% rename from continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssAutoConfiguration.java rename to continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/autoconfigure/XssAutoConfiguration.java index 0227e283..9a4099fb 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssAutoConfiguration.java +++ b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/autoconfigure/XssAutoConfiguration.java @@ -14,8 +14,11 @@ * limitations under the License. */ -package top.continew.starter.web.autoconfigure.xss; +package top.continew.starter.security.xss.autoconfigure; +import jakarta.annotation.PostConstruct; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; @@ -23,6 +26,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import top.continew.starter.core.constant.PropertiesConstants; +import top.continew.starter.security.xss.filter.XssFilter; /** * XSS 过滤自动配置 @@ -33,9 +37,11 @@ import top.continew.starter.core.constant.PropertiesConstants; @AutoConfiguration @ConditionalOnWebApplication @EnableConfigurationProperties(XssProperties.class) -@ConditionalOnProperty(prefix = PropertiesConstants.WEB_XSS, name = PropertiesConstants.ENABLED, havingValue = "true") +@ConditionalOnProperty(prefix = PropertiesConstants.SECURITY_XSS, name = PropertiesConstants.ENABLED, havingValue = "true") public class XssAutoConfiguration { + private static final Logger log = LoggerFactory.getLogger(XssAutoConfiguration.class); + /** * XSS 过滤器配置 */ @@ -45,4 +51,9 @@ public class XssAutoConfiguration { registrationBean.setFilter(new XssFilter(xssProperties)); return registrationBean; } + + @PostConstruct + public void postConstruct() { + log.debug("[ContiNew Starter] - Auto Configuration 'Security-XSS' completed initialization."); + } } diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssProperties.java b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/autoconfigure/XssProperties.java similarity index 92% rename from continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssProperties.java rename to continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/autoconfigure/XssProperties.java index 4f0be19d..0f619384 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssProperties.java +++ b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/autoconfigure/XssProperties.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package top.continew.starter.web.autoconfigure.xss; +package top.continew.starter.security.xss.autoconfigure; import org.springframework.boot.context.properties.ConfigurationProperties; import top.continew.starter.core.constant.PropertiesConstants; -import top.continew.starter.web.enums.XssMode; +import top.continew.starter.security.xss.enums.XssMode; import java.util.ArrayList; import java.util.List; @@ -29,7 +29,7 @@ import java.util.List; * @author whhya * @since 2.0.0 */ -@ConfigurationProperties(PropertiesConstants.WEB_XSS) +@ConfigurationProperties(PropertiesConstants.SECURITY_XSS) public class XssProperties { /** diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/enums/XssMode.java b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/enums/XssMode.java similarity index 94% rename from continew-starter-web/src/main/java/top/continew/starter/web/enums/XssMode.java rename to continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/enums/XssMode.java index 1471a504..4b5acb30 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/enums/XssMode.java +++ b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/enums/XssMode.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.continew.starter.web.enums; +package top.continew.starter.security.xss.enums; /** * XSS 模式枚举 diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssFilter.java b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/filter/XssFilter.java similarity index 96% rename from continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssFilter.java rename to continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/filter/XssFilter.java index e26317f6..7f5f7b3e 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssFilter.java +++ b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/filter/XssFilter.java @@ -14,13 +14,14 @@ * limitations under the License. */ -package top.continew.starter.web.autoconfigure.xss; +package top.continew.starter.security.xss.filter; import cn.hutool.core.collection.CollUtil; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import top.continew.starter.security.xss.autoconfigure.XssProperties; import top.continew.starter.web.util.SpringWebUtils; import java.io.IOException; diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssServletRequestWrapper.java b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/filter/XssServletRequestWrapper.java similarity index 96% rename from continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssServletRequestWrapper.java rename to continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/filter/XssServletRequestWrapper.java index 0094ed44..98addd77 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/xss/XssServletRequestWrapper.java +++ b/continew-starter-security/continew-starter-security-xss/src/main/java/top/continew/starter/security/xss/filter/XssServletRequestWrapper.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.continew.starter.web.autoconfigure.xss; +package top.continew.starter.security.xss.filter; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; @@ -29,7 +29,8 @@ import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequestWrapper; import top.continew.starter.core.constant.StringConstants; -import top.continew.starter.web.enums.XssMode; +import top.continew.starter.security.xss.autoconfigure.XssProperties; +import top.continew.starter.security.xss.enums.XssMode; import java.io.BufferedReader; import java.io.ByteArrayInputStream; diff --git a/continew-starter-security/continew-starter-security-xss/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/continew-starter-security/continew-starter-security-xss/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000..af95a7f0 --- /dev/null +++ b/continew-starter-security/continew-starter-security-xss/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +top.continew.starter.security.xss.autoconfigure.XssAutoConfiguration \ No newline at end of file diff --git a/continew-starter-security/pom.xml b/continew-starter-security/pom.xml index 5030a14e..0673eca6 100644 --- a/continew-starter-security/pom.xml +++ b/continew-starter-security/pom.xml @@ -18,6 +18,7 @@ continew-starter-security-mask continew-starter-security-crypto continew-starter-security-sensitivewords + continew-starter-security-xss