Skip to main content
Moderne OnlyThis recipe is proprietary to Moderne and runs on the Moderne platform or CLI — it isn’t part of the open-source catalog. Available with a Moderne subscription.Contact Sales

Find Spring HTTP authorization rules

Recipe IDio.moderne.prethink.FindSpringHttpAuthorizationRules
Artifactio.moderne.recipe:rewrite-prethink

Report typed modern HttpSecurity.authorizeHttpRequests roots and requestMatchers/anyRequest occurrences in inline customizers, preserving raw arguments, original identities, exact source positions, unsupported states and lexical context. Pairs only immediate typed fluent select edges. Does not infer receiver ownership, effective permissions, runtime precedence or endpoint coverage.

Single recipeOpenRewriteModerne Proprietary License
Try in PlatformTry this recipe in the Moderne platform. Not a user yet? You’ll get a no-setup demo environment, with nothing to install or configure.

Usage​

Run this recipe

This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI.

You will need to have configured the Moderne CLI on your machine before you can run the following command.

shell
mod run . --recipe FindSpringHttpAuthorizationRules

If the recipe is not available locally, then you can install it using:

RELEASE resolves to the newest release and LATEST to the newest build of any kind, including snapshots. Either one lets mod config recipes upgrade pull in later versions without editing this command; a pinned version stays where you put it.

mod config recipes jar install io.moderne.recipe:rewrite-prethink:RELEASE

Data tables​

Spring HTTP authorization configurations
io.moderne.prethink.table.SpringHttpAuthorizationConfigurations

Every attributed modern HttpSecurity.authorizeHttpRequests root occurrence, including unsupported or dynamic customizers. Lexical source evidence, not effective policy or endpoint coverage.

Export after a run
mod study . --last-recipe-run \
--data-table io.moderne.prethink.table.SpringHttpAuthorizationConfigurations
ColumnDescription
Source pathRaw original Java source path.
Source file IDActual opaque SourceFile UUID. Join inventory only with same repository/original input provenance and unique occurrence cardinality; never globally unique.
Root IDActual original HttpSecurity.authorizeHttpRequests invocation UUID. Duplicate occurrences are retained.
Root ordinalZero-based lexical method-name token order within this original source occurrence; never runtime precedence.
Enclosing class IDActual nearest named class declaration or anonymous/enum class body boundary UUID, or null. Never borrowed across a class boundary.
Class nameAttributed name of the nearest actual named class declaration, or null. No outer-class fallback.
Enclosing method IDActual nearest method declaration UUID inside the nearest class boundary, or null for initializers.
Method signatureActual nearest JavaType.Method string inside the nearest class boundary, or null when unavailable. Never inferred.
Root method signatureActual attributed root JavaType.Method string, including overload parameter types.
Root sourceExact sanitized original full invocation slice including its receiver/select chain; excludes leading prefix comments/whitespace.
Root argumentsJSON lexical argument array excluding J.Empty. Entries: index,id,kind,source,type,startLine,startColumn,endLine,endColumn. Raw evidence only; no evaluation.
Start lineOne-based full-invocation start line.
Start columnOne-based UTF16 full-invocation start column; tabs count as one.
End lineOne-based full-invocation exclusive end line.
End columnOne-based UTF16 full-invocation exclusive end column.
Lexical contextOuter-to-inner JSON structural ancestors {kind,id,branch,conditionSource}. IF conditionSource preserves exact parentheses; otherwise null. Lexical evidence only.
Customizer IDActual original inline lambda UUID, or null for other argument forms.
Customizer stateINLINE_LAMBDA, NO_ARGUMENT, METHOD_REFERENCE, DYNAMIC_EXPRESSION, UNSUPPORTED_ARGUMENTS, or UNATTRIBUTED_CUSTOMIZER. Unknown/unsupported roots remain coverage rows.
Root name start lineOne-based start line of the actual root method-name token; joins native typed call positions.
Root name start columnOne-based UTF16 start column of the actual root method-name token.
Spring HTTP authorization rules
io.moderne.prethink.table.SpringHttpAuthorizationRules

Typed requestMatchers/anyRequest occurrences lexically inside supported modern inline customizers, with only immediate typed select-edge action proof. No ownership, runtime permissions, exposure, or coverage inference.

