This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch spring6 in repository https://gitbox.apache.org/repos/asf/isis.git
commit a4f6fbbcf98ad0e5956113bc31cabd5fffcdc605 Author: Andi Huber <[email protected]> AuthorDate: Sun Nov 13 10:50:29 2022 +0100 ISIS-3275: migrate security implementations --- security/bypass/src/main/java/module-info.java | 4 +- .../bypass/authentication/AuthenticatorBypass.java | 4 +- .../bypass/authorization/AuthorizorBypass.java | 4 +- .../keycloak/CausewayModuleSecurityKeycloak.java | 40 +++++++------- .../shiro/authentication/AuthenticatorShiro.java | 6 +-- .../shiro/authorization/AuthorizorShiro.java | 4 +- .../security/shiro/webmodule/WebModuleShiro.java | 62 +++++++++------------- security/spring/src/main/java/module-info.java | 5 +- .../spring/CausewayModuleSecuritySpring.java | 6 +-- .../authconverters/AuthenticationConverter.java | 2 +- ...nticationConverterOfAuthenticatedPrincipal.java | 2 +- .../AuthenticationConverterOfStringPrincipal.java | 2 +- ...henticationConverterOfUserDetailsPrincipal.java | 2 +- .../spring/authentication/AuthenticatorSpring.java | 6 +-- .../spring/webmodule/SpringSecurityFilter.java | 14 ++--- .../spring/webmodule/WebModuleSpringSecurity.java | 12 ++--- 16 files changed, 81 insertions(+), 94 deletions(-) diff --git a/security/bypass/src/main/java/module-info.java b/security/bypass/src/main/java/module-info.java index ad7278caf9..1d110c679c 100644 --- a/security/bypass/src/main/java/module-info.java +++ b/security/bypass/src/main/java/module-info.java @@ -24,8 +24,8 @@ module org.apache.causeway.security.bypass { requires org.apache.causeway.applib; requires org.apache.causeway.security.api; requires org.apache.causeway.core.runtimeservices; - requires java.annotation; - requires java.inject; + requires jakarta.annotation; + requires jakarta.inject; requires spring.beans; requires spring.context; } \ No newline at end of file diff --git a/security/bypass/src/main/java/org/apache/causeway/security/bypass/authentication/AuthenticatorBypass.java b/security/bypass/src/main/java/org/apache/causeway/security/bypass/authentication/AuthenticatorBypass.java index e5eef6cbdb..e8256f3b8e 100644 --- a/security/bypass/src/main/java/org/apache/causeway/security/bypass/authentication/AuthenticatorBypass.java +++ b/security/bypass/src/main/java/org/apache/causeway/security/bypass/authentication/AuthenticatorBypass.java @@ -18,7 +18,7 @@ */ package org.apache.causeway.security.bypass.authentication; -import javax.inject.Named; +import jakarta.inject.Named; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -34,7 +34,7 @@ import org.apache.causeway.core.security.authentication.standard.AuthenticatorAb */ @Service @Named("causeway.security.AuthenticatorBypass") [email protected](PriorityPrecedence.LATE) [email protected](PriorityPrecedence.LATE) @Qualifier("Bypass") public class AuthenticatorBypass extends AuthenticatorAbstract { diff --git a/security/bypass/src/main/java/org/apache/causeway/security/bypass/authorization/AuthorizorBypass.java b/security/bypass/src/main/java/org/apache/causeway/security/bypass/authorization/AuthorizorBypass.java index f870300247..712ae37c96 100644 --- a/security/bypass/src/main/java/org/apache/causeway/security/bypass/authorization/AuthorizorBypass.java +++ b/security/bypass/src/main/java/org/apache/causeway/security/bypass/authorization/AuthorizorBypass.java @@ -18,7 +18,7 @@ */ package org.apache.causeway.security.bypass.authorization; -import javax.inject.Named; +import jakarta.inject.Named; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -33,7 +33,7 @@ import org.apache.causeway.core.security.authorization.Authorizor; */ @Service @Named("causeway.security.AuthorizorBypass") [email protected](PriorityPrecedence.LATE) [email protected](PriorityPrecedence.LATE) @Qualifier("Bypass") public class AuthorizorBypass implements Authorizor { diff --git a/security/keycloak/src/main/java/org/apache/causeway/security/keycloak/CausewayModuleSecurityKeycloak.java b/security/keycloak/src/main/java/org/apache/causeway/security/keycloak/CausewayModuleSecurityKeycloak.java index 04e2ee40c0..ee28149955 100644 --- a/security/keycloak/src/main/java/org/apache/causeway/security/keycloak/CausewayModuleSecurityKeycloak.java +++ b/security/keycloak/src/main/java/org/apache/causeway/security/keycloak/CausewayModuleSecurityKeycloak.java @@ -19,7 +19,6 @@ package org.apache.causeway.security.keycloak; import java.util.Collections; -import java.util.List; import java.util.Map; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties; @@ -27,12 +26,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.core.convert.converter.Converter; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper; -import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter; import org.springframework.security.oauth2.core.OAuth2TokenValidator; import org.springframework.security.oauth2.jose.jws.JwsAlgorithms; import org.springframework.security.oauth2.jose.jws.SignatureAlgorithm; @@ -40,20 +35,15 @@ import org.springframework.security.oauth2.jwt.Jwt; import org.springframework.security.oauth2.jwt.JwtValidators; import org.springframework.security.oauth2.jwt.MappedJwtClaimSetConverter; import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; -import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; -import org.springframework.security.web.authentication.logout.LogoutHandler; -import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import org.springframework.util.Assert; import org.apache.causeway.core.config.CausewayConfiguration; import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices; -import org.apache.causeway.core.security.authentication.login.LoginSuccessHandlerUNUSED; import org.apache.causeway.core.webapp.CausewayModuleCoreWebapp; import org.apache.causeway.security.keycloak.handler.LogoutHandlerForKeycloak; import org.apache.causeway.security.keycloak.services.KeycloakOauth2UserService; import org.apache.causeway.security.spring.CausewayModuleSecuritySpring; -import lombok.RequiredArgsConstructor; import lombok.val; /** @@ -77,17 +67,20 @@ import lombok.val; @EnableWebSecurity public class CausewayModuleSecurityKeycloak { - @Bean - public WebSecurityConfigurerAdapter webSecurityConfigurer( - final CausewayConfiguration causewayConfiguration, - final KeycloakOauth2UserService keycloakOidcUserService, - final List<LoginSuccessHandlerUNUSED> loginSuccessHandlersUNUSED, - final List<LogoutHandler> logoutHandlers - ) { - //val realm = causewayConfiguration.getSecurity().getKeycloak().getRealm(); - return new KeycloakWebSecurityConfigurerAdapter(keycloakOidcUserService, logoutHandlers, causewayConfiguration - ); - } + //TODO[ISIS-3275] WebSecurityConfigurerAdapter was removed + // see https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter + +// @Bean +// public WebSecurityConfigurerAdapter webSecurityConfigurer( +// final CausewayConfiguration causewayConfiguration, +// final KeycloakOauth2UserService keycloakOidcUserService, +// final List<LoginSuccessHandlerUNUSED> loginSuccessHandlersUNUSED, +// final List<LogoutHandler> logoutHandlers +// ) { +// //val realm = causewayConfiguration.getSecurity().getKeycloak().getRealm(); +// return new KeycloakWebSecurityConfigurerAdapter(keycloakOidcUserService, logoutHandlers, causewayConfiguration +// ); +// } @Bean @@ -103,6 +96,10 @@ public class CausewayModuleSecurityKeycloak { return new KeycloakOauth2UserService(jwtDecoder, authoritiesMapper, causewayConfiguration); } +/* + //TODO[ISIS-3275] WebSecurityConfigurerAdapter was removed + // see https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter + @RequiredArgsConstructor public static class KeycloakWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { @@ -152,6 +149,7 @@ public class CausewayModuleSecurityKeycloak { .loginPage(loginPage); } } +*/ // -- HELPER diff --git a/security/shiro/src/main/java/org/apache/causeway/security/shiro/authentication/AuthenticatorShiro.java b/security/shiro/src/main/java/org/apache/causeway/security/shiro/authentication/AuthenticatorShiro.java index 94a8ae478e..c54b5774e0 100644 --- a/security/shiro/src/main/java/org/apache/causeway/security/shiro/authentication/AuthenticatorShiro.java +++ b/security/shiro/src/main/java/org/apache/causeway/security/shiro/authentication/AuthenticatorShiro.java @@ -23,8 +23,8 @@ import java.util.Collections; import java.util.Set; import java.util.stream.Stream; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; @@ -72,7 +72,7 @@ import lombok.extern.log4j.Log4j2; */ @Service @Named("causeway.security.AuthenticatorShiro") [email protected](PriorityPrecedence.EARLY) [email protected](PriorityPrecedence.EARLY) @Qualifier("Shiro") @Log4j2 public class AuthenticatorShiro implements Authenticator { diff --git a/security/shiro/src/main/java/org/apache/causeway/security/shiro/authorization/AuthorizorShiro.java b/security/shiro/src/main/java/org/apache/causeway/security/shiro/authorization/AuthorizorShiro.java index eab1f9e024..8a48cf63bc 100644 --- a/security/shiro/src/main/java/org/apache/causeway/security/shiro/authorization/AuthorizorShiro.java +++ b/security/shiro/src/main/java/org/apache/causeway/security/shiro/authorization/AuthorizorShiro.java @@ -18,7 +18,7 @@ */ package org.apache.causeway.security.shiro.authorization; -import javax.inject.Named; +import jakarta.inject.Named; import org.apache.shiro.SecurityUtils; import org.apache.shiro.mgt.RealmSecurityManager; @@ -50,7 +50,7 @@ import lombok.val; */ @Service @Named("causeway.security.AuthorizorShiro") [email protected](PriorityPrecedence.EARLY) [email protected](PriorityPrecedence.EARLY) @Qualifier("Shiro") public class AuthorizorShiro implements Authorizor { diff --git a/security/shiro/src/main/java/org/apache/causeway/security/shiro/webmodule/WebModuleShiro.java b/security/shiro/src/main/java/org/apache/causeway/security/shiro/webmodule/WebModuleShiro.java index 2625562a7c..bfbb86b10e 100644 --- a/security/shiro/src/main/java/org/apache/causeway/security/shiro/webmodule/WebModuleShiro.java +++ b/security/shiro/src/main/java/org/apache/causeway/security/shiro/webmodule/WebModuleShiro.java @@ -18,45 +18,27 @@ */ package org.apache.causeway.security.shiro.webmodule; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.servlet.DispatcherType; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.ServletException; - -import org.apache.shiro.config.Ini; -import org.apache.shiro.realm.Realm; -import org.apache.shiro.web.config.ShiroFilterConfiguration; -import org.apache.shiro.web.env.EnvironmentLoaderListener; -import org.apache.shiro.web.env.IniWebEnvironment; -import org.apache.shiro.web.env.MutableWebEnvironment; -import org.apache.shiro.web.env.WebEnvironment; -import org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver; -import org.apache.shiro.web.servlet.ShiroFilter; +//import org.apache.shiro.web.env.IniWebEnvironment; +//import org.apache.shiro.web.env.WebEnvironment; +//import org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver; +//import org.apache.shiro.web.servlet.ShiroFilter; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; -import org.springframework.util.ReflectionUtils; import org.apache.causeway.applib.annotation.PriorityPrecedence; import org.apache.causeway.applib.services.inject.ServiceInjector; import org.apache.causeway.commons.collections.Can; -import org.apache.causeway.commons.internal._Constants; -import org.apache.causeway.commons.internal.base._Casts; -import org.apache.causeway.commons.internal.base._Strings; import org.apache.causeway.core.webapp.modules.WebModuleAbstract; import org.apache.causeway.core.webapp.modules.WebModuleContext; - +//import org.apache.causeway.security.shiro.webmodule.WebModuleShiro.EnvironmentLoaderListenerForCauseway; +//import org.apache.causeway.security.shiro.webmodule.WebModuleShiro.IniWebEnvironmentUsingSystemProperty; + +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.ServletException; import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.SneakyThrows; -import lombok.val; import lombok.extern.log4j.Log4j2; /** @@ -68,11 +50,12 @@ import lombok.extern.log4j.Log4j2; */ @Service @Named("causeway.security.WebModuleShiro") [email protected](PriorityPrecedence.FIRST + 100) [email protected](PriorityPrecedence.FIRST + 100) @Qualifier("Shiro") @Log4j2 public class WebModuleShiro extends WebModuleAbstract { + //TODO[ISIS-3275] shiro-web no jakarta API support private static final String SHIRO_FILTER_NAME = "ShiroFilter"; @@ -83,6 +66,7 @@ public class WebModuleShiro extends WebModuleAbstract { // -- CONFIGURATION + /* public static void setShiroEnvironmentClass(final Class<? extends WebEnvironment> shiroEnvironmentClass) { if(shiroEnvironmentClass==null) { System.setProperty("shiroEnvironmentClass", null); @@ -120,11 +104,13 @@ public class WebModuleShiro extends WebModuleAbstract { System.setProperty("shiroIniResource", resourcePath); setShiroEnvironmentClass(IniWebEnvironmentUsingSystemProperty.class); } +*/ + - /** + /* * Adds support for dependency injection into security realms * @since 2.0 - */ + * @NoArgsConstructor // don't remove, this is class is managed by Causeway public static class EnvironmentLoaderListenerForCauseway extends EnvironmentLoaderListener { @@ -178,6 +164,7 @@ public class WebModuleShiro extends WebModuleAbstract { } } + */ // -- @@ -186,16 +173,16 @@ public class WebModuleShiro extends WebModuleAbstract { @Override public void prepare(final WebModuleContext ctx) { - super.prepare(ctx); + super.prepare(ctx);/* val customShiroEnvironmentClassName = System.getProperty("shiroEnvironmentClass"); if(_Strings.isEmpty(customShiroEnvironmentClassName)) { setShiroEnvironmentClass(IniWebEnvironmentUsingSystemProperty.class); - } + }*/ } @Override public Can<ServletContextListener> init(final ServletContext ctx) throws ServletException { - +/* registerFilter(ctx, SHIRO_FILTER_NAME, ShiroFilter.class) .ifPresent(filterReg -> { filterReg.addMappingForUrlPatterns( @@ -211,7 +198,8 @@ public class WebModuleShiro extends WebModuleAbstract { val listener = createListener(EnvironmentLoaderListenerForCauseway.class); return Can.ofSingleton(listener); - +*/ + return Can.empty(); } diff --git a/security/spring/src/main/java/module-info.java b/security/spring/src/main/java/module-info.java index 7a6ac485ed..3b4f0477a6 100644 --- a/security/spring/src/main/java/module-info.java +++ b/security/spring/src/main/java/module-info.java @@ -22,8 +22,9 @@ module org.apache.causeway.security.spring { exports org.apache.causeway.security.spring.authentication; exports org.apache.causeway.security.spring.webmodule; - requires java.annotation; - requires java.inject; + requires jakarta.annotation; + requires jakarta.inject; + requires jakarta.servlet; requires lombok; requires org.apache.causeway.applib; requires org.apache.causeway.commons; diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/CausewayModuleSecuritySpring.java b/security/spring/src/main/java/org/apache/causeway/security/spring/CausewayModuleSecuritySpring.java index 737a1ab676..2a0092d543 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/CausewayModuleSecuritySpring.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/CausewayModuleSecuritySpring.java @@ -20,9 +20,9 @@ package org.apache.causeway.security.spring; import java.util.List; -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import javax.servlet.Filter; +import jakarta.annotation.PostConstruct; +import jakarta.inject.Inject; +import jakarta.servlet.Filter; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Configuration; diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverter.java b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverter.java index ef0f25fdcb..f683c5642e 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverter.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverter.java @@ -53,7 +53,7 @@ import lombok.val; * All known converters are checked one by one, but checking stops once one * converter has successively converted the {@link Authentication} into a * {@link UserMemento} (in other words, chain-of-responsibility pattern). - * Use the {@link javax.annotation.Priority} annotation to influence the order + * Use the {@link jakarta.annotation.Priority} annotation to influence the order * in which converter implementations are checked. * </p> * diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfAuthenticatedPrincipal.java b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfAuthenticatedPrincipal.java index 3cdf840a0d..93042180ae 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfAuthenticatedPrincipal.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfAuthenticatedPrincipal.java @@ -31,7 +31,7 @@ import lombok.NonNull; * Applies if {@link Authentication} holds a principal of type {@link AuthenticatedPrincipal}. */ @Component [email protected](PriorityPrecedence.LATE - 100) [email protected](PriorityPrecedence.LATE - 100) public class AuthenticationConverterOfAuthenticatedPrincipal extends AuthenticationConverter.Abstract<AuthenticatedPrincipal> { diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfStringPrincipal.java b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfStringPrincipal.java index da22659d2b..aa9c01cfb9 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfStringPrincipal.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfStringPrincipal.java @@ -30,7 +30,7 @@ import lombok.NonNull; * Applies if {@link Authentication} holds a principal of type {@link String}. */ @Component [email protected](PriorityPrecedence.LATE + 100) [email protected](PriorityPrecedence.LATE + 100) public class AuthenticationConverterOfStringPrincipal extends AuthenticationConverter.Abstract<String> { diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfUserDetailsPrincipal.java b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfUserDetailsPrincipal.java index e8d372a858..5e564ad273 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfUserDetailsPrincipal.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/authconverters/AuthenticationConverterOfUserDetailsPrincipal.java @@ -31,7 +31,7 @@ import lombok.NonNull; * Applies if {@link Authentication} holds a principal of type {@link UserDetails}. */ @Component [email protected](PriorityPrecedence.LATE - 200) [email protected](PriorityPrecedence.LATE - 200) public class AuthenticationConverterOfUserDetailsPrincipal extends AuthenticationConverter.Abstract<UserDetails> { diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/authentication/AuthenticatorSpring.java b/security/spring/src/main/java/org/apache/causeway/security/spring/authentication/AuthenticatorSpring.java index 14b9119278..267b4f5468 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/authentication/AuthenticatorSpring.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/authentication/AuthenticatorSpring.java @@ -18,8 +18,8 @@ */ package org.apache.causeway.security.spring.authentication; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -35,7 +35,7 @@ import org.apache.causeway.core.security.authentication.Authenticator; */ @Service @Named("causeway.security.AuthenticatorSpring") [email protected](PriorityPrecedence.EARLY) [email protected](PriorityPrecedence.EARLY) @Qualifier("Spring") public class AuthenticatorSpring implements Authenticator { diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/SpringSecurityFilter.java b/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/SpringSecurityFilter.java index 51829aa1df..e23d920838 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/SpringSecurityFilter.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/SpringSecurityFilter.java @@ -22,13 +22,13 @@ import java.io.IOException; import java.util.List; import java.util.Optional; -import javax.inject.Inject; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; +import jakarta.inject.Inject; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; diff --git a/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/WebModuleSpringSecurity.java b/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/WebModuleSpringSecurity.java index 94ce481ffb..dfedddc91f 100644 --- a/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/WebModuleSpringSecurity.java +++ b/security/spring/src/main/java/org/apache/causeway/security/spring/webmodule/WebModuleSpringSecurity.java @@ -18,11 +18,11 @@ */ package org.apache.causeway.security.spring.webmodule; -import javax.inject.Inject; -import javax.inject.Named; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextListener; -import javax.servlet.ServletException; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.ServletException; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -41,7 +41,7 @@ import lombok.Getter; */ @Service @Named("causeway.security.WebModuleSpringSecurity") [email protected](PriorityPrecedence.FIRST + 100) [email protected](PriorityPrecedence.FIRST + 100) @Qualifier("Spring") public final class WebModuleSpringSecurity extends WebModuleAbstract {
