Skip to content

Commit 25af44d

Browse files
committed
refactor: 优化mvc支持
1 parent 4dda9eb commit 25af44d

File tree

4 files changed

+40
-12
lines changed

4 files changed

+40
-12
lines changed

hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserTokenHolder.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33

44
import org.hswebframework.web.context.ContextHolder;
5-
import org.hswebframework.web.context.ContextUtils;
5+
import reactor.util.context.Context;
6+
7+
import java.io.Closeable;
68

79
/**
810
* @author zhouhao
@@ -13,12 +15,13 @@ private UserTokenHolder() {
1315
}
1416

1517
public static UserToken currentToken() {
16-
return ContextHolder.current().getOrDefault(UserToken.class,null);
18+
return ContextHolder
19+
.current()
20+
.getOrDefault(UserToken.class, null);
1721
}
1822

19-
public static UserToken setCurrent(UserToken token) {
20-
ContextUtils.currentContext().put(UserToken.class, token);
21-
return token;
23+
public static Closeable makeCurrent(UserToken token) {
24+
return ContextHolder.makeCurrent(Context.of(UserToken.class,token));
2225
}
2326

2427
}

hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/WebUserTokenInterceptor.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import jakarta.servlet.http.HttpServletResponse;
1313
import org.springframework.web.servlet.HandlerInterceptor;
1414

15+
import javax.annotation.Nonnull;
16+
import java.io.Closeable;
1517
import java.util.List;
1618
import java.util.Objects;
1719
import java.util.stream.Collectors;
@@ -23,6 +25,8 @@
2325
*/
2426
public class WebUserTokenInterceptor implements HandlerInterceptor {
2527

28+
static final String TOKEN_ATTR = WebUserTokenInterceptor.class.getName() + ".token";
29+
2630
private final UserTokenManager userTokenManager;
2731

2832
private final List<UserTokenParser> userTokenParser;
@@ -84,14 +88,22 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
8488
}
8589
if (null != userToken) {
8690
userTokenManager.touch(token).subscribe();
87-
UserTokenHolder.setCurrent(userToken);
91+
request.setAttribute(
92+
TOKEN_ATTR, UserTokenHolder.makeCurrent(userToken)
93+
);
8894
}
8995
}
9096
return true;
9197
}
9298

9399
@Override
94-
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
95-
UserTokenHolder.setCurrent(null);
100+
public void afterCompletion(HttpServletRequest request,
101+
@Nonnull HttpServletResponse response,
102+
@Nonnull Object handler,
103+
Exception ex) throws Exception {
104+
Object closable = request.getAttribute(TOKEN_ATTR);
105+
if (closable instanceof Closeable c) {
106+
c.close();
107+
}
96108
}
97109
}

hsweb-core/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
<description>核心包</description>
1616

1717
<dependencies>
18+
19+
<dependency>
20+
<groupId>com.github.spotbugs</groupId>
21+
<artifactId>spotbugs-annotations</artifactId>
22+
<version>4.9.3</version>
23+
</dependency>
24+
1825
<dependency>
1926
<groupId>org.javassist</groupId>
2027
<artifactId>javassist</artifactId>

pom.xml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@
8080
<java.module.version>17</java.module.version>
8181
<project.build.jdk>${java.version}</project.build.jdk>
8282

83-
<spring.boot.version>3.4.0</spring.boot.version>
83+
<spring.boot.version>3.4.8</spring.boot.version>
8484

85-
<javassist.version>3.30.1-GA</javassist.version>
85+
<javassist.version>3.30.2-GA</javassist.version>
8686

8787
<fastjson.version>1.2.83</fastjson.version>
8888
<h2.version>2.3.232</h2.version>
@@ -421,7 +421,7 @@
421421
<dependency>
422422
<groupId>com.google.guava</groupId>
423423
<artifactId>guava</artifactId>
424-
<version>32.0.0-jre</version>
424+
<version>33.4.8-jre</version>
425425
</dependency>
426426

427427
<dependency>
@@ -489,7 +489,13 @@
489489
<dependency>
490490
<groupId>org.apache.commons</groupId>
491491
<artifactId>commons-collections4</artifactId>
492-
<version>4.4</version>
492+
<version>4.5.0</version>
493+
</dependency>
494+
495+
<dependency>
496+
<groupId>org.apache.commons</groupId>
497+
<artifactId>commons-lang3</artifactId>
498+
<version>3.18.0</version>
493499
</dependency>
494500

495501
<dependency>

0 commit comments

Comments
 (0)