diff --git a/magic-api-plugins/magic-api-plugin-cluster/pom.xml b/magic-api-plugins/magic-api-plugin-cluster/pom.xml index 021daaef..5a5067c4 100644 --- a/magic-api-plugins/magic-api-plugin-cluster/pom.xml +++ b/magic-api-plugins/magic-api-plugin-cluster/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-cluster jar diff --git a/magic-api-plugins/magic-api-plugin-elasticsearch/pom.xml b/magic-api-plugins/magic-api-plugin-elasticsearch/pom.xml index a28052cf..32ed8b93 100644 --- a/magic-api-plugins/magic-api-plugin-elasticsearch/pom.xml +++ b/magic-api-plugins/magic-api-plugin-elasticsearch/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-elasticsearch jar diff --git a/magic-api-plugins/magic-api-plugin-git/pom.xml b/magic-api-plugins/magic-api-plugin-git/pom.xml index 57d26ea2..f94bd353 100644 --- a/magic-api-plugins/magic-api-plugin-git/pom.xml +++ b/magic-api-plugins/magic-api-plugin-git/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-git jar diff --git a/magic-api-plugins/magic-api-plugin-mongo/pom.xml b/magic-api-plugins/magic-api-plugin-mongo/pom.xml index 797656a9..d9c90fdf 100644 --- a/magic-api-plugins/magic-api-plugin-mongo/pom.xml +++ b/magic-api-plugins/magic-api-plugin-mongo/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-mongo jar diff --git a/magic-api-plugins/magic-api-plugin-redis/pom.xml b/magic-api-plugins/magic-api-plugin-redis/pom.xml index c9e8b060..68bc04f2 100644 --- a/magic-api-plugins/magic-api-plugin-redis/pom.xml +++ b/magic-api-plugins/magic-api-plugin-redis/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-redis jar diff --git a/magic-api-plugins/magic-api-plugin-springdoc/pom.xml b/magic-api-plugins/magic-api-plugin-springdoc/pom.xml index fafb6d3d..2967ea92 100644 --- a/magic-api-plugins/magic-api-plugin-springdoc/pom.xml +++ b/magic-api-plugins/magic-api-plugin-springdoc/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-springdoc jar diff --git a/magic-api-plugins/magic-api-plugin-swagger/pom.xml b/magic-api-plugins/magic-api-plugin-swagger/pom.xml index 2b880399..55c2a27d 100644 --- a/magic-api-plugins/magic-api-plugin-swagger/pom.xml +++ b/magic-api-plugins/magic-api-plugin-swagger/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-plugins - 2.1.1 + 3.0.0 magic-api-plugin-swagger jar diff --git a/magic-api-servlet/magic-api-servlet-jakarta/pom.xml b/magic-api-servlet/magic-api-servlet-jakarta/pom.xml index a853f5a2..40620c7a 100644 --- a/magic-api-servlet/magic-api-servlet-jakarta/pom.xml +++ b/magic-api-servlet/magic-api-servlet-jakarta/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-servlet - 2.1.1 + 3.0.0 magic-api-servlet-jakarta jar @@ -19,7 +19,7 @@ jakarta.servlet jakarta.servlet-api - true + @@ -27,13 +27,17 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.1 + 3.8.1 17 17 - UTF-8 + + -parameters + + + diff --git a/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicJakartaServletConfiguration.java b/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicJakartaServletConfiguration.java index 19e37516..7ea058b3 100644 --- a/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicJakartaServletConfiguration.java +++ b/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicJakartaServletConfiguration.java @@ -24,10 +24,13 @@ public class MagicJakartaServletConfiguration implements WebMvcConfigurer { private final MagicJakartaCorsFilter magicCorsFilter = new MagicJakartaCorsFilter(); private final ObjectProvider magicWebRequestInterceptorProvider; + private final WebIPLimitRequestInterceptor webIPLimitRequestInterceptor; - public MagicJakartaServletConfiguration(MagicAPIProperties properties, ObjectProvider magicWebRequestInterceptorProvider) { + + public MagicJakartaServletConfiguration(MagicAPIProperties properties, ObjectProvider magicWebRequestInterceptorProvider , WebIPLimitRequestInterceptor webIPLimitRequestInterceptorProvider) { this.properties = properties; this.magicWebRequestInterceptorProvider = magicWebRequestInterceptorProvider; + this.webIPLimitRequestInterceptor = webIPLimitRequestInterceptorProvider; } @Bean @@ -55,6 +58,7 @@ public class MagicJakartaServletConfiguration implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(magicWebRequestInterceptorProvider.getObject()).addPathPatterns("/**"); + registry.addInterceptor(webIPLimitRequestInterceptor).addPathPatterns(properties.getWeb()+"/**"); } @Bean diff --git a/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicWebInterceptor.java b/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicWebInterceptor.java new file mode 100644 index 00000000..aade867f --- /dev/null +++ b/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicWebInterceptor.java @@ -0,0 +1,8 @@ +package org.ssssssss.magicapi.servlet.jakarta; + +import org.springframework.web.servlet.HandlerInterceptor; + + +public interface MagicWebInterceptor extends HandlerInterceptor { + +} diff --git a/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/WebIPLimitRequestInterceptor.java b/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/WebIPLimitRequestInterceptor.java new file mode 100644 index 00000000..9019125e --- /dev/null +++ b/magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/WebIPLimitRequestInterceptor.java @@ -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; + } +} diff --git a/magic-api-servlet/magic-api-servlet-javaee/pom.xml b/magic-api-servlet/magic-api-servlet-javaee/pom.xml deleted file mode 100644 index 852103d3..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - org.ssssssss - magic-api-servlet - 2.1.1 - - magic-api-servlet-javaee - jar - magic-api-servlet-javaee - auto generate http api - - - - diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEECookie.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEECookie.java deleted file mode 100644 index 8192b64a..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEECookie.java +++ /dev/null @@ -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 getCookie() { - return (T) cookie; - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEECorsFilter.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEECorsFilter.java deleted file mode 100644 index 05dea150..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEECorsFilter.java +++ /dev/null @@ -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); - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletRequest.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletRequest.java deleted file mode 100644 index 2c8e182d..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletRequest.java +++ /dev/null @@ -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 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 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); - } - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletResponse.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletResponse.java deleted file mode 100644 index fb3ed4cd..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletResponse.java +++ /dev/null @@ -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 getHeaderNames() { - return response.getHeaderNames(); - } - - @Override - public 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)); - } - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpSession.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpSession.java deleted file mode 100644 index d5c7db03..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpSession.java +++ /dev/null @@ -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 getSession() { - return (T) session; - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEERequestContextHolder.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEERequestContextHolder.java deleted file mode 100644 index a6131d68..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEERequestContextHolder.java +++ /dev/null @@ -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())); - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEResponseExtension.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEResponseExtension.java deleted file mode 100644 index 1e9b4005..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEResponseExtension.java +++ /dev/null @@ -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 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 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 cookies, - @Comment(name = "options", value = "Cookie选项,如`path`、`httpOnly`、`domain`、`maxAge`") Map options) { - if (cookies != null) { - for (Map.Entry entry : cookies.entrySet()) { - addCookie(module, entry.getKey(), entry.getValue(), options); - } - } - return module; - } - - @Override - public Class support() { - return ResponseModule.class; - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEServletConfiguration.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEServletConfiguration.java deleted file mode 100644 index 23468184..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEServletConfiguration.java +++ /dev/null @@ -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 magicWebRequestInterceptorProvider; - - - public MagicJavaEEServletConfiguration(MagicAPIProperties properties, ObjectProvider 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 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 magicCorsFilterRegistrationBean() { - FilterRegistrationBean registration = new FilterRegistrationBean<>(magicCorsFilter); - registration.addUrlPatterns("/*"); - registration.setName("Magic Cors Filter"); - registration.setOrder(Ordered.HIGHEST_PRECEDENCE); - return registration; - } -} diff --git a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEWebRequestInterceptor.java b/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEWebRequestInterceptor.java deleted file mode 100644 index fb9354ce..00000000 --- a/magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEWebRequestInterceptor.java +++ /dev/null @@ -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; - } -} diff --git a/magic-api-servlet/pom.xml b/magic-api-servlet/pom.xml index 5b72d89a..970dd117 100644 --- a/magic-api-servlet/pom.xml +++ b/magic-api-servlet/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-parent - 2.1.1 + 3.0.0 magic-api-servlet pom @@ -14,7 +14,6 @@ auto generate http api magic-api-servlet-jakarta - magic-api-servlet-javaee @@ -22,4 +21,20 @@ magic-api + + + + org.apache.maven.plugins + maven-compiler-plugin + + 17 + 17 + + -parameters + + + + + + diff --git a/magic-editor/pom.xml b/magic-editor/pom.xml index 15a7f018..4af5dfdc 100644 --- a/magic-editor/pom.xml +++ b/magic-editor/pom.xml @@ -6,7 +6,7 @@ org.ssssssss magic-api-parent - 2.1.1 + 3.0.0 magic-editor jar diff --git a/pom.xml b/pom.xml index 7b558e24..6ddf747f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.ssssssss magic-api-parent - 2.1.1 + 3.0.0 pom magic-api-parent auto generate http api @@ -29,7 +29,7 @@ scm:git:https://gitee.com/ssssssss-team/magic-api.git - 2.4.5 + 3.3.0 1.8.8 1.21 2.7 @@ -38,10 +38,11 @@ 6.0.0 1.2.83 1.3.8.RELEASE - 1.8 - 1.8 - 1.8 + 17 + 17 + 17 UTF-8 + true magic-api @@ -133,6 +134,17 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + 17 + 17 + + -parameters + + + @@ -142,10 +154,14 @@ + org.apache.maven.plugins maven-compiler-plugin - 1.8 - 1.8 + 17 + 17 + + -parameters +