class AspnetAuthTagger

Defined in:

tagger/framework_taggers/csharp/aspnet_auth.cr

Constant Summary

ACTION_AUTH_PATTERNS = [{/User\.Identity\.IsAuthenticated/, "ASP.NET User.Identity.IsAuthenticated"}, {/User\.IsInRole\s*\(/, "ASP.NET User.IsInRole check"}, {/HttpContext\.User/, "ASP.NET HttpContext.User check"}]

ASP.NET Core middleware auth in action body

ALLOW_ANONYMOUS_PATTERN = /\[AllowAnonymous\]/

Public override markers

AUTHORIZE_PATTERNS = [{/\[Authorize\]/, "ASP.NET [Authorize]"}, {/\[Authorize\s*\(\s*Roles\s*=/, "ASP.NET [Authorize(Roles)]"}, {/\[Authorize\s*\(\s*Policy\s*=/, "ASP.NET [Authorize(Policy)]"}, {/\[Authorize\s*\(\s*AuthenticationSchemes\s*=/, "ASP.NET [Authorize(AuthenticationSchemes)]"}]

ASP.NET [Authorize] attribute patterns

MINIMAL_API_ALLOW_ANON = /\.AllowAnonymous\s*\(/
MINIMAL_API_REQUIRE_AUTH = /\.RequireAuthorization\s*\(/

Minimal API fluent auth: app.MapGet("/x", h).RequireAuthorization();. This is a chained method call, never a [...] attribute, so it can't live in AUTHORIZE_PATTERNS (which is scanned in attribute position).

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class FrameworkTagger

collect_files_by_extension(extension : String) : Array(String) collect_files_by_extension, read_file(path : String) : String | Nil read_file, read_source_context(endpoint : Endpoint) : Array(SourceContext) read_source_context, static_asset_route?(url : String) : Bool static_asset_route?

Constructor methods inherited from class FrameworkTagger

new(options : Hash(String, YAML::Any)) new

Class methods inherited from class FrameworkTagger

target_techs : Array(String) target_techs

Instance methods inherited from module FileHelper

all_files : Array(String) all_files, get_files_by_extension(extension : String) : Array(String) get_files_by_extension, get_files_by_prefix(prefix : String) : Array(String) get_files_by_prefix, get_files_by_prefix_and_extension(prefix : String, extension : String) : Array(String) get_files_by_prefix_and_extension, get_public_dir_files(base_path : String, folder : String) : Array(String) get_public_dir_files, get_public_files(base_path : String, anchors : Array(String) = ["shard.yml", "Gemfile"]) : Array(String) get_public_files

Instance methods inherited from class Tagger

name : String name, perform(endpoints : Array(Endpoint)) : Array(Endpoint) perform

Constructor methods inherited from class Tagger

new(options : Hash(String, YAML::Any)) new

Constructor Detail

def self.new(options : Hash(String, YAML::Any)) #

[View source]

Class Method Detail

def self.target_techs : Array(String) #

[View source]

Instance Method Detail

def perform(endpoints : Array(Endpoint)) : Array(Endpoint) #

[View source]