mirror of
https://github.com/spring-projects/spring-security.git
synced 2026-02-09 06:54:36 +00:00
- Require package-info.java with @NullMarked in every package - Suppress package checks for tests and modules that haven't been worked on - Prevent non org.jspecify Nullability imports on enabled modules - Validate Nullable is before modifiers Closes gh-18564
79 lines
5.2 KiB
XML
79 lines
5.2 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE module PUBLIC
|
|
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
|
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
|
<module name="com.puppycrawl.tools.checkstyle.Checker">
|
|
<module name="SuppressionFilter">
|
|
<property name="file"
|
|
value="${config_loc}/checkstyle-suppressions.xml" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.header.RegexpHeaderCheck">
|
|
<property name="headerFile" value="${config_loc}/header.txt" />
|
|
<property name="fileExtensions" value="java" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck" /><!-- Require package-info.java -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpMultilineCheck">
|
|
<property name="id" value="requireNullMarkedInPackageInfo"/>
|
|
<property name="format" value="@NullMarked\s+package"/>
|
|
<property name="minimum" value="1"/>
|
|
<property name="maximum" value="1"/>
|
|
<property name="message" value="package-info.java must include @NullMarked annotation before the package declaration"/>
|
|
<property name="fileExtensions" value="java"/>
|
|
</module>
|
|
<module name="io.spring.javaformat.checkstyle.SpringChecks">
|
|
<property name="excludes" value="io.spring.javaformat.checkstyle.check.SpringHeaderCheck" />
|
|
<property name="excludes" value="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.test.web.servlet.response.SecurityMockMvcResultHandlers.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.config.annotation.SecurityContextChangedListenerArgumentMatchers.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.web.csrf.CsrfTokenAssert.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.web.servlet.TestMockHttpServletRequests.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.security.web.util.matcher.RegexRequestMatcher.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.springframework.core.annotation.MergedAnnotations.SearchStrategy.*" />
|
|
<property name="avoidStaticImportExcludes" value="org.assertj.core.api.InstanceOfAssertFactories.*"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.TreeWalker">
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="maximum" value="0"/>
|
|
<property name="format" value="org\.assertj\.core\.api\.Assertions\.(catchThrowable|catchThrowableOfType|assertThatThrownBy|assertThatCode)" />
|
|
<property name="message" value="Please use assertThatExceptionOfType." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="toLowerCaseWithoutLocale"/>
|
|
<property name="format" value="\.toLowerCase\(\)"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="message"
|
|
value="String.toLowerCase() should be String.toLowerCase(Locale.ROOT) or String.toLowerCase(Locale.ENGLISH)"/>
|
|
<property name="ignoreComments" value="true"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="toUpperCaseWithoutLocale"/>
|
|
<property name="format" value="\.toUpperCase\(\)"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="message"
|
|
value="String.toUpperCase() should be String.toUpperCase(Locale.ROOT) or String.toUpperCase(Locale.ENGLISH)"/>
|
|
<property name="ignoreComments" value="true"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedImports"/>
|
|
<property name="regexp" value="true"/>
|
|
<property name="illegalPkgs" value="org.jetbrains.annotations, reactor.util.annotation, javax.annotation"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedNullabilityImports"/>
|
|
<property name="regexp" value="true"/>
|
|
<!-- Rejects all NonNull, Nonnull, and Nullable types that are NOT in the org.jspecify.annotations package. -->
|
|
<property name="illegalClasses" value="^(?!org\.jspecify\.annotations).*(Non[Nn]ull|Nullable)$"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="nullableAfterModifiers"/>
|
|
<property name="format" value="^\s*(public|protected|private|static|final|synchronized|native|strictfp|abstract)\s+@Nullable\s+(public|protected|private|static|final|synchronized|native|strictfp|abstract)\s"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="message" value="@Nullable must appear immediately before the type, after all other modifiers (e.g., 'private final @Nullable Object' not 'private @Nullable final Object')"/>
|
|
<property name="ignoreComments" value="true"/>
|
|
</module>
|
|
</module>
|
|
</module>
|