Code: Select all
@Override
public J.MethodInvocation visitMethodInvocation(final J.MethodInvocation method, final ExecutionContext ctx) {
if (method.getSimpleName().equals("permitAll") && isExpressionUrlAuthorizationConfigurer(method.getSelect())) {
final JavaTemplate template = JavaTemplate.builder(
"permitAll().and().anonymous(Customizer.withDefaults()).httpBasic(AbstractHttpConfigurer::disable)")
.imports(
"org.springframework.security.config.Customizer",
"org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer")
.build();
return template.apply(getCursor(), method.getCoordinates().replaceMethod());
}
return super.visitMethodInvocation(method, ctx);
}
Code: Select all
java.lang.IllegalStateException: Expected to find enclosing SourceFile
at org.openrewrite.Cursor.firstEnclosingOrThrow (Cursor.java:178)
at org.openrewrite.Tree.printer (Tree.java:73)
at org.openrewrite.Tree.print(Tree.java:81)
at org.openrewrite.Tree.print(Tree.java:77)
at org.openrewrite.java.internal.template.JavaTemplateParser.parseMethod (JavaTemplateParser.java:187)
Fragen:
- Was mache ich falsch beim Einrichten oder Anwenden des JavaTemplate? ?
- Könnte das ein Fehler sein (z. B. in org.openrewrite.java.JavaTemplate) oder in der Art und Weise, wie J.MethodInvocation erstellt wird (das Gleiche passiert in einem Komponententest und wenn es „echt“ angewendet wird – was darauf hinweist, dass diese Methode hat keine Quelldatei).