1. 支持Spring boot3.3.0 2. 编译版本支持到java 17

This commit is contained in:
王帅 2024-06-15 18:41:56 +08:00
parent 80f061bf5b
commit 60db901079
24 changed files with 149 additions and 555 deletions

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-cluster</artifactId> <artifactId>magic-api-plugin-cluster</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-elasticsearch</artifactId> <artifactId>magic-api-plugin-elasticsearch</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-git</artifactId> <artifactId>magic-api-plugin-git</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-mongo</artifactId> <artifactId>magic-api-plugin-mongo</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-redis</artifactId> <artifactId>magic-api-plugin-redis</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-springdoc</artifactId> <artifactId>magic-api-plugin-springdoc</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-plugins</artifactId> <artifactId>magic-api-plugins</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-plugin-swagger</artifactId> <artifactId>magic-api-plugin-swagger</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-servlet</artifactId> <artifactId>magic-api-servlet</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-servlet-jakarta</artifactId> <artifactId>magic-api-servlet-jakarta</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
@ -19,7 +19,7 @@
<dependency> <dependency>
<groupId>jakarta.servlet</groupId> <groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId> <artifactId>jakarta.servlet-api</artifactId>
<optional>true</optional> <!-- <scope>provided</scope>-->
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
@ -27,13 +27,17 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version> <version>3.8.1</version>
<configuration> <configuration>
<source>17</source> <source>17</source>
<target>17</target> <target>17</target>
<encoding>UTF-8</encoding> <compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -24,10 +24,13 @@ public class MagicJakartaServletConfiguration implements WebMvcConfigurer {
private final MagicJakartaCorsFilter magicCorsFilter = new MagicJakartaCorsFilter(); private final MagicJakartaCorsFilter magicCorsFilter = new MagicJakartaCorsFilter();
private final ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider; private final ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider;
private final WebIPLimitRequestInterceptor webIPLimitRequestInterceptor;
public MagicJakartaServletConfiguration(MagicAPIProperties properties, ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider) {
public MagicJakartaServletConfiguration(MagicAPIProperties properties, ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider , WebIPLimitRequestInterceptor webIPLimitRequestInterceptorProvider) {
this.properties = properties; this.properties = properties;
this.magicWebRequestInterceptorProvider = magicWebRequestInterceptorProvider; this.magicWebRequestInterceptorProvider = magicWebRequestInterceptorProvider;
this.webIPLimitRequestInterceptor = webIPLimitRequestInterceptorProvider;
} }
@Bean @Bean
@ -55,6 +58,7 @@ public class MagicJakartaServletConfiguration implements WebMvcConfigurer {
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(magicWebRequestInterceptorProvider.getObject()).addPathPatterns("/**"); registry.addInterceptor(magicWebRequestInterceptorProvider.getObject()).addPathPatterns("/**");
registry.addInterceptor(webIPLimitRequestInterceptor).addPathPatterns(properties.getWeb()+"/**");
} }
@Bean @Bean

View File

@ -0,0 +1,8 @@
package org.ssssssss.magicapi.servlet.jakarta;
import org.springframework.web.servlet.HandlerInterceptor;
public interface MagicWebInterceptor extends HandlerInterceptor {
}

View File

