File tree Expand file tree Collapse file tree
java/com/generic/server/filter Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2,5 +2,8 @@ FROM eclipse-temurin:21-jre-alpine
22WORKDIR /app
33
44COPY build/libs/generic-server-spring-boot.jar /app/
5+ COPY start.sh /app/
6+ RUN chmod +x /app/start.sh
57EXPOSE 8080
6- ENTRYPOINT ["java" , "-jar" , "generic-server-spring-boot.jar" ]
8+ EXPOSE 9010
9+ ENTRYPOINT ["/app/start.sh" ]
Original file line number Diff line number Diff line change 11plugins {
22 id ' java'
3- id ' org.springframework.boot' version ' 3.5.0-SNAPSHOT '
3+ id ' org.springframework.boot' version ' 3.5.8 '
44 id ' io.spring.dependency-management' version ' 1.1.7'
55}
66
@@ -20,10 +20,11 @@ repositories {
2020}
2121
2222dependencies {
23+ implementation ' org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.14'
2324 implementation ' org.springframework.boot:spring-boot-starter-actuator'
2425 implementation ' org.springframework.boot:spring-boot-starter-web'
25- implementation ' org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.5'
2626 implementation ' org.springframework.boot:spring-boot-starter-validation'
27+ implementation ' io.hawt:hawtio-springboot:4.1.0'
2728 testImplementation ' org.springframework.boot:spring-boot-starter-test'
2829 testRuntimeOnly ' org.junit.platform:junit-platform-launcher'
2930}
@@ -32,6 +33,16 @@ tasks.named('test') {
3233 useJUnitPlatform()
3334}
3435
36+ tasks. named(' bootRun' ) {
37+ jvmArgs = [
38+ ' -Dcom.sun.management.jmxremote' ,
39+ ' -Dcom.sun.management.jmxremote.port=9010' ,
40+ ' -Dcom.sun.management.jmxremote.ssl=false' ,
41+ ' -Dcom.sun.management.jmxremote.authenticate=false' ,
42+ ' -Dcom.sun.management.jmxremote.rmi.port=9010'
43+ ]
44+ }
45+
3546bootJar {
3647 archiveFileName = " ${ rootProject.name} .jar"
3748}
Original file line number Diff line number Diff line change 1+ package com .generic .server .filter ;
2+
3+ import jakarta .servlet .*;
4+ import jakarta .servlet .http .*;
5+ import org .springframework .http .*;
6+ import org .springframework .lang .NonNull ;
7+ import org .springframework .stereotype .Component ;
8+ import org .springframework .web .filter .OncePerRequestFilter ;
9+
10+ import java .io .IOException ;
11+
12+ @ Component
13+ public class RestFilter extends OncePerRequestFilter {
14+ @ Override
15+ protected void doFilterInternal (
16+ HttpServletRequest request ,
17+ @ NonNull HttpServletResponse response ,
18+ @ NonNull FilterChain filterChain ) throws ServletException , IOException {
19+ String requestUri = request .getRequestURI ();
20+ if (requestUri .endsWith ("/" ) && !requestUri .equals ("/" )) {
21+ String newUrl = requestUri .substring (0 , requestUri .length () - 1 );
22+ response .setStatus (HttpStatus .PERMANENT_REDIRECT .value ());
23+ response .setHeader (HttpHeaders .LOCATION , newUrl );
24+ return ;
25+ }
26+ filterChain .doFilter (request , response );
27+ }
28+ }
Original file line number Diff line number Diff line change @@ -3,10 +3,24 @@ spring:
33 name : " generic-server-spring-boot"
44 profiles :
55 active : " local"
6+ jmx :
7+ enabled : true
68
79server :
810 port : 8080
911
1012springdoc :
13+ show-actuator : true
1114 swagger-ui :
12- path : " /swagger-ui/index.html"
15+ path : " /swagger-ui/index.html"
16+
17+ management :
18+ endpoints :
19+ web :
20+ exposure :
21+ include : " *"
22+ path-mapping :
23+ hawtio : console
24+
25+ hawtio :
26+ authenticationEnabled : false
Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+ exec java \
3+ -Dcom.sun.management.jmxremote \
4+ -Dcom.sun.management.jmxremote.port=9010 \
5+ -Dcom.sun.management.jmxremote.ssl=false \
6+ -Dcom.sun.management.jmxremote.authenticate=false \
7+ -Dcom.sun.management.jmxremote.rmi.port=9010 \
8+ -jar generic-server-spring-boot.jar
You can’t perform that action at this time.
0 commit comments