Export after a run
mod study . --last-recipe-run \
--data-table io.moderne.prethink.table.SpringHttpAuthorizationRules
ColumnDescription
Source pathRaw original Java source path.
Source file IDActual opaque SourceFile UUID. Join inventory only with same repository/original input provenance and unique occurrence cardinality; never globally unique.
Root IDActual lexical enclosing supported root invocation UUID; not physical/effective chain identity.
Customizer IDActual original inline customizer lambda UUID.
Association stateAlways LEXICAL_CUSTOMIZER_ONLY. Does not prove receiver binding, registry ownership, execution, or an effective SecurityFilterChain.
Enclosing class IDActual nearest named class declaration or anonymous/enum class body boundary UUID, or null. Never borrowed across a class boundary.
Class nameAttributed name of the nearest actual named class declaration, or null. No outer-class fallback.
Enclosing method IDActual nearest method declaration UUID inside the nearest class boundary, or null for initializers.
Method signatureActual nearest JavaType.Method string inside the nearest class boundary, or null when unavailable. Never inferred.
Matcher IDActual original typed matcher invocation UUID. Every occurrence retained.
Matcher ordinalZero-based lexical matcher method-name token order in this customizer; never runtime rule precedence.
Matcher method signatureActual attributed matcher JavaType.Method string. This increment supports requestMatchers/anyRequest, not every registry builder API.
Matcher sourceExact sanitized full matcher invocation source, including receiver/select chain and original formatting.
Matcher argumentsJSON lexical raw arguments with index,id,kind,source,type,startLine,startColumn,endLine,endColumn. No constant, Java, SpEL, or ROLE_ evaluation.
Matcher start lineOne-based full matcher invocation start line.
Matcher start columnOne-based UTF16 full matcher invocation start column.
Matcher end lineOne-based full matcher invocation exclusive end line.
Matcher end columnOne-based UTF16 full matcher invocation exclusive end column.
Action IDActual immediate selecting invocation UUID, including unsupported/unattributed/intermediate calls; null for NO_DIRECT_ACTION.
Action method signatureActual immediate selecting method JavaType.Method string, or null without attribution/action.
Action sourceExact immediate selecting invocation source, or null. A terminal authorization-action claim requires DIRECT_TYPED_ACTION.
Action argumentsRaw JSON arguments of the immediate selecting call, or null without action.
Action start lineOne-based immediate selecting invocation start line, or null.
Action start columnOne-based UTF16 immediate selecting invocation start column, or null.
Action end lineOne-based immediate selecting invocation exclusive end line, or null.
Action end columnOne-based UTF16 immediate selecting invocation exclusive end column, or null.
Pairing stateDIRECT_TYPED_ACTION, INTERMEDIATE_NEGATION, UNATTRIBUTED_SELECT_CALL, UNSUPPORTED_SELECT_CALL, or NO_DIRECT_ACTION. not() is intermediate and is never a terminal decision; no later-chain search.
Lexical contextOuter-to-inner JSON structural ancestors {kind,id,branch,conditionSource}, including root-side control and inline/nested boundaries. Lexical evidence only.
Matcher nameActual attributed matcher invocation simple name.
Matcher name start lineOne-based actual matcher method-name token start line.
Matcher name start columnOne-based UTF16 actual matcher method-name token start column.
Action nameActual immediate selecting invocation simple name, or null. A terminal action claim requires DIRECT_TYPED_ACTION.
Action name start lineOne-based actual immediate selecting method-name token start line, or null.
Action name start columnOne-based UTF16 actual immediate selecting method-name token start column, or null.
Source files that had results
org.openrewrite.table.SourcesFileResults

Source files that were modified by the recipe run.

Export after a run
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileResults
ColumnDescription
Source path before the runThe source path of the file before the run. null when a source file was created during the run.
Source path after the runA recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run.
Parent of the recipe that made changesIn a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all.
Recipe that made changesThe specific recipe that made a change.
Estimated time savingAn estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds.
CycleThe recipe cycle in which the change was made.
Source files that had search results
org.openrewrite.table.SearchResults

Search results that were found during the recipe run.

Export after a run
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SearchResults
ColumnDescription
Source path of search result before the runThe source path of the file with the search result markers present.
Source path of search result after run the runA recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run.
ResultThe trimmed printed tree of the LST element that the marker is attached to.
DescriptionThe content of the description of the marker.
Recipe that added the search markerThe specific recipe that added the Search marker.
Source files that errored on a recipe
org.openrewrite.table.SourcesFileErrors

The details of all errors produced by a recipe run.

Export after a run
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileErrors
ColumnDescription
Source pathThe file that failed to parse.
Recipe that made changesThe specific recipe that made a change.
Stack traceThe stack trace of the failure.
Recipe performance
org.openrewrite.table.RecipeRunStats

Statistics used in analyzing the performance of recipes.

Export after a run
mod study . --last-recipe-run \
--data-table org.openrewrite.table.RecipeRunStats
ColumnDescription
The recipeThe recipe whose stats are being measured both individually and cumulatively.
Source file countThe number of source files the recipe ran over.
Source file changed countThe number of source files which were changed in the recipe run. Includes files created, deleted, and edited.
Cumulative scanning time (ns)The total time spent across the scanning phase of this recipe.
Max scanning time (ns)The max time scanning any one source file.
Cumulative edit time (ns)The total time spent across the editing phase of this recipe.
Max edit time (ns)The max time editing any one source file.