@ -0,0 +1,80 @@
package org.ssssssss.magicapi.servlet.jakarta;
import jakarta.annotation.PostConstruct;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jdk.jfr.DataAmount;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import org.ssssssss.magicapi.utils.IpUtils;
import java.io.PrintWriter;
/**
* Web 接口管理界面 IP白名单
*/
public class WebIPLimitRequestInterceptor implements MagicWebInterceptor {
public final static String START_PLUGIN_LOG_MSG="已开启[{}],如需关闭[{}],插件配置信息:[{}]";
private static final Logger log = LoggerFactory.getLogger(WebIPLimitRequestInterceptor.class);
/**
* 白名单
*/
private String whitelist;
private String blacklist;
@PostConstruct
public void initIpLimitRequestInterceptor() {
log.info(START_PLUGIN_LOG_MSG, "Web UI IP白名单", "magic-api.api-iplimit.enable=false", "magic-api.api-iplimit.whitelist=ip地址逗号分隔");
}
private boolean isIpInBlacklist(String ip) {
return blacklist!=null&&!blacklist.isEmpty() && blacklist.contains(ip);
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String ip = IpUtils.getRealIP(request.getRemoteAddr(), request::getHeader, null);
if (ip == null) {
return true;
}
if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) {
return true;
}
boolean isAllow = !isIpInBlacklist(ip);
if (whitelist != null && !whitelist.isEmpty() && !whitelist.contains(ip)) {
isAllow=false;
}
if (!isAllow ) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.setContentType("text/plain;charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.write(String.format("当前IP:[%s]无权访问该资源,请联系管理员!", ip));
writer.flush();
return false;
}else{
return true;
}
}
public String getWhitelist() {
return whitelist;
}
public void setWhitelist(String whitelist) {
this.whitelist = whitelist;
}
public String getBlacklist() {
return blacklist;
}
public void setBlacklist(String blacklist) {
this.blacklist = blacklist;
}
}

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-servlet</artifactId>
<version>2.1.1</version>
</parent>
<artifactId>magic-api-servlet-javaee</artifactId>
<packaging>jar</packaging>
<name>magic-api-servlet-javaee</name>
<description>auto generate http api</description>
<dependencies>
</dependencies>
</project>

View File

@ -1,29 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.ssssssss.magicapi.core.servlet.MagicCookie;
import javax.servlet.http.Cookie;
public class MagicJavaEECookie implements MagicCookie {
private final Cookie cookie;
public MagicJavaEECookie(Cookie cookie) {
this.cookie = cookie;
}
@Override
public String getName() {
return cookie.getName();
}
@Override
public String getValue() {
return cookie.getValue();
}
@Override
public <T> T getCookie() {
return (T) cookie;
}
}

View File

@ -1,17 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.ssssssss.magicapi.core.config.MagicCorsFilter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MagicJavaEECorsFilter extends MagicCorsFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
super.process(new MagicJavaEEHttpServletRequest((HttpServletRequest) request, null), new MagicJavaEEHttpServletResponse((HttpServletResponse) response));
chain.doFilter(request, response);
}
}

View File

@ -1,136 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.springframework.web.multipart.MultipartRequest;
import org.springframework.web.multipart.MultipartResolver;
import org.ssssssss.magicapi.core.servlet.MagicCookie;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletRequest;
import org.ssssssss.magicapi.core.servlet.MagicHttpSession;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.security.Principal;
import java.util.Arrays;
import java.util.Enumeration;
public class MagicJavaEEHttpServletRequest implements MagicHttpServletRequest {
private final HttpServletRequest request;
private final MultipartResolver multipartResolver;
public MagicJavaEEHttpServletRequest(HttpServletRequest request, MultipartResolver multipartResolver) {
this.request = request;
this.multipartResolver = multipartResolver;
}
@Override
public String getHeader(String name) {
return request.getHeader(name);
}
@Override
public Enumeration<String> getHeaders(String name) {
return request.getHeaders(name);
}
@Override
public String getRequestURI() {
return request.getRequestURI();
}
@Override
public String getMethod() {
return request.getMethod();
}
@Override
public void setAttribute(String key, Object value) {
request.setAttribute(key, value);
}
@Override
public String[] getParameterValues(String name) {
return request.getParameterValues(name);
}
@Override
public Object getAttribute(String name) {
return request.getAttribute(name);
}
@Override
public HttpInputMessage getHttpInputMessage() {
return new ServletServerHttpRequest(request);
}
@Override
public String getContentType() {
return request.getContentType();
}
@Override
public MagicHttpSession getSession() {
return new MagicJavaEEHttpSession(request.getSession());
}
@Override
public MagicCookie[] getCookies() {
Cookie[] cookies = request.getCookies();
if (cookies == null) {
return new MagicJavaEECookie[0];
}
return Arrays.stream(request.getCookies()).map(MagicJavaEECookie::new).toArray(MagicJavaEECookie[]::new);
}
@Override
public InputStream getInputStream() throws IOException {
return request.getInputStream();
}
@Override
public boolean isMultipart() {
return multipartResolver.isMultipart(request);
}
@Override
public String getRemoteAddr() {
return request.getRemoteAddr();
}
@Override
public MultipartRequest resolveMultipart() {
return multipartResolver.resolveMultipart(request);
}
@Override
public Principal getUserPrincipal() {
return request.getUserPrincipal();
}
@Override
public <T> T getRequest() {
return (T) request;
}
public static class ArgumentsResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.getParameterType() == MagicHttpServletRequest.class;
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
return new MagicJavaEEHttpServletRequest(webRequest.getNativeRequest(HttpServletRequest.class), null);
}
}
}

