You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It's inconsistent that StandardInterceptUrlRegistry refers to AbstractInterceptUrlRegistry through ExpressionUrlAuthorizationConfigurer. Instead, it should refer to it through its own parent class, UrlAuthorizationConfigurer like so:
Without this, some JDK 9+ versions refuse to compile as it creates two distinct H type parameters:
/home/jzheaux/dev/spring-projects/spring-security-5.3.x/config/src/main/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationConfigurer.java:122: error: type argument UrlAuthorizationConfigurer<H#1>.StandardInterceptUrlRegistry is not within bounds of type-variable R
ExpressionUrlAuthorizationConfigurer<H>.AbstractInterceptUrlRegistry<UrlAuthorizationConfigurer<H>.StandardInterceptUrlRegistry, AuthorizedUrl> {
^
where H#1,R,T,C,H#2 are type-variables:
H#1 extends HttpSecurityBuilder<H#1> declared in class UrlAuthorizationConfigurer
R extends AbstractInterceptUrlConfigurer<C,H#2>.AbstractInterceptUrlRegistry<R,T> declared in class AbstractInterceptUrlConfigurer.AbstractInterceptUrlRegistry
T extends Object declared in class AbstractInterceptUrlConfigurer.AbstractInterceptUrlRegistry
C extends AbstractInterceptUrlConfigurer<C,H#2> declared in class AbstractInterceptUrlConfigurer
H#2 extends HttpSecurityBuilder<H#2> declared in class AbstractInterceptUrlConfigurer
/home/jzheaux/dev/spring-projects/spring-security-5.3.x/config/src/main/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationConfigurer.java:122: error: improperly formed type, type arguments given on a raw type
ExpressionUrlAuthorizationConfigurer<H>.AbstractInterceptUrlRegistry<UrlAuthorizationConfigurer<H>.StandardInterceptUrlRegistry, AuthorizedUrl> {
AbstractInterceptUrlRegistry is declared in a shared parent AbstractInterceptUrlConfigurer. That means that changing extends ExpressionUrlAuthorizationConfigurer<H>.AbstractInterceptUrlRegistry to UrlAuthorizationConfigurer<H>.AbstractInterceptUrlRegistry won't change the inheritance graph and should be binary-compatible.
The text was updated successfully, but these errors were encountered:
Current Behavior
StandardInterceptUrlRegistry
is defined inUrlAuthorizationConfigurer
:ExpressionInterceptUrlRegistry
is defined inExpressionUrlAuthorizationConfigurer
The latter is defined as:
Expected Behavior
It's inconsistent that
StandardInterceptUrlRegistry
refers toAbstractInterceptUrlRegistry
throughExpressionUrlAuthorizationConfigurer
. Instead, it should refer to it through its own parent class,UrlAuthorizationConfigurer
like so:Without this, some JDK 9+ versions refuse to compile as it creates two distinct
H
type parameters:AbstractInterceptUrlRegistry
is declared in a shared parentAbstractInterceptUrlConfigurer
. That means that changingextends ExpressionUrlAuthorizationConfigurer<H>.AbstractInterceptUrlRegistry
toUrlAuthorizationConfigurer<H>.AbstractInterceptUrlRegistry
won't change the inheritance graph and should be binary-compatible.The text was updated successfully, but these errors were encountered: