Find Spring HTTP authorization rules
io.moderne.prethink.FindSpringHttpAuthorizationRulesio.moderne.recipe:rewrite-prethinkUsage
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.
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.
- RELEASE
- LATEST
- Pinned version
mod config recipes jar install io.moderne.recipe:rewrite-prethink:RELEASE
mod config recipes jar install io.moderne.recipe:rewrite-prethink:LATEST
mod config recipes jar install io.moderne.recipe:rewrite-prethink:0.18.0
Data tables
Spring HTTP authorization configurations
io.moderne.prethink.table.SpringHttpAuthorizationConfigurationsEvery attributed modern HttpSecurity.authorizeHttpRequests root occurrence, including unsupported or dynamic customizers. Lexical source evidence, not effective policy or endpoint coverage.
mod study . --last-recipe-run \
--data-table io.moderne.prethink.table.SpringHttpAuthorizationConfigurations
| Column | Description |
|---|---|
| Source path | Raw original Java source path. |
| Source file ID | Actual opaque SourceFile UUID. Join inventory only with same repository/original input provenance and unique occurrence cardinality; never globally unique. |
| Root ID | Actual original HttpSecurity.authorizeHttpRequests invocation UUID. Duplicate occurrences are retained. |
| Root ordinal | Zero-based lexical method-name token order within this original source occurrence; never runtime precedence. |
| Enclosing class ID | Actual nearest named class declaration or anonymous/enum class body boundary UUID, or null. Never borrowed across a class boundary. |
| Class name | Attributed name of the nearest actual named class declaration, or null. No outer-class fallback. |
| Enclosing method ID | Actual nearest method declaration UUID inside the nearest class boundary, or null for initializers. |
| Method signature | Actual nearest JavaType.Method string inside the nearest class boundary, or null when unavailable. Never inferred. |
| Root method signature | Actual attributed root JavaType.Method string, including overload parameter types. |
| Root source | Exact sanitized original full invocation slice including its receiver/select chain; excludes leading prefix comments/whitespace. |
| Root arguments | JSON lexical argument array excluding J.Empty. Entries: index,id,kind,source,type,startLine,startColumn,endLine,endColumn. Raw evidence only; no evaluation. |
| Start line | One-based full-invocation start line. |
| Start column | One-based UTF16 full-invocation start column; tabs count as one. |
| End line | One-based full-invocation exclusive end line. |
| End column | One-based UTF16 full-invocation exclusive end column. |
| Lexical context | Outer-to-inner JSON structural ancestors {kind,id,branch,conditionSource}. IF conditionSource preserves exact parentheses; otherwise null. Lexical evidence only. |
| Customizer ID | Actual original inline lambda UUID, or null for other argument forms. |
| Customizer state | INLINE_LAMBDA, NO_ARGUMENT, METHOD_REFERENCE, DYNAMIC_EXPRESSION, UNSUPPORTED_ARGUMENTS, or UNATTRIBUTED_CUSTOMIZER. Unknown/unsupported roots remain coverage rows. |
| Root name start line | One-based start line of the actual root method-name token; joins native typed call positions. |
| Root name start column | One-based UTF16 start column of the actual root method-name token. |
Spring HTTP authorization rules
io.moderne.prethink.table.SpringHttpAuthorizationRulesTyped 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.
mod study . --last-recipe-run \
--data-table io.moderne.prethink.table.SpringHttpAuthorizationRules
| Column | Description |
|---|---|
| Source path | Raw original Java source path. |
| Source file ID | Actual opaque SourceFile UUID. Join inventory only with same repository/original input provenance and unique occurrence cardinality; never globally unique. |
| Root ID | Actual lexical enclosing supported root invocation UUID; not physical/effective chain identity. |
| Customizer ID | Actual original inline customizer lambda UUID. |
| Association state | Always LEXICAL_CUSTOMIZER_ONLY. Does not prove receiver binding, registry ownership, execution, or an effective SecurityFilterChain. |
| Enclosing class ID | Actual nearest named class declaration or anonymous/enum class body boundary UUID, or null. Never borrowed across a class boundary. |
| Class name | Attributed name of the nearest actual named class declaration, or null. No outer-class fallback. |
| Enclosing method ID | Actual nearest method declaration UUID inside the nearest class boundary, or null for initializers. |
| Method signature | Actual nearest JavaType.Method string inside the nearest class boundary, or null when unavailable. Never inferred. |
| Matcher ID | Actual original typed matcher invocation UUID. Every occurrence retained. |
| Matcher ordinal | Zero-based lexical matcher method-name token order in this customizer; never runtime rule precedence. |
| Matcher method signature | Actual attributed matcher JavaType.Method string. This increment supports requestMatchers/anyRequest, not every registry builder API. |
| Matcher source | Exact sanitized full matcher invocation source, including receiver/select chain and original formatting. |
| Matcher arguments | JSON lexical raw arguments with index,id,kind,source,type,startLine,startColumn,endLine,endColumn. No constant, Java, SpEL, or ROLE_ evaluation. |
| Matcher start line | One-based full matcher invocation start line. |
| Matcher start column | One-based UTF16 full matcher invocation start column. |
| Matcher end line | One-based full matcher invocation exclusive end line. |
| Matcher end column | One-based UTF16 full matcher invocation exclusive end column. |
| Action ID | Actual immediate selecting invocation UUID, including unsupported/unattributed/intermediate calls; null for NO_DIRECT_ACTION. |
| Action method signature | Actual immediate selecting method JavaType.Method string, or null without attribution/action. |
| Action source | Exact immediate selecting invocation source, or null. A terminal authorization-action claim requires DIRECT_TYPED_ACTION. |
| Action arguments | Raw JSON arguments of the immediate selecting call, or null without action. |
| Action start line | One-based immediate selecting invocation start line, or null. |
| Action start column | One-based UTF16 immediate selecting invocation start column, or null. |
| Action end line | One-based immediate selecting invocation exclusive end line, or null. |
| Action end column | One-based UTF16 immediate selecting invocation exclusive end column, or null. |
| Pairing state | DIRECT_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 context | Outer-to-inner JSON structural ancestors {kind,id,branch,conditionSource}, including root-side control and inline/nested boundaries. Lexical evidence only. |
| Matcher name | Actual attributed matcher invocation simple name. |
| Matcher name start line | One-based actual matcher method-name token start line. |
| Matcher name start column | One-based UTF16 actual matcher method-name token start column. |
| Action name | Actual immediate selecting invocation simple name, or null. A terminal action claim requires DIRECT_TYPED_ACTION. |
| Action name start line | One-based actual immediate selecting method-name token start line, or null. |
| Action name start column | One-based UTF16 actual immediate selecting method-name token start column, or null. |
Source files that had results
org.openrewrite.table.SourcesFileResultsSource files that were modified by the recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileResults
| Column | Description |
|---|---|
| Source path before the run | The source path of the file before the run. null when a source file was created during the run. |
| Source path after the run | A 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 changes | In 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 changes | The specific recipe that made a change. |
| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. |
| Cycle | The recipe cycle in which the change was made. |
Source files that had search results
org.openrewrite.table.SearchResultsSearch results that were found during the recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SearchResults
| Column | Description |
|---|---|
| Source path of search result before the run | The source path of the file with the search result markers present. |
| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run. |
| Result | The trimmed printed tree of the LST element that the marker is attached to. |
| Description | The content of the description of the marker. |
| Recipe that added the search marker | The specific recipe that added the Search marker. |
Source files that errored on a recipe
org.openrewrite.table.SourcesFileErrorsThe details of all errors produced by a recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileErrors
| Column | Description |
|---|---|
| Source path | The file that failed to parse. |
| Recipe that made changes | The specific recipe that made a change. |
| Stack trace | The stack trace of the failure. |
Recipe performance
org.openrewrite.table.RecipeRunStatsStatistics used in analyzing the performance of recipes.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.RecipeRunStats
| Column | Description |
|---|---|
| The recipe | The recipe whose stats are being measured both individually and cumulatively. |
| Source file count | The number of source files the recipe ran over. |
| Source file changed count | The 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. |