View File

@ -1,83 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.ssssssss.magicapi.core.servlet.MagicCookie;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Collection;
public class MagicJavaEEHttpServletResponse implements MagicHttpServletResponse {
private final HttpServletResponse response;
public MagicJavaEEHttpServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setHeader(String name, String value) {
response.setHeader(name, value);
}
@Override
public void addHeader(String name, String value) {
response.addHeader(name, value);
}
@Override
public void sendRedirect(String location) throws IOException {
response.sendRedirect(location);
}
@Override
public void addCookie(MagicCookie cookie) {
response.addCookie(cookie.getCookie());
}
@Override
public void setContentType(String contentType) {
response.setContentType(contentType);
}
@Override
public void setCharacterEncoding(String characterEncoding) {
response.setCharacterEncoding(characterEncoding);
}
@Override
public OutputStream getOutputStream() throws IOException {
return response.getOutputStream();
}
@Override
public Collection<String> getHeaderNames() {
return response.getHeaderNames();
}
@Override
public <T> T getResponse() {
return (T) response;
}
public static class ArgumentsResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.getParameterType() == MagicHttpServletResponse.class;
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
return new MagicJavaEEHttpServletResponse(webRequest.getNativeResponse(HttpServletResponse.class));
}
}
}

View File

@ -1,29 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.ssssssss.magicapi.core.servlet.MagicHttpSession;
import javax.servlet.http.HttpSession;
public class MagicJavaEEHttpSession implements MagicHttpSession {
private final HttpSession session;
public MagicJavaEEHttpSession(HttpSession session) {
this.session = session;
}
@Override
public Object getAttribute(String key) {
return session.getAttribute(key);
}
@Override
public void setAttribute(String key, Object value) {
session.setAttribute(key, value);
}
@Override
public <T> T getSession() {
return (T) session;
}
}

View File

@ -1,25 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.springframework.web.multipart.MultipartResolver;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletRequest;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletResponse;
import org.ssssssss.magicapi.core.servlet.MagicRequestContextHolder;
public class MagicJavaEERequestContextHolder implements MagicRequestContextHolder {
private final MultipartResolver multipartResolver;
public MagicJavaEERequestContextHolder(MultipartResolver multipartResolver) {
this.multipartResolver = multipartResolver;
}
@Override
public MagicHttpServletRequest getRequest() {
return convert(servletRequestAttributes -> new MagicJavaEEHttpServletRequest(servletRequestAttributes.getRequest(), multipartResolver));
}
@Override
public MagicHttpServletResponse getResponse() {
return convert(servletRequestAttributes -> new MagicJavaEEHttpServletResponse(servletRequestAttributes.getResponse()));
}
}

View File

@ -1,104 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.apache.commons.lang3.StringUtils;
import org.ssssssss.magicapi.core.context.RequestContext;
import org.ssssssss.magicapi.core.servlet.MagicHttpServletResponse;
import org.ssssssss.magicapi.modules.servlet.ResponseModule;
import org.ssssssss.script.annotation.Comment;
import org.ssssssss.script.functions.ExtensionMethod;
import org.ssssssss.script.functions.ObjectConvertExtension;
import javax.servlet.http.Cookie;
import java.util.Map;
public class MagicJavaEEResponseExtension implements ExtensionMethod {
/**
* 添加cookie
*/
@Comment("添加Cookie")
public ResponseModule addCookie(ResponseModule module, @Comment(name = "cookie", value = "Cookie对象") Cookie cookie) {
if (cookie != null) {
MagicHttpServletResponse response = RequestContext.getHttpServletResponse();
if (response != null) {
response.addCookie(new MagicJavaEECookie(cookie));
}
}
return module;
}
/**
* 批量添加cookie
*/
@Comment("批量添加Cookie")
public ResponseModule addCookies(ResponseModule module, @Comment(name = "cookies", value = "Cookies") Map<String, String> cookies) {
return addCookies(module, cookies, null);
}
/**
* 添加cookie
*/
@Comment("添加Cookie")
public ResponseModule addCookie(ResponseModule module, @Comment(name = "name", value = "Cookie名") String name,
@Comment(name = "value", value = "Cookie值") String value,
@Comment(name = "options", value = "Cookie选项如`path`、`httpOnly`、`domain`、`maxAge`") Map<String, Object> options) {
if (StringUtils.isNotBlank(name)) {
Cookie cookie = new Cookie(name, value);
if (options != null) {
Object path = options.get("path");
if (path != null) {
cookie.setPath(path.toString());
}
Object httpOnly = options.get("httpOnly");
if (httpOnly != null) {
cookie.setHttpOnly("true".equalsIgnoreCase(httpOnly.toString()));
}
Object domain = options.get("domain");
if (domain != null) {
cookie.setDomain(domain.toString());
}
Object maxAge = options.get("maxAge");
int age;
if (maxAge != null && (age = ObjectConvertExtension.asInt(maxAge, Integer.MIN_VALUE)) != Integer.MIN_VALUE) {
cookie.setMaxAge(age);
}
}
addCookie(module, cookie);
}
return module;
}
/**
* 添加cookie
*/
@Comment("添加Cookie")
public ResponseModule addCookie(ResponseModule module, @Comment(name = "name", value = "cookie名") String name,
@Comment(name = "value", value = "cookie值") String value) {
if (StringUtils.isNotBlank(name)) {
addCookie(module, new Cookie(name, value));
}
return module;
}
/**
* 批量添加cookie
*/
@Comment("批量添加Cookie")
public ResponseModule addCookies(ResponseModule module,
@Comment(name = "cookies", value = "Cookies") Map<String, String> cookies,
@Comment(name = "options", value = "Cookie选项如`path`、`httpOnly`、`domain`、`maxAge`") Map<String, Object> options) {
if (cookies != null) {
for (Map.Entry<String, String> entry : cookies.entrySet()) {
addCookie(module, entry.getKey(), entry.getValue(), options);
}
}
return module;
}
@Override
public Class<?> support() {
return ResponseModule.class;
}
}

View File

@ -1,69 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.ssssssss.magicapi.core.config.MagicAPIProperties;
import org.ssssssss.magicapi.core.interceptor.AuthorizationInterceptor;
import org.ssssssss.magicapi.core.servlet.MagicRequestContextHolder;
import java.util.List;
@Configuration
public class MagicJavaEEServletConfiguration implements WebMvcConfigurer {
private final MagicAPIProperties properties;
private final ObjectProvider<MagicJavaEEWebRequestInterceptor> magicWebRequestInterceptorProvider;
public MagicJavaEEServletConfiguration(MagicAPIProperties properties, ObjectProvider<MagicJavaEEWebRequestInterceptor> magicWebRequestInterceptorProvider) {
this.properties = properties;
this.magicWebRequestInterceptorProvider = magicWebRequestInterceptorProvider;
}
private MagicJavaEECorsFilter magicCorsFilter = new MagicJavaEECorsFilter();
@Bean
public MagicRequestContextHolder magicRequestContextHolder(MultipartResolver multipartResolver){
return new MagicJavaEERequestContextHolder(multipartResolver);
}
@Bean
public MagicJavaEEWebRequestInterceptor magicWebRequestInterceptor(AuthorizationInterceptor authorizationInterceptor){
return new MagicJavaEEWebRequestInterceptor(properties.isSupportCrossDomain() ? magicCorsFilter : null, authorizationInterceptor);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(magicWebRequestInterceptorProvider.getObject()).addPathPatterns("/**");
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(0, new MagicJavaEEHttpServletRequest.ArgumentsResolver());
resolvers.add(0, new MagicJavaEEHttpServletResponse.ArgumentsResolver());
}
@Bean
public MagicJavaEEResponseExtension magicJavaEEResponseExtension() {
return new MagicJavaEEResponseExtension();
}
@Bean
@ConditionalOnProperty(prefix = "magic-api", value = "support-cross-domain", havingValue = "true", matchIfMissing = true)
public FilterRegistrationBean<MagicJavaEECorsFilter> magicCorsFilterRegistrationBean() {
FilterRegistrationBean<MagicJavaEECorsFilter> registration = new FilterRegistrationBean<>(magicCorsFilter);
registration.addUrlPatterns("/*");
registration.setName("Magic Cors Filter");
registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
return registration;
}
}

