From bef47f06bc3ba1e092904d400c2c51dbb8d6cc7b Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 8 Nov 2023 11:14:16 -0500 Subject: [PATCH] AuthorizeHttpRequestReconciler marks more than required --- .../AuthorizeHttpRequestsReconciler.java | 40 +------------------ .../AuthorizeHttpRequestsReconcilerTest.java | 13 +----- 2 files changed, 4 insertions(+), 49 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/AuthorizeHttpRequestsReconciler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/AuthorizeHttpRequestsReconciler.java index 782802a00..a0369ccda 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/AuthorizeHttpRequestsReconciler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/AuthorizeHttpRequestsReconciler.java @@ -17,7 +17,6 @@ import org.eclipse.jdt.core.dom.ASTVisitor; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.dom.ITypeBinding; import org.eclipse.jdt.core.dom.MethodInvocation; -import org.eclipse.jdt.core.dom.SimpleType; import org.openrewrite.java.spring.security5.AuthorizeHttpRequests; import org.springframework.ide.vscode.boot.java.Boot2JavaProblemType; import org.springframework.ide.vscode.commons.Version; @@ -40,9 +39,7 @@ public class AuthorizeHttpRequestsReconciler implements JdtAstReconciler { private static final String AUTHORIZE_REQUESTS_FIX_LABEL = "Replace with 'authorizeHttpRequests(...)' and related types"; - private static final String CLASS_FIX_LABEL_TEMPLATE = "Replace with %s and use 'HttpSecurity.authorizeHttpRequests(...) and related types"; - - private static final String FQN_AUTH_REQ_CONFIG = "org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer"; + private static final String FQN_INTERCEPTOR_URL_CONFIG = "org.springframework.security.config.annotation.web.configurers.AbstractInterceptUrlConfigurer"; private static final String FQN_EXPR_AUTH_CONFIG = "org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer"; @@ -87,44 +84,11 @@ public class AuthorizeHttpRequestsReconciler implements JdtAstReconciler { return true; } - @Override - public boolean visit(SimpleType node) { - String replacementClass = null; - if (ReconcileUtils.isApplicableTypeWithoutResolving(cu, - List.of(FQN_AUTH_REQ_CONFIG, FQN_EXPR_AUTH_CONFIG), node.getName())) { - replacementClass = "AuthorizeHttpRequestsConfigurer"; - } else if (ReconcileUtils.isApplicableTypeWithoutResolving(cu, List.of(FQN_EXPR_INTERCEPT_REG), - node.getName())) { - replacementClass = "AuthorizationManagerRequestMatcherRegistry"; - } - if (replacementClass != null) { - ReconcileProblemImpl problem = new ReconcileProblemImpl(getProblemType(), - "Use of type '" + node.getName().getFullyQualifiedName() + "' is outdated", - node.getName().getStartPosition(), node.getName().getLength()); - String uri = docUri.toASCIIString(); - String id = AuthorizeHttpRequests.class.getName(); - ReconcileUtils - .setRewriteFixes(registry, problem, List.of( - new FixDescriptor(id, List.of(uri), - ReconcileUtils.buildLabel(String.format(CLASS_FIX_LABEL_TEMPLATE, - replacementClass), RecipeScope.FILE)) - .withRecipeScope(RecipeScope.FILE), - new FixDescriptor(id, List.of(uri), - ReconcileUtils.buildLabel( - String.format(CLASS_FIX_LABEL_TEMPLATE, replacementClass), - RecipeScope.PROJECT)) - .withRecipeScope(RecipeScope.PROJECT))); - problemCollector.accept(problem); - return false; - } - return super.visit(node); - } - }); } else { boolean needsFullAst = ReconcileUtils.isAnyTypeUsed(cu, List.of( FQN_HTTP_SECURITY, - FQN_AUTH_REQ_CONFIG, + FQN_INTERCEPTOR_URL_CONFIG, FQN_EXPR_AUTH_CONFIG, FQN_EXPR_INTERCEPT_REG )); diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/reconcilers/test/AuthorizeHttpRequestsReconcilerTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/reconcilers/test/AuthorizeHttpRequestsReconcilerTest.java index 78319b206..b64a2ad98 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/reconcilers/test/AuthorizeHttpRequestsReconcilerTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/reconcilers/test/AuthorizeHttpRequestsReconcilerTest.java @@ -80,7 +80,7 @@ public class AuthorizeHttpRequestsReconcilerTest extends BaseReconcilerTest { String source = """ package example.demo; - import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer; + import org.springframework.security.config.annotation.web.configurers.AbstractInterceptUrlConfigurer; class A { @@ -174,22 +174,13 @@ public class AuthorizeHttpRequestsReconcilerTest extends BaseReconcilerTest { """; List problems = reconcile("A.java", source, true); - assertEquals(2, problems.size()); + assertEquals(1, problems.size()); ReconcileProblem problem = problems.get(0); assertEquals(Boot2JavaProblemType.HTTP_SECURITY_AUTHORIZE_HTTP_REQUESTS, problem.getType()); String markedStr = source.substring(problem.getOffset(), problem.getOffset() + problem.getLength()); - assertEquals("ExpressionUrlAuthorizationConfigurer", markedStr); - - assertEquals(2, problem.getQuickfixes().size()); - - problem = problems.get(1); - - assertEquals(Boot2JavaProblemType.HTTP_SECURITY_AUTHORIZE_HTTP_REQUESTS, problem.getType()); - - markedStr = source.substring(problem.getOffset(), problem.getOffset() + problem.getLength()); assertEquals("authorizeRequests", markedStr); assertEquals(2, problem.getQuickfixes().size());