Browse Source

Use final values in equals and hashCode

Closes gh-17584

Signed-off-by: Tim Boeckstaens <boeckstaenstim@gmail.com>
Tim Boeckstaens 1 tháng trước cách đây
mục cha
commit
f180a04b74

+ 5 - 11
web/src/main/java/org/springframework/security/web/servlet/util/matcher/PathPatternRequestMatcher.java

@@ -55,7 +55,7 @@ public final class PathPatternRequestMatcher implements RequestMatcher {
 
 	private final PathPattern pattern;
 
-	private RequestMatcher method = AnyRequestMatcher.INSTANCE;
+	private final RequestMatcher method;
 
 	/**
 	 * Creates a {@link PathPatternRequestMatcher} that uses the provided {@code pattern}.
@@ -64,8 +64,9 @@ public final class PathPatternRequestMatcher implements RequestMatcher {
 	 * </p>
 	 * @param pattern the pattern used to match
 	 */
-	private PathPatternRequestMatcher(PathPattern pattern) {
+	private PathPatternRequestMatcher(PathPattern pattern, RequestMatcher method) {
 		this.pattern = pattern;
+		this.method = method;
 	}
 
 	/**
@@ -108,10 +109,6 @@ public final class PathPatternRequestMatcher implements RequestMatcher {
 		return (info != null) ? MatchResult.match(info.getUriVariables()) : MatchResult.notMatch();
 	}
 
-	void setMethod(RequestMatcher method) {
-		this.method = method;
-	}
-
 	private PathContainer getPathContainer(HttpServletRequest request) {
 		RequestPath path;
 		if (ServletRequestPathUtils.hasParsedRequestPath(request)) {
@@ -286,11 +283,8 @@ public final class PathPatternRequestMatcher implements RequestMatcher {
 			Assert.notNull(path, "pattern cannot be null");
 			Assert.isTrue(path.startsWith("/"), "pattern must start with a /");
 			PathPattern pathPattern = this.parser.parse(this.basePath + path);
-			PathPatternRequestMatcher requestMatcher = new PathPatternRequestMatcher(pathPattern);
-			if (method != null) {
-				requestMatcher.setMethod(new HttpMethodRequestMatcher(method));
-			}
-			return requestMatcher;
+			return new PathPatternRequestMatcher(pathPattern,
+					(method != null) ? new HttpMethodRequestMatcher(method) : AnyRequestMatcher.INSTANCE);
 		}
 
 	}