View File

@ -1,23 +0,0 @@
package org.ssssssss.magicapi.servlet.javaee;
import org.springframework.web.servlet.HandlerInterceptor;
import org.ssssssss.magicapi.core.config.MagicCorsFilter;
import org.ssssssss.magicapi.core.interceptor.AuthorizationInterceptor;
import org.ssssssss.magicapi.core.interceptor.MagicWebRequestInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MagicJavaEEWebRequestInterceptor extends MagicWebRequestInterceptor implements HandlerInterceptor {
public MagicJavaEEWebRequestInterceptor(MagicCorsFilter magicCorsFilter, AuthorizationInterceptor authorizationInterceptor) {
super(magicCorsFilter, authorizationInterceptor);
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
super.handle(handler, new MagicJavaEEHttpServletRequest(request, null), new MagicJavaEEHttpServletResponse(response));
return true;
}
}

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId> <artifactId>magic-api-parent</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-api-servlet</artifactId> <artifactId>magic-api-servlet</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
@ -14,7 +14,6 @@
<description>auto generate http api</description> <description>auto generate http api</description>
<modules> <modules>
<module>magic-api-servlet-jakarta</module> <module>magic-api-servlet-jakarta</module>
<module>magic-api-servlet-javaee</module>
</modules> </modules>
<dependencies> <dependencies>
<dependency> <dependency>
@ -22,4 +21,20 @@
<artifactId>magic-api</artifactId> <artifactId>magic-api</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId> <artifactId>magic-api-parent</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>magic-editor</artifactId> <artifactId>magic-editor</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>

30
pom.xml
View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.ssssssss</groupId> <groupId>org.ssssssss</groupId>
<artifactId>magic-api-parent</artifactId> <artifactId>magic-api-parent</artifactId>
<version>2.1.1</version> <version>3.0.0</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>magic-api-parent</name> <name>magic-api-parent</name>
<description>auto generate http api</description> <description>auto generate http api</description>
@ -29,7 +29,7 @@
<developerConnection>scm:git:https://gitee.com/ssssssss-team/magic-api.git</developerConnection> <developerConnection>scm:git:https://gitee.com/ssssssss-team/magic-api.git</developerConnection>
</scm> </scm>
<properties> <properties>
<spring-boot.version>2.4.5</spring-boot.version> <spring-boot.version>3.3.0</spring-boot.version>
<magic-script.version>1.8.8</magic-script.version> <magic-script.version>1.8.8</magic-script.version>
<commons-compress.version>1.21</commons-compress.version> <commons-compress.version>1.21</commons-compress.version>
<commons-io.version>2.7</commons-io.version> <commons-io.version>2.7</commons-io.version>
@ -38,10 +38,11 @@
<jakarta.version>6.0.0</jakarta.version> <jakarta.version>6.0.0</jakarta.version>
<fastjson.version>1.2.83</fastjson.version> <fastjson.version>1.2.83</fastjson.version>
<spring-boot-starter-log4j.version>1.3.8.RELEASE</spring-boot-starter-log4j.version> <spring-boot-starter-log4j.version>1.3.8.RELEASE</spring-boot-starter-log4j.version>
<java.version>1.8</java.version> <java.version>17</java.version>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.parameters>true</maven.compiler.parameters>
</properties> </properties>
<modules> <modules>
<module>magic-api</module> <module>magic-api</module>
@ -133,6 +134,17 @@
</archive> </archive>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
<profiles> <profiles>
@ -142,10 +154,14 @@
<plugins> <plugins>
<!--Compiler--> <!--Compiler-->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>1.8</source> <source>17</source>
<target>1.8</target> <target>17</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration> </configuration>
</plugin> </plugin>
<!-- Source --> <!-- Source -->