From 9e08b51ed351421907ad0131c68ef2e193b96828 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Sun, 26 Jul 2020 12:04:13 -0700 Subject: [PATCH] Apply code cleanup rules to projects Apply automated cleanup rules to add `@Override` and `@Deprecated` annotations and to fix class references used with static methods. Issue gh-8945 --- .../security/acls/AclEntryVoter.java | 2 + .../acls/AclPermissionCacheOptimizer.java | 1 + .../security/acls/AclPermissionEvaluator.java | 2 + .../afterinvocation/AbstractAclProvider.java | 2 + ...InvocationCollectionFilteringProvider.java | 1 + .../AclEntryAfterInvocationProvider.java | 2 + .../acls/afterinvocation/ArrayFilterer.java | 6 ++ .../afterinvocation/CollectionFilterer.java | 3 + .../acls/afterinvocation/Filterer.java | 1 + .../acls/domain/AbstractPermission.java | 5 ++ .../domain/AclAuthorizationStrategyImpl.java | 1 + .../acls/domain/ConsoleAuditLogger.java | 1 + .../acls/domain/CumulativePermission.java | 1 + .../acls/domain/DefaultPermissionFactory.java | 3 + .../DefaultPermissionGrantingStrategy.java | 1 + .../acls/domain/EhCacheBasedAclCache.java | 6 ++ .../ObjectIdentityRetrievalStrategyImpl.java | 2 + .../acls/domain/SidRetrievalStrategyImpl.java | 1 + .../acls/domain/SpringCacheBasedAclCache.java | 6 ++ .../acls/jdbc/BasicLookupStrategy.java | 9 +++ .../security/acls/jdbc/JdbcAclService.java | 5 ++ .../acls/jdbc/JdbcMutableAclService.java | 5 ++ .../security/acls/model/ObjectIdentity.java | 2 + .../security/acls/model/OwnershipAcl.java | 1 + .../security/acls/model/Sid.java | 2 + .../security/acls/domain/AclImplTests.java | 8 +++ ...icLookupStrategyWithAclClassTypeTests.java | 1 + .../acls/jdbc/JdbcMutableAclServiceTests.java | 6 +- .../aspect/AnnotationSecurityAspectTests.java | 3 + .../security/cas/ServiceProperties.java | 1 + .../CasAssertionAuthenticationToken.java | 2 + .../EhCacheBasedTicketCache.java | 5 ++ .../NullStatelessTicketCache.java | 4 ++ .../SpringCacheBasedTicketCache.java | 4 ++ ...bstractCasAssertionUserDetailsService.java | 1 + .../cas/web/CasAuthenticationEntryPoint.java | 2 + .../cas/web/CasAuthenticationFilter.java | 2 + .../DefaultServiceAuthenticationDetails.java | 1 + .../ServiceAuthenticationDetailsSource.java | 1 + .../CasAuthenticationProviderTests.java | 6 ++ ...onProviderBuilderSecurityBuilderTests.java | 8 +++ ...AuthenticationProviderConfigurerTests.java | 3 + ...dapAuthenticationProviderTestsConfigs.java | 4 ++ .../config/DebugBeanDefinitionParser.java | 1 + .../config/SecurityNamespaceHandler.java | 3 + .../annotation/AbstractSecurityBuilder.java | 1 + .../annotation/SecurityConfigurerAdapter.java | 3 + .../AuthenticationManagerBuilder.java | 1 + ...GlobalAuthenticationConfigurerAdapter.java | 2 + .../AbstractDaoAuthenticationConfigurer.java | 1 + ...utowireBeanFactoryObjectPostProcessor.java | 2 + ...thodSecurityAspectJAutoProxyRegistrar.java | 1 + .../GlobalMethodSecurityConfiguration.java | 2 + .../GlobalMethodSecuritySelector.java | 1 + ...ecurityMetadataSourceAdvisorRegistrar.java | 1 + .../rsocket/PayloadInterceptorOrder.java | 1 + .../web/builders/FilterComparator.java | 1 + .../annotation/web/builders/HttpSecurity.java | 8 +++ .../SpringWebMvcImportSelector.java | 1 + .../WebSecurityConfiguration.java | 2 + .../WebSecurityConfigurerAdapter.java | 5 ++ ...ConfigAttributeRequestMatcherRegistry.java | 1 + .../web/configurers/PermitAllSupport.java | 1 + .../UrlAuthorizationConfigurer.java | 1 + .../openid/OpenIDLoginConfigurer.java | 1 + ...MessageSecurityMetadataSourceRegistry.java | 9 +++ .../WebMvcSecurityConfiguration.java | 1 + ...urityWebSocketMessageBrokerConfigurer.java | 2 + ...serDetailsServiceBeanDefinitionParser.java | 1 + ...enticationManagerBeanDefinitionParser.java | 3 + .../AuthenticationManagerFactoryBean.java | 4 ++ ...nticationProviderBeanDefinitionParser.java | 1 + .../JdbcUserServiceBeanDefinitionParser.java | 2 + .../UserServiceBeanDefinitionParser.java | 2 + ...SecurityDebugBeanFactoryPostProcessor.java | 2 + .../http/AuthenticationConfigBuilder.java | 1 + .../http/DefaultFilterChainValidator.java | 1 + .../http/FilterChainBeanDefinitionParser.java | 1 + ...FilterChainMapBeanDefinitionDecorator.java | 1 + ...nvocationSecurityMetadataSourceParser.java | 2 + ...HandlerMappingIntrospectorFactoryBean.java | 1 + .../http/HeadersBeanDefinitionParser.java | 1 + .../config/http/HttpConfigurationBuilder.java | 2 + .../HttpFirewallBeanDefinitionParser.java | 1 + .../http/LogoutBeanDefinitionParser.java | 1 + .../PortMappingsBeanDefinitionParser.java | 1 + .../http/RememberMeBeanDefinitionParser.java | 1 + .../http/UserDetailsServiceFactoryBean.java | 1 + .../ContextSourceSettingPostProcessor.java | 2 + .../LdapProviderBeanDefinitionParser.java | 1 + .../ldap/LdapServerBeanDefinitionParser.java | 1 + .../LdapUserServiceBeanDefinitionParser.java | 2 + ...balMethodSecurityBeanDefinitionParser.java | 5 ++ ...terceptMethodsBeanDefinitionDecorator.java | 5 +- ...ityMetadataSourceBeanDefinitionParser.java | 1 + .../method/ProtectPointcutPostProcessor.java | 2 + ...ageBrokerSecurityBeanDefinitionParser.java | 10 +++ .../BeanNameCollectingPostProcessor.java | 2 + .../security/CollectingAppListener.java | 1 + .../security/config/DataSourcePopulator.java | 1 + .../config/MockAfterInvocationProvider.java | 3 + .../security/config/MockEventListener.java | 1 + .../config/MockTransactionManager.java | 3 + .../MockUserServiceBeanPostProcessor.java | 2 + .../PostProcessedMockUserDetailsService.java | 1 + .../security/config/TestBusinessBeanImpl.java | 6 ++ .../config/TransactionalTestBusinessBean.java | 5 ++ .../annotation/ObjectPostProcessorTests.java | 1 + ...SecurityConfigurerAdapterClosureTests.java | 2 +- .../SecurityConfigurerAdapterTests.java | 2 + .../AuthenticationManagerBuilderTests.java | 2 + .../NamespaceAuthenticationProviderTests.java | 3 + .../NamespaceJdbcUserServiceTests.java | 6 +- .../PasswordEncoderConfigurerTests.java | 2 + .../AuthenticationConfigurationTests.java | 6 ++ .../AroundMethodInterceptor.java | 1 + .../annotation/issue50/SecurityConfig.java | 2 + ...lMethodSecurityExpressionHandlerTests.java | 2 + .../NamespaceGlobalMethodSecurityTests.java | 8 +++ ...SampleEnableGlobalMethodSecurityTests.java | 2 + .../annotation/sec2758/Sec2758Tests.java | 3 +- ...bstractConfiguredSecurityBuilderTests.java | 1 + ...RequestMatcherRegistryAnyMatcherTests.java | 5 ++ ...mpleWebSecurityConfigurerAdapterTests.java | 1 + .../web/builders/HttpConfigurationTests.java | 3 + .../web/builders/NamespaceHttpTests.java | 1 + .../web/configuration/Sec2515Tests.java | 1 + ...gAttributeRequestMatcherRegistryTests.java | 3 + .../configurers/AnonymousConfigurerTests.java | 2 + .../web/configurers/DefaultFiltersTests.java | 2 + ...essionUrlAuthorizationConfigurerTests.java | 2 + .../configurers/HttpBasicConfigurerTests.java | 1 + .../HttpSecurityAntMatchersTests.java | 2 + .../configurers/HttpSecurityLogoutTests.java | 1 + .../web/configurers/Issue55Tests.java | 1 + .../NamespaceHttpAnonymousTests.java | 1 + .../configurers/NamespaceHttpBasicTests.java | 2 + .../NamespaceHttpCustomFilterTests.java | 7 ++ .../NamespaceHttpFormLoginTests.java | 2 + .../NamespaceHttpInterceptUrlTests.java | 1 + .../configurers/NamespaceHttpLogoutTests.java | 2 +- .../NamespaceHttpPortMappingsTests.java | 1 + .../NamespaceHttpRequestCacheTests.java | 4 ++ ...aceHttpServerAccessDeniedHandlerTests.java | 4 ++ .../configurers/NamespaceHttpX509Tests.java | 2 + .../NamespaceSessionManagementTests.java | 1 + .../RememberMeConfigurerTests.java | 5 ++ .../OAuth2ResourceServerConfigurerTests.java | 2 + ...SocketMessageBrokerConfigurerDocTests.java | 1 + ...WebSocketMessageBrokerConfigurerTests.java | 11 +++ ...cutorSubscribableChannelPostProcessor.java | 2 + ...ationManagerBeanDefinitionParserTests.java | 1 + .../config/core/HelloWorldMessageService.java | 2 + .../debug/TestAuthenticationProvider.java | 2 + .../security/config/http/CsrfConfigTests.java | 7 +- .../config/http/InterceptUrlConfigTests.java | 2 +- .../config/http/MiscHttpConfigTests.java | 10 +-- .../http/SessionManagementConfigTests.java | 2 +- ...thodSecurityBeanDefinitionParserTests.java | 3 + ...ptMethodsBeanDefinitionDecoratorTests.java | 1 + .../method/TestPermissionEvaluator.java | 2 + .../sec2136/JpaPermissionEvaluator.java | 2 + ...egistrationsBeanDefinitionParserTests.java | 3 +- .../config/test/SpringTestContext.java | 1 + .../security/config/test/SpringTestRule.java | 1 + .../util/InMemoryXmlApplicationContext.java | 1 + .../config/web/server/OAuth2LoginTests.java | 2 +- .../WebSocketMessageBrokerConfigTests.java | 4 +- .../Jsr250MethodSecurityMetadataSource.java | 3 + .../access/annotation/Jsr250Voter.java | 3 + ...curedAnnotationSecurityMetadataSource.java | 4 ++ .../security/access/event/LoggerListener.java | 1 + .../AbstractSecurityExpressionHandler.java | 3 + .../DenyAllPermissionEvaluator.java | 2 + .../expression/SecurityExpressionRoot.java | 13 ++++ ...tExpressionBasedMethodConfigAttribute.java | 1 + ...efaultMethodSecurityExpressionHandler.java | 4 ++ ...essionBasedAnnotationAttributeFactory.java | 2 + .../ExpressionBasedPostInvocationAdvice.java | 1 + .../ExpressionBasedPreInvocationAdvice.java | 1 + .../method/MethodSecurityExpressionRoot.java | 5 ++ .../hierarchicalroles/NullRoleHierarchy.java | 1 + .../RoleHierarchyAuthoritiesMapper.java | 1 + .../AbstractSecurityInterceptor.java | 4 ++ .../AfterInvocationProviderManager.java | 4 ++ .../MethodInvocationPrivilegeEvaluator.java | 1 + .../access/intercept/NullRunAsManager.java | 3 + .../RunAsImplAuthenticationProvider.java | 4 ++ .../access/intercept/RunAsManagerImpl.java | 4 ++ .../MethodSecurityInterceptor.java | 3 + .../MethodSecurityMetadataSourceAdvisor.java | 4 ++ .../aspectj/MethodInvocationAdapter.java | 5 ++ ...tFallbackMethodSecurityMetadataSource.java | 1 + .../AbstractMethodSecurityMetadataSource.java | 2 + ...elegatingMethodSecurityMetadataSource.java | 1 + .../prepost/PostInvocationAdviceProvider.java | 3 + ...PreInvocationAuthorizationAdviceVoter.java | 3 + ...rePostAdviceReactiveMethodInterceptor.java | 9 +-- .../vote/AbstractAccessDecisionManager.java | 4 ++ .../access/vote/AbstractAclVoter.java | 1 + .../access/vote/AffirmativeBased.java | 1 + .../access/vote/AuthenticatedVoter.java | 3 + .../security/access/vote/ConsensusBased.java | 1 + .../security/access/vote/RoleVoter.java | 3 + .../security/access/vote/UnanimousBased.java | 1 + .../AbstractAuthenticationToken.java | 6 ++ .../AccountStatusUserDetailsChecker.java | 1 + .../AnonymousAuthenticationProvider.java | 3 + .../AuthenticationTrustResolverImpl.java | 2 + .../CachingUserDetailsService.java | 1 + .../DefaultAuthenticationEventPublisher.java | 3 + ...legatingReactiveAuthenticationManager.java | 1 + .../authentication/ProviderManager.java | 5 ++ .../RememberMeAuthenticationProvider.java | 4 ++ .../TestingAuthenticationProvider.java | 2 + .../TestingAuthenticationToken.java | 2 + .../UsernamePasswordAuthenticationToken.java | 3 + ...ractUserDetailsAuthenticationProvider.java | 6 ++ .../dao/DaoAuthenticationProvider.java | 3 + .../authentication/event/LoggerListener.java | 1 + .../AbstractJaasAuthenticationProvider.java | 6 ++ .../jaas/DefaultLoginExceptionResolver.java | 1 + .../jaas/JaasNameCallbackHandler.java | 1 + .../jaas/JaasPasswordCallbackHandler.java | 1 + .../jaas/SecurityContextLoginModule.java | 5 ++ .../rcp/RemoteAuthenticationManagerImpl.java | 2 + .../rcp/RemoteAuthenticationProvider.java | 3 + .../DelegatingSecurityContextExecutor.java | 1 + ...egatingSecurityContextExecutorService.java | 12 ++++ ...curityContextScheduledExecutorService.java | 4 ++ .../DelegatingApplicationListener.java | 1 + ...edAttributes2GrantedAuthoritiesMapper.java | 3 + .../mapping/NullAuthoritiesMapper.java | 1 + ...leAttributes2GrantedAuthoritiesMapper.java | 2 + .../mapping/SimpleAuthorityMapper.java | 2 + .../SimpleMappableAttributesRetriever.java | 1 + .../GlobalSecurityContextHolderStrategy.java | 4 ++ ...eadLocalSecurityContextHolderStrategy.java | 4 ++ ...eadLocalSecurityContextHolderStrategy.java | 4 ++ .../KeyBasedPersistenceTokenService.java | 3 + .../core/token/SecureRandomFactoryBean.java | 3 + .../security/core/userdetails/User.java | 9 +++ .../UserDetailsByNameServiceWrapper.java | 2 + .../cache/EhCacheBasedUserCache.java | 4 ++ .../core/userdetails/cache/NullUserCache.java | 3 + .../cache/SpringCacheBasedUserCache.java | 3 + .../memory/UserAttributeEditor.java | 1 + .../InMemoryUserDetailsManager.java | 6 ++ .../provisioning/JdbcUserDetailsManager.java | 17 +++++ .../security/provisioning/MutableUser.java | 8 +++ ...SecurityContextSchedulingTaskExecutor.java | 1 + ...atingSecurityContextAsyncTaskExecutor.java | 3 + .../security/util/SimpleMethodInvocation.java | 5 ++ .../security/OtherTargetObject.java | 3 + .../security/TargetObject.java | 5 ++ .../security/TestDataSource.java | 1 + .../security/access/SecurityConfigTests.java | 1 + .../annotation/BusinessServiceImpl.java | 10 +++ ...xpressionProtectedBusinessServiceImpl.java | 10 +++ .../annotation/Jsr250BusinessServiceImpl.java | 10 +++ ...r250MethodSecurityMetadataSourceTests.java | 1 + ...AnnotationSecurityMetadataSourceTests.java | 7 ++ .../method/MethodExpressionVoterTests.java | 3 + ...AnnotationSecurityMetadataSourceTests.java | 10 +++ .../AbstractSecurityInterceptorTests.java | 4 ++ .../AfterInvocationProviderManagerTests.java | 3 + .../method/MockMethodInvocation.java | 5 ++ .../AbstractAccessDecisionManagerTests.java | 4 ++ .../access/vote/AbstractAclVoterTests.java | 2 + .../security/access/vote/DenyAgainVoter.java | 3 + .../security/access/vote/DenyVoter.java | 3 + .../access/vote/RoleHierarchyVoterTests.java | 3 +- .../AbstractAuthenticationTokenTests.java | 2 + .../authentication/ProviderManagerTests.java | 6 ++ .../dao/DaoAuthenticationProviderTests.java | 7 ++ .../authentication/dao/MockUserCache.java | 3 + .../jaas/JaasAuthenticationProviderTests.java | 1 + .../authentication/jaas/JaasEventCheck.java | 1 + .../jaas/TestAuthorityGranter.java | 1 + .../jaas/TestCallbackHandler.java | 1 + .../authentication/jaas/TestLoginModule.java | 5 ++ .../RemoteAuthenticationProviderTests.java | 1 + ...ngSecurityContextExecutorServiceTests.java | 2 + ...nnotationParameterNameDiscovererTests.java | 2 + .../userdetails/MockUserDetailsService.java | 1 + .../JdbcUserDetailsManagerTests.java | 3 + ...ityContextSchedulingTaskExecutorTests.java | 2 + ...ityContextSchedulingTaskExecutorTests.java | 1 + ...ityContextSchedulingTaskExecutorTests.java | 1 + ...SecurityContextAsyncTaskExecutorTests.java | 2 + ...atingSecurityContextTaskExecutorTests.java | 2 + ...atingSecurityContextTaskExecutorTests.java | 2 + .../util/MethodInvocationUtilsTests.java | 1 + .../security/crypto/bcrypt/BCrypt.java | 70 ++++++++++++------- .../crypto/bcrypt/BCryptPasswordEncoder.java | 2 + .../crypto/encrypt/AesBytesEncryptor.java | 4 ++ .../security/crypto/encrypt/Encryptors.java | 2 + .../encrypt/HexEncodingTextEncryptor.java | 2 + .../keygen/HexEncodingStringKeyGenerator.java | 1 + .../keygen/SecureRandomBytesKeyGenerator.java | 2 + .../crypto/keygen/SharedKeyGenerator.java | 2 + .../password/LdapShaPasswordEncoder.java | 2 + .../crypto/password/Md4PasswordEncoder.java | 2 + .../MessageDigestPasswordEncoder.java | 2 + .../crypto/password/NoOpPasswordEncoder.java | 2 + .../password/StandardPasswordEncoder.java | 2 + .../crypto/scrypt/SCryptPasswordEncoder.java | 2 + ...stleAesBytesEncryptorEquivalencyTests.java | 2 + ...curityEvaluationContextExtensionTests.java | 2 +- .../integration/StubUserRepository.java | 1 + .../ProtectPointcutPerformanceTests.java | 1 + .../integration/UserDetailsServiceImpl.java | 1 + .../MultiAnnotationServiceImpl.java | 4 ++ .../PreAuthorizeServiceImpl.java | 1 + .../multiannotation/SecuredServiceImpl.java | 1 + ...PythonInterpreterPostInvocationAdvice.java | 1 + .../PythonInterpreterPreInvocationAdvice.java | 1 + ...thonInterpreterPreInvocationAttribute.java | 1 + ...eterPrePostInvocationAttributeFactory.java | 2 + .../integration/python/TestServiceImpl.java | 1 + .../ldap/DefaultLdapUsernameToDnMapper.java | 1 + .../ldap/SpringSecurityLdapTemplate.java | 1 + .../AbstractLdapAuthenticationProvider.java | 3 + .../AbstractLdapAuthenticator.java | 2 + .../authentication/BindAuthenticator.java | 1 + .../NullLdapAuthoritiesPopulator.java | 1 + .../PasswordComparisonAuthenticator.java | 1 + .../SpringSecurityAuthenticationSource.java | 2 + ...etailsServiceLdapAuthoritiesPopulator.java | 1 + .../ldap/ppolicy/PasswordPolicyControl.java | 3 + .../ppolicy/PasswordPolicyControlFactory.java | 1 + .../PasswordPolicyResponseControl.java | 1 + .../ldap/server/ApacheDSContainer.java | 6 ++ .../ldap/userdetails/InetOrgPerson.java | 2 + .../InetOrgPersonContextMapper.java | 2 + .../userdetails/LdapUserDetailsManager.java | 6 ++ .../userdetails/LdapUserDetailsService.java | 2 + .../security/ldap/userdetails/Person.java | 2 + .../ldap/userdetails/PersonContextMapper.java | 2 + .../LdapAuthenticationProviderTests.java | 2 + .../ldap/authentication/MockUserSearch.java | 1 + ...ectoryLdapAuthenticationProviderTests.java | 7 ++ .../LdapUserDetailsServiceTests.java | 1 + .../MessageExpressionConfigAttribute.java | 1 + .../expression/MessageExpressionVoter.java | 3 + .../intercept/ChannelSecurityInterceptor.java | 6 ++ .../DefaultMessageSecurityMetadataSource.java | 3 + ...thenticationPrincipalArgumentResolver.java | 2 + .../SecurityContextChannelInterceptor.java | 2 + ...thenticationPrincipalArgumentResolver.java | 1 + ...urrentSecurityContextArgumentResolver.java | 1 + .../util/matcher/AndMessageMatcher.java | 1 + .../util/matcher/OrMessageMatcher.java | 1 + .../SimpDestinationMessageMatcher.java | 1 + .../server/CsrfTokenHandshakeInterceptor.java | 2 + .../util/matcher/AndMessageMatcherTests.java | 2 +- .../util/matcher/OrMessageMatcherTests.java | 2 +- .../oauth2/client/jackson2/JsonNodeUtils.java | 2 +- ...th2AuthorizationRequestRedirectFilter.java | 1 + ...oryOAuth2AuthorizedClientServiceTests.java | 4 +- ...uth2AuthorizationRequestResolverTests.java | 5 +- .../DefaultOAuth2AuthenticatedPrincipal.java | 1 + .../core/oidc/IdTokenClaimAccessor.java | 1 + .../oauth2/core/oidc/user/OidcUser.java | 1 + .../oauth2/jwt/ReactiveRemoteJWKSource.java | 1 + .../oauth2/jwt/JwtClaimValidatorTests.java | 3 +- ...tiveJwtAuthenticationConverterAdapter.java | 1 + ...verBearerTokenAuthenticationConverter.java | 1 + .../NimbusOpaqueTokenIntrospectorTests.java | 1 - ...rospectionAuthenticatedPrincipalTests.java | 26 ++++--- .../AuthenticationCancelledException.java | 1 + .../security/openid/AxFetchListFactory.java | 1 + .../openid/NullAxFetchListFactory.java | 2 + .../security/openid/OpenID4JavaConsumer.java | 3 + .../security/openid/OpenIDAttribute.java | 1 + .../openid/OpenIDAuthenticationFilter.java | 1 + .../openid/OpenIDAuthenticationProvider.java | 4 ++ .../openid/OpenIDAuthenticationToken.java | 3 + .../security/openid/OpenIDConsumer.java | 1 + .../openid/OpenIDConsumerException.java | 1 + .../openid/RegexBasedAxFetchListFactory.java | 2 + .../security/openid/MockOpenIDConsumer.java | 3 + .../openid/OpenID4JavaConsumerTests.java | 2 + .../OpenIDAuthenticationFilterTests.java | 2 + .../OpenIDAuthenticationProviderTests.java | 2 + .../remoting/dns/JndiDnsResolver.java | 4 ++ ...ationSimpleHttpInvokerRequestExecutor.java | 1 + .../ContextPropagatingRemoteInvocation.java | 1 + ...extPropagatingRemoteInvocationFactory.java | 1 + ...SimpleHttpInvokerRequestExecutorTests.java | 5 ++ ...uthenticationPayloadExchangeConverter.java | 4 +- .../AuthenticationPayloadInterceptor.java | 1 + .../core/ContextPayloadInterceptorChain.java | 1 + .../util/matcher/PayloadExchangeMatchers.java | 3 + .../saml2/core/Saml2X509Credential.java | 6 +- .../credentials/Saml2X509Credential.java | 6 +- .../RelyingPartyRegistration.java | 2 - .../taglibs/authz/AccessControlListTag.java | 1 + .../taglibs/authz/AuthenticationTag.java | 2 + .../taglibs/authz/JspAuthorizeTag.java | 17 +++++ .../taglibs/authz/AuthenticationTagTests.java | 1 + .../taglibs/authz/AuthorizeTagTests.java | 2 + .../taglibs/csrf/AbstractCsrfTagTests.java | 8 +-- ...thAnonymousUserSecurityContextFactory.java | 1 + .../WithMockUserSecurityContextFactory.java | 1 + ...WithUserDetailsSecurityContextFactory.java | 1 + .../server/SecurityMockServerConfigurers.java | 1 + .../context/showcase/CustomUserDetails.java | 7 ++ ...hMockCustomUserSecurityContextFactory.java | 1 + .../showcase/WithUserDetailsTests.java | 1 + .../showcase/service/HelloMessageService.java | 1 + .../SecurityMockMvcResultMatchersTests.java | 1 + ...WithAuthoritiesMvcResultMatchersTests.java | 1 + .../showcase/login/AuthenticationTests.java | 1 + .../CustomConfigAuthenticationTests.java | 1 + ...oginRequestBuilderAuthenticationTests.java | 1 + .../security/web/DefaultRedirectStrategy.java | 1 + .../web/DefaultSecurityFilterChain.java | 2 + .../security/web/FilterInvocation.java | 3 + .../security/web/PortMapperImpl.java | 2 + .../security/web/PortResolverImpl.java | 1 + .../web/access/AccessDeniedHandlerImpl.java | 1 + ...efaultWebInvocationPrivilegeEvaluator.java | 2 + .../access/DelegatingAccessDeniedHandler.java | 1 + .../access/ExceptionTranslationFilter.java | 2 + ...tMatcherDelegatingAccessDeniedHandler.java | 1 + .../channel/AbstractRetryEntryPoint.java | 1 + .../channel/ChannelDecisionManagerImpl.java | 3 + .../channel/ChannelProcessingFilter.java | 1 + .../channel/InsecureChannelProcessor.java | 3 + .../channel/RetryWithHttpEntryPoint.java | 1 + .../channel/RetryWithHttpsEntryPoint.java | 1 + .../channel/SecureChannelProcessor.java | 3 + .../access/expression/WebExpressionVoter.java | 3 + ...ilterInvocationSecurityMetadataSource.java | 3 + .../intercept/FilterSecurityInterceptor.java | 5 ++ ...bstractAuthenticationProcessingFilter.java | 3 + .../AnonymousAuthenticationFilter.java | 1 + .../DelegatingAuthenticationEntryPoint.java | 2 + .../ForwardAuthenticationFailureHandler.java | 1 + .../ForwardAuthenticationSuccessHandler.java | 1 + .../Http403ForbiddenEntryPoint.java | 1 + .../authentication/HttpStatusEntryPoint.java | 1 + .../LoginUrlAuthenticationEntryPoint.java | 2 + .../NullRememberMeServices.java | 3 + ...SimpleUrlAuthenticationFailureHandler.java | 1 + ...SimpleUrlAuthenticationSuccessHandler.java | 1 + .../UsernamePasswordAuthenticationFilter.java | 1 + .../WebAuthenticationDetailsSource.java | 1 + .../logout/CookieClearingLogoutHandler.java | 1 + ...tpStatusReturningLogoutSuccessHandler.java | 1 + .../authentication/logout/LogoutFilter.java | 1 + .../logout/SecurityContextLogoutHandler.java | 1 + .../logout/SimpleUrlLogoutSuccessHandler.java | 1 + ...tractPreAuthenticatedProcessingFilter.java | 2 + ...reAuthenticatedAuthenticationProvider.java | 4 ++ .../PreAuthenticatedAuthenticationToken.java | 2 + ...dGrantedAuthoritiesUserDetailsService.java | 1 + .../RequestAttributeAuthenticationFilter.java | 2 + .../RequestHeaderAuthenticationFilter.java | 2 + ...ticatedWebAuthenticationDetailsSource.java | 2 + .../J2eePreAuthenticatedProcessingFilter.java | 2 + .../WebXmlMappableAttributesRetriever.java | 4 ++ .../DefaultWASUsernameAndGroupsExtractor.java | 2 + ...pherePreAuthenticatedProcessingFilter.java | 2 + ...ticatedWebAuthenticationDetailsSource.java | 1 + .../x509/SubjectDnX509PrincipalExtractor.java | 1 + .../x509/X509AuthenticationFilter.java | 2 + .../InMemoryTokenRepositoryImpl.java | 4 ++ .../rememberme/JdbcTokenRepositoryImpl.java | 5 ++ ...ersistentTokenBasedRememberMeServices.java | 2 + .../RememberMeAuthenticationFilter.java | 2 + ...ractSessionFixationProtectionStrategy.java | 4 ++ ...ompositeSessionAuthenticationStrategy.java | 1 + ...tSessionControlAuthenticationStrategy.java | 2 + .../NullAuthenticatedSessionStrategy.java | 1 + ...RegisterSessionAuthenticationStrategy.java | 1 + .../switchuser/SwitchUserFilter.java | 3 + .../ui/DefaultLoginPageGeneratingFilter.java | 1 + .../www/BasicAuthenticationEntryPoint.java | 2 + .../www/DigestAuthenticationEntryPoint.java | 3 + .../www/DigestAuthenticationFilter.java | 2 + ...thenticationPrincipalArgumentResolver.java | 2 + ...ractSecurityWebApplicationInitializer.java | 1 + .../HttpSessionSecurityContextRepository.java | 3 + .../NullSecurityContextRepository.java | 3 + .../SecurityContextPersistenceFilter.java | 1 + .../security/web/csrf/CsrfLogoutHandler.java | 1 + .../security/web/csrf/DefaultCsrfToken.java | 3 + .../csrf/HttpSessionCsrfTokenRepository.java | 3 + .../security/web/debug/DebugFilter.java | 3 + .../security/web/firewall/RequestWrapper.java | 3 + .../writers/ClearSiteDataHeaderWriter.java | 1 + .../DelegatingRequestMatcherHeaderWriter.java | 1 + .../web/header/writers/HpkpHeaderWriter.java | 2 + .../web/header/writers/HstsHeaderWriter.java | 2 + .../header/writers/StaticHeadersWriter.java | 1 + .../writers/XXssProtectionHeaderWriter.java | 1 + ...ractRequestParameterAllowFromStrategy.java | 1 + .../frameoptions/StaticAllowFromStrategy.java | 1 + .../XFrameOptionsHeaderWriter.java | 1 + .../web/jaasapi/JaasApiIntegrationFilter.java | 1 + ...thenticationPrincipalArgumentResolver.java | 2 + .../annotation/CsrfTokenArgumentResolver.java | 5 +- .../web/savedrequest/DefaultSavedRequest.java | 3 +- .../security/web/savedrequest/Enumerator.java | 2 + .../savedrequest/HttpSessionRequestCache.java | 4 ++ .../web/savedrequest/NullRequestCache.java | 4 ++ .../savedrequest/RequestCacheAwareFilter.java | 1 + .../web/savedrequest/SavedCookie.java | 9 ++- .../server/DefaultServerRedirectStrategy.java | 1 + ...egatingServerAuthenticationEntryPoint.java | 1 + .../NoOpServerSecurityContextRepository.java | 2 + ...essionServerSecurityContextRepository.java | 2 + .../web/server/csrf/DefaultCsrfToken.java | 15 ++-- .../WebSessionServerCsrfTokenRepository.java | 3 +- .../csrf/CsrfRequestDataValueProcessor.java | 4 ++ ...curityContextHolderAwareRequestFilter.java | 1 + .../web/session/ConcurrentSessionFilter.java | 1 + .../session/HttpSessionEventPublisher.java | 2 + .../InvalidSessionAccessDeniedHandler.java | 1 + .../web/session/SessionManagementFilter.java | 1 + .../SimpleRedirectInvalidSessionStrategy.java | 1 + ...rectSessionInformationExpiredStrategy.java | 1 + .../web/util/OnCommittedResponseWrapper.java | 2 + .../web/util/matcher/AndRequestMatcher.java | 1 + .../web/util/matcher/AnyRequestMatcher.java | 1 + .../web/util/matcher/ELRequestMatcher.java | 1 + .../web/util/matcher/IpAddressMatcher.java | 1 + .../util/matcher/MediaTypeRequestMatcher.java | 1 + .../util/matcher/NegatedRequestMatcher.java | 1 + .../web/util/matcher/OrRequestMatcher.java | 1 + .../web/util/matcher/RegexRequestMatcher.java | 1 + .../matcher/RequestHeaderRequestMatcher.java | 1 + .../matcher/RequestVariablesExtractor.java | 1 + .../security/MockFilterConfig.java | 4 ++ .../security/MockPortResolver.java | 1 + .../ChannelDecisionManagerImplTests.java | 2 + .../channel/ChannelProcessingFilterTests.java | 5 ++ ...ctAuthenticationProcessingFilterTests.java | 2 + .../AnonymousAuthenticationFilterTests.java | 1 + ...PreAuthenticatedProcessingFilterTests.java | 4 ++ ...horitiesWebAuthenticationDetailsTests.java | 1 + ...edWebAuthenticationDetailsSourceTests.java | 1 + ...PreAuthenticatedProcessingFilterTests.java | 1 + .../WebXmlJ2eeDefinedRolesRetrieverTests.java | 4 ++ .../AbstractRememberMeServicesTests.java | 10 ++- ...tentTokenBasedRememberMeServicesTests.java | 4 ++ .../RememberMeAuthenticationFilterTests.java | 4 ++ .../TokenBasedRememberMeServicesTests.java | 4 +- .../switchuser/SwitchUserFilterTests.java | 1 + ...ecurityWebApplicationInitializerTests.java | 11 +++ ...WebAsyncManagerIntegrationFilterTests.java | 2 + .../JaasApiIntegrationFilterTests.java | 3 + .../HttpSessionRequestCacheTests.java | 8 +++ .../HttpSessionEventPublisherTests.java | 3 +- .../web/session/MockApplicationListener.java | 1 + .../web/util/ThrowableAnalyzerTests.java | 1 + 558 files changed, 1418 insertions(+), 102 deletions(-) diff --git a/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java b/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java index c57bf5ec71..73010a0575 100644 --- a/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java +++ b/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java @@ -156,10 +156,12 @@ public class AclEntryVoter extends AbstractAclVoter { this.sidRetrievalStrategy = sidRetrievalStrategy; } + @Override public boolean supports(ConfigAttribute attribute) { return (attribute.getAttribute() != null) && attribute.getAttribute().equals(getProcessConfigAttribute()); } + @Override public int vote(Authentication authentication, MethodInvocation object, Collection attributes) { for (ConfigAttribute attr : attributes) { diff --git a/acl/src/main/java/org/springframework/security/acls/AclPermissionCacheOptimizer.java b/acl/src/main/java/org/springframework/security/acls/AclPermissionCacheOptimizer.java index 26f327a961..1c92b5b4e3 100644 --- a/acl/src/main/java/org/springframework/security/acls/AclPermissionCacheOptimizer.java +++ b/acl/src/main/java/org/springframework/security/acls/AclPermissionCacheOptimizer.java @@ -52,6 +52,7 @@ public class AclPermissionCacheOptimizer implements PermissionCacheOptimizer { this.aclService = aclService; } + @Override public void cachePermissionsFor(Authentication authentication, Collection objects) { if (objects.isEmpty()) { return; diff --git a/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java b/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java index 0477f03b88..2bc9b645f9 100644 --- a/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java +++ b/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java @@ -70,6 +70,7 @@ public class AclPermissionEvaluator implements PermissionEvaluator { * the ACL configuration. If the domain object is null, returns false (this can always * be overridden using a null check in the expression itself). */ + @Override public boolean hasPermission(Authentication authentication, Object domainObject, Object permission) { if (domainObject == null) { return false; @@ -80,6 +81,7 @@ public class AclPermissionEvaluator implements PermissionEvaluator { return checkPermission(authentication, objectIdentity, permission); } + @Override public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { ObjectIdentity objectIdentity = this.objectIdentityGenerator.createObjectIdentity(targetId, targetType); diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java index 743b945c11..9f1f5cd9b4 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java @@ -109,6 +109,7 @@ public abstract class AbstractAclProvider implements AfterInvocationProvider { this.sidRetrievalStrategy = sidRetrievalStrategy; } + @Override public boolean supports(ConfigAttribute attribute) { return this.processConfigAttribute.equals(attribute.getAttribute()); } @@ -119,6 +120,7 @@ public abstract class AbstractAclProvider implements AfterInvocationProvider { * @param clazz the secure object * @return always true */ + @Override public boolean supports(Class clazz) { return true; } diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java index 545e1f0e89..de001d40c8 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java @@ -70,6 +70,7 @@ public class AclEntryAfterInvocationCollectionFilteringProvider extends Abstract super(aclService, "AFTER_ACL_COLLECTION_READ", requirePermission); } + @Override @SuppressWarnings("unchecked") public Object decide(Authentication authentication, Object object, Collection config, Object returnedObject) throws AccessDeniedException { diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java index 5483ccc937..91f69396cc 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java @@ -74,6 +74,7 @@ public class AclEntryAfterInvocationProvider extends AbstractAclProvider impleme super(aclService, processConfigAttribute, requirePermission); } + @Override public Object decide(Authentication authentication, Object object, Collection config, Object returnedObject) throws AccessDeniedException { @@ -111,6 +112,7 @@ public class AclEntryAfterInvocationProvider extends AbstractAclProvider impleme return returnedObject; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java index ae5d2d23f2..38ee6610a9 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java @@ -52,6 +52,7 @@ class ArrayFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#getFilteredObject() */ + @Override @SuppressWarnings("unchecked") public T[] getFilteredObject() { // Recreate an array of same type and filter the removed objects. @@ -80,14 +81,17 @@ class ArrayFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#iterator() */ + @Override public Iterator iterator() { return new Iterator() { private int index = 0; + @Override public boolean hasNext() { return this.index < ArrayFilterer.this.list.length; } + @Override public T next() { if (!hasNext()) { throw new NoSuchElementException(); @@ -95,6 +99,7 @@ class ArrayFilterer implements Filterer { return ArrayFilterer.this.list[this.index++]; } + @Override public void remove() { throw new UnsupportedOperationException(); } @@ -105,6 +110,7 @@ class ArrayFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#remove(java.lang.Object) */ + @Override public void remove(T object) { this.removeList.add(object); } diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/CollectionFilterer.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/CollectionFilterer.java index 4c68101c09..70a6a0e9cf 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/CollectionFilterer.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/CollectionFilterer.java @@ -55,6 +55,7 @@ class CollectionFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#getFilteredObject() */ + @Override public Object getFilteredObject() { // Now the Iterator has ended, remove Objects from Collection Iterator removeIter = this.removeList.iterator(); @@ -77,6 +78,7 @@ class CollectionFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#iterator() */ + @Override public Iterator iterator() { return this.collection.iterator(); } @@ -85,6 +87,7 @@ class CollectionFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#remove(java.lang.Object) */ + @Override public void remove(T object) { this.removeList.add(object); } diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/Filterer.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/Filterer.java index 8632d426a1..f41bfa0bc7 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/Filterer.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/Filterer.java @@ -36,6 +36,7 @@ interface Filterer extends Iterable { * Returns an iterator over the filtered collection or array. * @return an Iterator */ + @Override Iterator iterator(); /** diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java b/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java index 9c45624976..efc364acea 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java @@ -50,6 +50,7 @@ public abstract class AbstractPermission implements Permission { this.code = code; } + @Override public final boolean equals(Object arg0) { if (arg0 == null) { return false; @@ -64,18 +65,22 @@ public abstract class AbstractPermission implements Permission { return (this.mask == rhs.getMask()); } + @Override public final int getMask() { return this.mask; } + @Override public String getPattern() { return AclFormattingUtils.printBinary(this.mask, this.code); } + @Override public final String toString() { return this.getClass().getSimpleName() + "[" + getPattern() + "=" + this.mask + "]"; } + @Override public final int hashCode() { return this.mask; } diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java index 5dae15cc60..ea0d831644 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java @@ -77,6 +77,7 @@ public class AclAuthorizationStrategyImpl implements AclAuthorizationStrategy { } } + @Override public void securityCheck(Acl acl, int changeType) { if ((SecurityContextHolder.getContext() == null) || (SecurityContextHolder.getContext().getAuthentication() == null) diff --git a/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java index 84f2b99e8e..45770cbb0a 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java @@ -26,6 +26,7 @@ import org.springframework.util.Assert; */ public class ConsoleAuditLogger implements AuditLogger { + @Override public void logIfNeeded(boolean granted, AccessControlEntry ace) { Assert.notNull(ace, "AccessControlEntry required"); diff --git a/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java index c120868ea8..2f1ff2d315 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java @@ -56,6 +56,7 @@ public class CumulativePermission extends AbstractPermission { return this; } + @Override public String getPattern() { return this.pattern; } diff --git a/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java b/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java index 068b786069..0d57a3cde0 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java @@ -113,6 +113,7 @@ public class DefaultPermissionFactory implements PermissionFactory { this.registeredPermissionsByName.put(permissionName, perm); } + @Override public Permission buildFromMask(int mask) { if (this.registeredPermissionsByInteger.containsKey(mask)) { // The requested mask has an exact match against a statically-defined @@ -140,6 +141,7 @@ public class DefaultPermissionFactory implements PermissionFactory { return permission; } + @Override public Permission buildFromName(String name) { Permission p = this.registeredPermissionsByName.get(name); @@ -150,6 +152,7 @@ public class DefaultPermissionFactory implements PermissionFactory { return p; } + @Override public List buildFromNames(List names) { if ((names == null) || (names.size() == 0)) { return Collections.emptyList(); diff --git a/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionGrantingStrategy.java b/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionGrantingStrategy.java index edd3f85a56..af9e44b6d5 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionGrantingStrategy.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionGrantingStrategy.java @@ -70,6 +70,7 @@ public class DefaultPermissionGrantingStrategy implements PermissionGrantingStra * @throws NotFoundException if an exact ACE for one of the permission bit masks and * SID combination could not be found */ + @Override public boolean isGranted(Acl acl, List permission, List sids, boolean administrativeMode) throws NotFoundException { diff --git a/acl/src/main/java/org/springframework/security/acls/domain/EhCacheBasedAclCache.java b/acl/src/main/java/org/springframework/security/acls/domain/EhCacheBasedAclCache.java index f9c16a8e96..861b4e3efa 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/EhCacheBasedAclCache.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/EhCacheBasedAclCache.java @@ -55,6 +55,7 @@ public class EhCacheBasedAclCache implements AclCache { this.aclAuthorizationStrategy = aclAuthorizationStrategy; } + @Override public void evictFromCache(Serializable pk) { Assert.notNull(pk, "Primary key (identifier) required"); @@ -66,6 +67,7 @@ public class EhCacheBasedAclCache implements AclCache { } } + @Override public void evictFromCache(ObjectIdentity objectIdentity) { Assert.notNull(objectIdentity, "ObjectIdentity required"); @@ -77,6 +79,7 @@ public class EhCacheBasedAclCache implements AclCache { } } + @Override public MutableAcl getFromCache(ObjectIdentity objectIdentity) { Assert.notNull(objectIdentity, "ObjectIdentity required"); @@ -95,6 +98,7 @@ public class EhCacheBasedAclCache implements AclCache { return initializeTransientFields((MutableAcl) element.getValue()); } + @Override public MutableAcl getFromCache(Serializable pk) { Assert.notNull(pk, "Primary key (identifier) required"); @@ -113,6 +117,7 @@ public class EhCacheBasedAclCache implements AclCache { return initializeTransientFields((MutableAcl) element.getValue()); } + @Override public void putInCache(MutableAcl acl) { Assert.notNull(acl, "Acl required"); Assert.notNull(acl.getObjectIdentity(), "ObjectIdentity required"); @@ -147,6 +152,7 @@ public class EhCacheBasedAclCache implements AclCache { return value; } + @Override public void clearCache() { this.cache.removeAll(); } diff --git a/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java index 252a9334a9..d08ba91d8c 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java @@ -31,10 +31,12 @@ import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy; */ public class ObjectIdentityRetrievalStrategyImpl implements ObjectIdentityRetrievalStrategy, ObjectIdentityGenerator { + @Override public ObjectIdentity getObjectIdentity(Object domainObject) { return new ObjectIdentityImpl(domainObject); } + @Override public ObjectIdentity createObjectIdentity(Serializable id, String type) { return new ObjectIdentityImpl(type, id); } diff --git a/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java index 2a9619a46a..5a82c3e6ac 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java @@ -51,6 +51,7 @@ public class SidRetrievalStrategyImpl implements SidRetrievalStrategy { this.roleHierarchy = roleHierarchy; } + @Override public List getSids(Authentication authentication) { Collection authorities = this.roleHierarchy .getReachableGrantedAuthorities(authentication.getAuthorities()); diff --git a/acl/src/main/java/org/springframework/security/acls/domain/SpringCacheBasedAclCache.java b/acl/src/main/java/org/springframework/security/acls/domain/SpringCacheBasedAclCache.java index 1d2913602c..24125209a7 100644 --- a/acl/src/main/java/org/springframework/security/acls/domain/SpringCacheBasedAclCache.java +++ b/acl/src/main/java/org/springframework/security/acls/domain/SpringCacheBasedAclCache.java @@ -56,6 +56,7 @@ public class SpringCacheBasedAclCache implements AclCache { this.aclAuthorizationStrategy = aclAuthorizationStrategy; } + @Override public void evictFromCache(Serializable pk) { Assert.notNull(pk, "Primary key (identifier) required"); @@ -67,6 +68,7 @@ public class SpringCacheBasedAclCache implements AclCache { } } + @Override public void evictFromCache(ObjectIdentity objectIdentity) { Assert.notNull(objectIdentity, "ObjectIdentity required"); @@ -78,16 +80,19 @@ public class SpringCacheBasedAclCache implements AclCache { } } + @Override public MutableAcl getFromCache(ObjectIdentity objectIdentity) { Assert.notNull(objectIdentity, "ObjectIdentity required"); return getFromCache((Object) objectIdentity); } + @Override public MutableAcl getFromCache(Serializable pk) { Assert.notNull(pk, "Primary key (identifier) required"); return getFromCache((Object) pk); } + @Override public void putInCache(MutableAcl acl) { Assert.notNull(acl, "Acl required"); Assert.notNull(acl.getObjectIdentity(), "ObjectIdentity required"); @@ -123,6 +128,7 @@ public class SpringCacheBasedAclCache implements AclCache { return value; } + @Override public void clearCache() { this.cache.clear(); } diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java index a8314d2dd7..abef8f3580 100644 --- a/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java +++ b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java @@ -264,6 +264,7 @@ public class BasicLookupStrategy implements LookupStrategy { * {@link NotFoundException}, as a chain of {@link LookupStrategy}s may be used to * automatically create entries if required) */ + @Override public final Map readAclsById(List objects, List sids) { Assert.isTrue(this.batchSize >= 1, "BatchSize must be >= 1"); Assert.notEmpty(objects, "Objects to lookup required"); @@ -543,6 +544,7 @@ public class BasicLookupStrategy implements LookupStrategy { * null) * @throws SQLException */ + @Override public Set extractData(ResultSet rs) throws SQLException { Set parentIdsToLookup = new HashSet<>(); // Set of parent_id Longs @@ -652,6 +654,7 @@ public class BasicLookupStrategy implements LookupStrategy { this.id = id; } + @Override public List getEntries() { throw new UnsupportedOperationException("Stub only"); } @@ -660,27 +663,33 @@ public class BasicLookupStrategy implements LookupStrategy { return this.id; } + @Override public ObjectIdentity getObjectIdentity() { throw new UnsupportedOperationException("Stub only"); } + @Override public Sid getOwner() { throw new UnsupportedOperationException("Stub only"); } + @Override public Acl getParentAcl() { throw new UnsupportedOperationException("Stub only"); } + @Override public boolean isEntriesInheriting() { throw new UnsupportedOperationException("Stub only"); } + @Override public boolean isGranted(List permission, List sids, boolean administrativeMode) throws NotFoundException, UnloadedSidException { throw new UnsupportedOperationException("Stub only"); } + @Override public boolean isSidLoaded(List sids) { throw new UnsupportedOperationException("Stub only"); } diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java index 4899243c8d..9cdf35873b 100644 --- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java +++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java @@ -90,6 +90,7 @@ public class JdbcAclService implements AclService { this.aclClassIdUtils = new AclClassIdUtils(); } + @Override public List findChildren(ObjectIdentity parentIdentity) { Object[] args = { parentIdentity.getIdentifier().toString(), parentIdentity.getType() }; List objects = this.jdbcOperations.query(this.findChildrenSql, args, (rs, rowNum) -> { @@ -106,6 +107,7 @@ public class JdbcAclService implements AclService { return objects; } + @Override public Acl readAclById(ObjectIdentity object, List sids) throws NotFoundException { Map map = readAclsById(Collections.singletonList(object), sids); Assert.isTrue(map.containsKey(object), @@ -114,14 +116,17 @@ public class JdbcAclService implements AclService { return map.get(object); } + @Override public Acl readAclById(ObjectIdentity object) throws NotFoundException { return readAclById(object, null); } + @Override public Map readAclsById(List objects) throws NotFoundException { return readAclsById(objects, null); } + @Override public Map readAclsById(List objects, List sids) throws NotFoundException { Map result = this.lookupStrategy.readAclsById(objects, sids); diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java index 144085607a..b5b5ab5d3b 100644 --- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java +++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java @@ -103,6 +103,7 @@ public class JdbcMutableAclService extends JdbcAclService implements MutableAclS this.aclCache = aclCache; } + @Override public MutableAcl createAcl(ObjectIdentity objectIdentity) throws AlreadyExistsException { Assert.notNull(objectIdentity, "Object Identity required"); @@ -137,10 +138,12 @@ public class JdbcMutableAclService extends JdbcAclService implements MutableAclS return; } this.jdbcOperations.batchUpdate(this.insertEntry, new BatchPreparedStatementSetter() { + @Override public int getBatchSize() { return acl.getEntries().size(); } + @Override public void setValues(PreparedStatement stmt, int i) throws SQLException { AccessControlEntry entry_ = acl.getEntries().get(i); Assert.isTrue(entry_ instanceof AccessControlEntryImpl, "Unknown ACE class"); @@ -256,6 +259,7 @@ public class JdbcMutableAclService extends JdbcAclService implements MutableAclS return null; } + @Override public void deleteAcl(ObjectIdentity objectIdentity, boolean deleteChildren) throws ChildrenExistException { Assert.notNull(objectIdentity, "Object Identity required"); Assert.notNull(objectIdentity.getIdentifier(), "Object Identity doesn't provide an identifier"); @@ -338,6 +342,7 @@ public class JdbcMutableAclService extends JdbcAclService implements MutableAclS * dirty state checking, or more likely use ORM capabilities for create, update and * delete operations of {@link MutableAcl}. */ + @Override public MutableAcl updateAcl(MutableAcl acl) throws NotFoundException { Assert.notNull(acl.getId(), "Object Identity doesn't provide an identifier"); diff --git a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java index dc940a337a..265989b0a6 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java +++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java @@ -38,6 +38,7 @@ public interface ObjectIdentity extends Serializable { * @return true if the objects are equal, false otherwise * @see Object#equals(Object) */ + @Override boolean equals(Object obj); /** @@ -66,6 +67,7 @@ public interface ObjectIdentity extends Serializable { * @return a hash code representation of the ObjectIdentity * @see Object#hashCode() */ + @Override int hashCode(); } diff --git a/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java b/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java index 1d6932a110..c3dc78b35a 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java +++ b/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java @@ -26,6 +26,7 @@ package org.springframework.security.acls.model; */ public interface OwnershipAcl extends MutableAcl { + @Override void setOwner(Sid newOwner); } diff --git a/acl/src/main/java/org/springframework/security/acls/model/Sid.java b/acl/src/main/java/org/springframework/security/acls/model/Sid.java index 6f3e0e3aab..fe9f55f313 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/Sid.java +++ b/acl/src/main/java/org/springframework/security/acls/model/Sid.java @@ -38,6 +38,7 @@ public interface Sid extends Serializable { * @param obj to be compared * @return true if the objects are equal, false otherwise */ + @Override boolean equals(Object obj); /** @@ -45,6 +46,7 @@ public interface Sid extends Serializable { * contract. * @return a hash code representation of this object */ + @Override int hashCode(); } diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java index e49c990ab1..cb33e618ca 100644 --- a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java +++ b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java @@ -592,10 +592,12 @@ public class AclImplTests { private class MockAclService implements MutableAclService { + @Override public MutableAcl createAcl(ObjectIdentity objectIdentity) throws AlreadyExistsException { return null; } + @Override public void deleteAcl(ObjectIdentity objectIdentity, boolean deleteChildren) throws ChildrenExistException { } @@ -606,6 +608,7 @@ public class AclImplTests { * @see org.springframework.security.acls.MutableAclService#updateAcl(org. * springframework .security.acls.MutableAcl) */ + @Override @SuppressWarnings("unchecked") public MutableAcl updateAcl(MutableAcl acl) throws NotFoundException { List oldAces = acl.getEntries(); @@ -632,22 +635,27 @@ public class AclImplTests { return acl; } + @Override public List findChildren(ObjectIdentity parentIdentity) { return null; } + @Override public Acl readAclById(ObjectIdentity object) throws NotFoundException { return null; } + @Override public Acl readAclById(ObjectIdentity object, List sids) throws NotFoundException { return null; } + @Override public Map readAclsById(List objects) throws NotFoundException { return null; } + @Override public Map readAclsById(List objects, List sids) throws NotFoundException { return null; diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyWithAclClassTypeTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyWithAclClassTypeTests.java index f4d80a3e72..2c69fa7ce1 100644 --- a/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyWithAclClassTypeTests.java +++ b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyWithAclClassTypeTests.java @@ -67,6 +67,7 @@ public class BasicLookupStrategyWithAclClassTypeTests extends AbstractBasicLooku DATABASE_HELPER.getDataSource().destroy(); } + @Override @Before public void initializeBeans() { super.initializeBeans(); diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java index b4eb501350..dd227be3c0 100644 --- a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java +++ b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java @@ -392,8 +392,8 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin try { this.jdbcMutableAclService.setForeignKeysInDatabase(false); // switch on FK - // checking in the - // class, not database + // checking in the + // class, not database this.jdbcMutableAclService.deleteAcl(getTopParentOid(), false); fail("It should have thrown ChildrenExistException"); } @@ -401,7 +401,7 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin } finally { this.jdbcMutableAclService.setForeignKeysInDatabase(true); // restore to the - // default + // default } } diff --git a/aspects/src/test/java/org/springframework/security/access/intercept/aspectj/aspect/AnnotationSecurityAspectTests.java b/aspects/src/test/java/org/springframework/security/access/intercept/aspectj/aspect/AnnotationSecurityAspectTests.java index 6a6422d6c7..c8f8fc9802 100644 --- a/aspects/src/test/java/org/springframework/security/access/intercept/aspectj/aspect/AnnotationSecurityAspectTests.java +++ b/aspects/src/test/java/org/springframework/security/access/intercept/aspectj/aspect/AnnotationSecurityAspectTests.java @@ -173,6 +173,7 @@ interface SecuredInterface { class SecuredImpl implements SecuredInterface { // Not really secured because AspectJ doesn't inherit annotations from interfaces + @Override public void securedMethod() { } @@ -197,9 +198,11 @@ class SecuredImpl implements SecuredInterface { class SecuredImplSubclass extends SecuredImpl { + @Override protected void protectedMethod() { } + @Override public void publicCallsPrivate() { super.publicCallsPrivate(); } diff --git a/cas/src/main/java/org/springframework/security/cas/ServiceProperties.java b/cas/src/main/java/org/springframework/security/cas/ServiceProperties.java index 7a3d40bcfb..caf03dd62a 100644 --- a/cas/src/main/java/org/springframework/security/cas/ServiceProperties.java +++ b/cas/src/main/java/org/springframework/security/cas/ServiceProperties.java @@ -44,6 +44,7 @@ public class ServiceProperties implements InitializingBean { private String serviceParameter = DEFAULT_CAS_SERVICE_PARAMETER; + @Override public void afterPropertiesSet() { Assert.hasLength(this.service, "service cannot be empty."); Assert.hasLength(this.artifactParameter, "artifactParameter cannot be empty."); diff --git a/cas/src/main/java/org/springframework/security/cas/authentication/CasAssertionAuthenticationToken.java b/cas/src/main/java/org/springframework/security/cas/authentication/CasAssertionAuthenticationToken.java index 0aae08d1c1..8794c2987c 100644 --- a/cas/src/main/java/org/springframework/security/cas/authentication/CasAssertionAuthenticationToken.java +++ b/cas/src/main/java/org/springframework/security/cas/authentication/CasAssertionAuthenticationToken.java @@ -43,10 +43,12 @@ public final class CasAssertionAuthenticationToken extends AbstractAuthenticatio this.ticket = ticket; } + @Override public Object getPrincipal() { return this.assertion.getPrincipal().getName(); } + @Override public Object getCredentials() { return this.ticket; } diff --git a/cas/src/main/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCache.java b/cas/src/main/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCache.java index c0bd4cdac0..4d54de1aed 100644 --- a/cas/src/main/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCache.java +++ b/cas/src/main/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCache.java @@ -36,10 +36,12 @@ public class EhCacheBasedTicketCache implements StatelessTicketCache, Initializi private Ehcache cache; + @Override public void afterPropertiesSet() { Assert.notNull(this.cache, "cache mandatory"); } + @Override public CasAuthenticationToken getByTicketId(final String serviceTicket) { final Element element = this.cache.get(serviceTicket); @@ -54,6 +56,7 @@ public class EhCacheBasedTicketCache implements StatelessTicketCache, Initializi return this.cache; } + @Override public void putTicketInCache(final CasAuthenticationToken token) { final Element element = new Element(token.getCredentials().toString(), token); @@ -64,6 +67,7 @@ public class EhCacheBasedTicketCache implements StatelessTicketCache, Initializi this.cache.put(element); } + @Override public void removeTicketFromCache(final CasAuthenticationToken token) { if (logger.isDebugEnabled()) { logger.debug("Cache remove: " + token.getCredentials().toString()); @@ -72,6 +76,7 @@ public class EhCacheBasedTicketCache implements StatelessTicketCache, Initializi this.removeTicketFromCache(token.getCredentials().toString()); } + @Override public void removeTicketFromCache(final String serviceTicket) { this.cache.remove(serviceTicket); } diff --git a/cas/src/main/java/org/springframework/security/cas/authentication/NullStatelessTicketCache.java b/cas/src/main/java/org/springframework/security/cas/authentication/NullStatelessTicketCache.java index e5aafe8235..ee217f7c7b 100644 --- a/cas/src/main/java/org/springframework/security/cas/authentication/NullStatelessTicketCache.java +++ b/cas/src/main/java/org/springframework/security/cas/authentication/NullStatelessTicketCache.java @@ -31,6 +31,7 @@ public final class NullStatelessTicketCache implements StatelessTicketCache { /** * @return null since we are not storing any tickets. */ + @Override public CasAuthenticationToken getByTicketId(final String serviceTicket) { return null; } @@ -38,6 +39,7 @@ public final class NullStatelessTicketCache implements StatelessTicketCache { /** * This is a no-op since we are not storing tickets. */ + @Override public void putTicketInCache(final CasAuthenticationToken token) { // nothing to do } @@ -45,6 +47,7 @@ public final class NullStatelessTicketCache implements StatelessTicketCache { /** * This is a no-op since we are not storing tickets. */ + @Override public void removeTicketFromCache(final CasAuthenticationToken token) { // nothing to do } @@ -52,6 +55,7 @@ public final class NullStatelessTicketCache implements StatelessTicketCache { /** * This is a no-op since we are not storing tickets. */ + @Override public void removeTicketFromCache(final String serviceTicket) { // nothing to do } diff --git a/cas/src/main/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCache.java b/cas/src/main/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCache.java index 28dcd5e291..bdf30ea4b3 100644 --- a/cas/src/main/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCache.java +++ b/cas/src/main/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCache.java @@ -39,6 +39,7 @@ public class SpringCacheBasedTicketCache implements StatelessTicketCache { this.cache = cache; } + @Override public CasAuthenticationToken getByTicketId(final String serviceTicket) { final Cache.ValueWrapper element = serviceTicket != null ? this.cache.get(serviceTicket) : null; @@ -49,6 +50,7 @@ public class SpringCacheBasedTicketCache implements StatelessTicketCache { return element == null ? null : (CasAuthenticationToken) element.get(); } + @Override public void putTicketInCache(final CasAuthenticationToken token) { String key = token.getCredentials().toString(); @@ -59,6 +61,7 @@ public class SpringCacheBasedTicketCache implements StatelessTicketCache { this.cache.put(key, token); } + @Override public void removeTicketFromCache(final CasAuthenticationToken token) { if (logger.isDebugEnabled()) { logger.debug("Cache remove: " + token.getCredentials().toString()); @@ -67,6 +70,7 @@ public class SpringCacheBasedTicketCache implements StatelessTicketCache { this.removeTicketFromCache(token.getCredentials().toString()); } + @Override public void removeTicketFromCache(final String serviceTicket) { this.cache.evict(serviceTicket); } diff --git a/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java b/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java index 25c0973f11..786f52a717 100644 --- a/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java +++ b/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java @@ -32,6 +32,7 @@ import org.springframework.security.core.userdetails.UserDetails; public abstract class AbstractCasAssertionUserDetailsService implements AuthenticationUserDetailsService { + @Override public final UserDetails loadUserDetails(final CasAssertionAuthenticationToken token) { return loadUserDetails(token.getAssertion()); } diff --git a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java index e80c101ac5..033a26db9f 100644 --- a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java +++ b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java @@ -60,12 +60,14 @@ public class CasAuthenticationEntryPoint implements AuthenticationEntryPoint, In */ private boolean encodeServiceUrlWithSessionId = true; + @Override public void afterPropertiesSet() { Assert.hasLength(this.loginUrl, "loginUrl must be specified"); Assert.notNull(this.serviceProperties, "serviceProperties must be specified"); Assert.notNull(this.serviceProperties.getService(), "serviceProperties.getService() cannot be null."); } + @Override public final void commence(final HttpServletRequest servletRequest, final HttpServletResponse response, final AuthenticationException authenticationException) throws IOException { diff --git a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java index e7666a1cdd..ee5164c166 100644 --- a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java +++ b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java @@ -271,6 +271,7 @@ public class CasAuthenticationFilter extends AbstractAuthenticationProcessingFil /** * Overridden to provide proxying capabilities. */ + @Override protected boolean requiresAuthentication(final HttpServletRequest request, final HttpServletResponse response) { final boolean serviceTicketRequest = serviceTicketRequest(request, response); final boolean result = serviceTicketRequest || proxyReceptorRequest(request) @@ -398,6 +399,7 @@ public class CasAuthenticationFilter extends AbstractAuthenticationProcessingFil this.serviceTicketFailureHandler = failureHandler; } + @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { if (serviceTicketRequest(request, response)) { diff --git a/cas/src/main/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetails.java b/cas/src/main/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetails.java index 049bc3b8d4..3726df3736 100644 --- a/cas/src/main/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetails.java +++ b/cas/src/main/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetails.java @@ -61,6 +61,7 @@ final class DefaultServiceAuthenticationDetails extends WebAuthenticationDetails * Returns the current URL minus the artifact parameter and its value, if present. * @see org.springframework.security.cas.web.authentication.ServiceAuthenticationDetails#getServiceUrl() */ + @Override public String getServiceUrl() { return this.serviceUrl; } diff --git a/cas/src/main/java/org/springframework/security/cas/web/authentication/ServiceAuthenticationDetailsSource.java b/cas/src/main/java/org/springframework/security/cas/web/authentication/ServiceAuthenticationDetailsSource.java index 4e8a777fa1..5875b587e3 100644 --- a/cas/src/main/java/org/springframework/security/cas/web/authentication/ServiceAuthenticationDetailsSource.java +++ b/cas/src/main/java/org/springframework/security/cas/web/authentication/ServiceAuthenticationDetailsSource.java @@ -68,6 +68,7 @@ public class ServiceAuthenticationDetailsSource * @return the {@code ServiceAuthenticationDetails} containing information about the * current request */ + @Override public ServiceAuthenticationDetails buildDetails(HttpServletRequest context) { try { return new DefaultServiceAuthenticationDetails(this.serviceProperties.getService(), context, diff --git a/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationProviderTests.java b/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationProviderTests.java index b85f6baeb7..60313ef8de 100644 --- a/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationProviderTests.java +++ b/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationProviderTests.java @@ -378,6 +378,7 @@ public class CasAuthenticationProviderTests { private class MockAuthoritiesPopulator implements AuthenticationUserDetailsService { + @Override public UserDetails loadUserDetails(final Authentication token) throws UsernameNotFoundException { return makeUserDetailsFromAuthoritiesPopulator(); } @@ -388,18 +389,22 @@ public class CasAuthenticationProviderTests { private Map cache = new HashMap<>(); + @Override public CasAuthenticationToken getByTicketId(String serviceTicket) { return this.cache.get(serviceTicket); } + @Override public void putTicketInCache(CasAuthenticationToken token) { this.cache.put(token.getCredentials().toString(), token); } + @Override public void removeTicketFromCache(CasAuthenticationToken token) { throw new UnsupportedOperationException("mock method not implemented"); } + @Override public void removeTicketFromCache(String serviceTicket) { throw new UnsupportedOperationException("mock method not implemented"); } @@ -414,6 +419,7 @@ public class CasAuthenticationProviderTests { this.returnTicket = returnTicket; } + @Override public Assertion validate(final String ticket, final String service) { if (this.returnTicket) { return new AssertionImpl("rod"); diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderBuilderSecurityBuilderTests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderBuilderSecurityBuilderTests.java index 915a3187a0..0eefa06350 100644 --- a/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderBuilderSecurityBuilderTests.java +++ b/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderBuilderSecurityBuilderTests.java @@ -79,6 +79,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class DefaultLdapConfig extends BaseLdapProviderConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -102,6 +103,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class GroupRolesConfig extends BaseLdapProviderConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -126,6 +128,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class GroupSearchConfig extends BaseLdapProviderConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -150,6 +153,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class GroupSubtreeSearchConfig extends BaseLdapProviderConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -174,6 +178,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class RolePrefixConfig extends BaseLdapProviderConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -197,6 +202,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class BindAuthenticationConfig extends BaseLdapServerConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -222,6 +228,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { @EnableWebSecurity static class PasswordEncoderConfig extends BaseLdapServerConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -283,6 +290,7 @@ public class LdapAuthenticationProviderBuilderSecurityBuilderTests { return auth.build(); } + @Override abstract protected void configure(AuthenticationManagerBuilder auth) throws Exception; } diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderConfigurerTests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderConfigurerTests.java index d634ac6f85..cf9f64f7c0 100644 --- a/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderConfigurerTests.java +++ b/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderConfigurerTests.java @@ -86,6 +86,7 @@ public class LdapAuthenticationProviderConfigurerTests { @EnableWebSecurity static class MultiLdapAuthenticationProvidersConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -106,6 +107,7 @@ public class LdapAuthenticationProviderConfigurerTests { @EnableWebSecurity static class MultiLdapWithCustomRolePrefixAuthenticationProvidersConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -146,6 +148,7 @@ public class LdapAuthenticationProviderConfigurerTests { @EnableWebSecurity static class GroupSubtreeSearchConfig extends BaseLdapProviderConfig { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/NamespaceLdapAuthenticationProviderTestsConfigs.java b/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/NamespaceLdapAuthenticationProviderTestsConfigs.java index 7a1959f23e..6b07c6fa3d 100644 --- a/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/NamespaceLdapAuthenticationProviderTestsConfigs.java +++ b/config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/NamespaceLdapAuthenticationProviderTestsConfigs.java @@ -31,6 +31,7 @@ public class NamespaceLdapAuthenticationProviderTestsConfigs { @EnableWebSecurity static class LdapAuthenticationProviderConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -45,6 +46,7 @@ public class NamespaceLdapAuthenticationProviderTestsConfigs { @EnableWebSecurity static class CustomLdapAuthenticationProviderConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -76,6 +78,7 @@ public class NamespaceLdapAuthenticationProviderTestsConfigs { static LdapAuthoritiesPopulator LAP; + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -90,6 +93,7 @@ public class NamespaceLdapAuthenticationProviderTestsConfigs { @EnableWebSecurity static class PasswordCompareLdapConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/main/java/org/springframework/security/config/DebugBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/DebugBeanDefinitionParser.java index 3cf8571f40..475c9b275b 100644 --- a/config/src/main/java/org/springframework/security/config/DebugBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/DebugBeanDefinitionParser.java @@ -28,6 +28,7 @@ import org.springframework.security.config.debug.SecurityDebugBeanFactoryPostPro */ public class DebugBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { RootBeanDefinition debugPP = new RootBeanDefinition(SecurityDebugBeanFactoryPostProcessor.class); parserContext.getReaderContext().registerWithGeneratedName(debugPP); diff --git a/config/src/main/java/org/springframework/security/config/SecurityNamespaceHandler.java b/config/src/main/java/org/springframework/security/config/SecurityNamespaceHandler.java index 9de6be2efb..00f06674f3 100644 --- a/config/src/main/java/org/springframework/security/config/SecurityNamespaceHandler.java +++ b/config/src/main/java/org/springframework/security/config/SecurityNamespaceHandler.java @@ -91,6 +91,7 @@ public final class SecurityNamespaceHandler implements NamespaceHandler { } } + @Override public BeanDefinition parse(Element element, ParserContext pc) { if (!namespaceMatchesVersion(element)) { pc.getReaderContext().fatal( @@ -121,6 +122,7 @@ public final class SecurityNamespaceHandler implements NamespaceHandler { return parser.parse(element, pc); } + @Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext pc) { String name = pc.getDelegate().getLocalName(node); @@ -165,6 +167,7 @@ public final class SecurityNamespaceHandler implements NamespaceHandler { } } + @Override public void init() { loadParsers(); } diff --git a/config/src/main/java/org/springframework/security/config/annotation/AbstractSecurityBuilder.java b/config/src/main/java/org/springframework/security/config/annotation/AbstractSecurityBuilder.java index afaeebd92a..bc8aa3d53f 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/AbstractSecurityBuilder.java +++ b/config/src/main/java/org/springframework/security/config/annotation/AbstractSecurityBuilder.java @@ -36,6 +36,7 @@ public abstract class AbstractSecurityBuilder implements SecurityBuilder { * * @see org.springframework.security.config.annotation.SecurityBuilder#build() */ + @Override public final O build() throws Exception { if (this.building.compareAndSet(false, true)) { this.object = doBuild(); diff --git a/config/src/main/java/org/springframework/security/config/annotation/SecurityConfigurerAdapter.java b/config/src/main/java/org/springframework/security/config/annotation/SecurityConfigurerAdapter.java index befa941eeb..4d690a1324 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/SecurityConfigurerAdapter.java +++ b/config/src/main/java/org/springframework/security/config/annotation/SecurityConfigurerAdapter.java @@ -39,9 +39,11 @@ public abstract class SecurityConfigurerAdapter> private CompositeObjectPostProcessor objectPostProcessor = new CompositeObjectPostProcessor(); + @Override public void init(B builder) throws Exception { } + @Override public void configure(B builder) throws Exception { } @@ -106,6 +108,7 @@ public abstract class SecurityConfigurerAdapter> private List> postProcessors = new ArrayList<>(); + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public Object postProcess(Object object) { for (ObjectPostProcessor opp : this.postProcessors) { diff --git a/config/src/main/java/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.java b/config/src/main/java/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.java index a4080c2f8c..33c65e45fb 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.java +++ b/config/src/main/java/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.java @@ -212,6 +212,7 @@ public class AuthenticationManagerBuilder * @return a {@link AuthenticationManagerBuilder} to allow further authentication to * be provided to the {@link AuthenticationManagerBuilder} */ + @Override public AuthenticationManagerBuilder authenticationProvider(AuthenticationProvider authenticationProvider) { this.authenticationProviders.add(authenticationProvider); return this; diff --git a/config/src/main/java/org/springframework/security/config/annotation/authentication/configuration/GlobalAuthenticationConfigurerAdapter.java b/config/src/main/java/org/springframework/security/config/annotation/authentication/configuration/GlobalAuthenticationConfigurerAdapter.java index 4d2ed79e9b..8d28317fe1 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/authentication/configuration/GlobalAuthenticationConfigurerAdapter.java +++ b/config/src/main/java/org/springframework/security/config/annotation/authentication/configuration/GlobalAuthenticationConfigurerAdapter.java @@ -33,9 +33,11 @@ import org.springframework.security.config.annotation.authentication.builders.Au public abstract class GlobalAuthenticationConfigurerAdapter implements SecurityConfigurer { + @Override public void init(AuthenticationManagerBuilder auth) throws Exception { } + @Override public void configure(AuthenticationManagerBuilder auth) throws Exception { } diff --git a/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/userdetails/AbstractDaoAuthenticationConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/userdetails/AbstractDaoAuthenticationConfigurer.java index e0cf9686f1..11f44fa656 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/userdetails/AbstractDaoAuthenticationConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/userdetails/AbstractDaoAuthenticationConfigurer.java @@ -91,6 +91,7 @@ abstract class AbstractDaoAuthenticationConfigurer T postProcess(T object) { if (object == null) { @@ -101,6 +102,7 @@ final class AutowireBeanFactoryObjectPostProcessor * * @see org.springframework.beans.factory.DisposableBean#destroy() */ + @Override public void destroy() { for (DisposableBean disposable : this.disposableBeans) { try { diff --git a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityAspectJAutoProxyRegistrar.java b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityAspectJAutoProxyRegistrar.java index 0d2705d6f5..7ddce8b636 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityAspectJAutoProxyRegistrar.java +++ b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityAspectJAutoProxyRegistrar.java @@ -43,6 +43,7 @@ class GlobalMethodSecurityAspectJAutoProxyRegistrar implements ImportBeanDefinit * of the @{@link EnableGlobalMethodSecurity#proxyTargetClass()} attribute on the * importing {@code @Configuration} class. */ + @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { BeanDefinition interceptor = registry.getBeanDefinition("methodSecurityInterceptor"); diff --git a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration.java b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration.java index d1f447f54d..fea0c10fd5 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration.java +++ b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration.java @@ -91,6 +91,7 @@ public class GlobalMethodSecurityConfiguration implements ImportAware, SmartInit private static final Log logger = LogFactory.getLog(GlobalMethodSecurityConfiguration.class); private ObjectPostProcessor objectPostProcessor = new ObjectPostProcessor() { + @Override public T postProcess(T object) { throw new IllegalStateException(ObjectPostProcessor.class.getName() + " is a required bean. Ensure you have used @" + EnableGlobalMethodSecurity.class.getName()); @@ -402,6 +403,7 @@ public class GlobalMethodSecurityConfiguration implements ImportAware, SmartInit * Obtains the attributes from {@link EnableGlobalMethodSecurity} if this class was * imported using the {@link EnableGlobalMethodSecurity} annotation. */ + @Override public final void setImportMetadata(AnnotationMetadata importMetadata) { Map annotationAttributes = importMetadata .getAnnotationAttributes(EnableGlobalMethodSecurity.class.getName()); diff --git a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecuritySelector.java b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecuritySelector.java index da6bf1537f..065e0306e7 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecuritySelector.java +++ b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecuritySelector.java @@ -36,6 +36,7 @@ import org.springframework.util.ClassUtils; */ final class GlobalMethodSecuritySelector implements ImportSelector { + @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { Class annoType = EnableGlobalMethodSecurity.class; Map annotationAttributes = importingClassMetadata.getAnnotationAttributes(annoType.getName(), diff --git a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/MethodSecurityMetadataSourceAdvisorRegistrar.java b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/MethodSecurityMetadataSourceAdvisorRegistrar.java index a000487b95..8ffdb284b0 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/method/configuration/MethodSecurityMetadataSourceAdvisorRegistrar.java +++ b/config/src/main/java/org/springframework/security/config/annotation/method/configuration/MethodSecurityMetadataSourceAdvisorRegistrar.java @@ -39,6 +39,7 @@ class MethodSecurityMetadataSourceAdvisorRegistrar implements ImportBeanDefiniti * of the @{@link EnableGlobalMethodSecurity#proxyTargetClass()} attribute on the * importing {@code @Configuration} class. */ + @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { BeanDefinitionBuilder advisor = BeanDefinitionBuilder diff --git a/config/src/main/java/org/springframework/security/config/annotation/rsocket/PayloadInterceptorOrder.java b/config/src/main/java/org/springframework/security/config/annotation/rsocket/PayloadInterceptorOrder.java index f21d5b71eb..4577301714 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/rsocket/PayloadInterceptorOrder.java +++ b/config/src/main/java/org/springframework/security/config/annotation/rsocket/PayloadInterceptorOrder.java @@ -63,6 +63,7 @@ public enum PayloadInterceptorOrder implements Ordered { this.order = ordinal() * INTERVAL; } + @Override public int getOrder() { return this.order; } diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterComparator.java b/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterComparator.java index 85a5585ebe..bce769dd97 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterComparator.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterComparator.java @@ -112,6 +112,7 @@ final class FilterComparator implements Comparator, Serializable { put(SwitchUserFilter.class, order.next()); } + @Override public int compare(Filter lhs, Filter rhs) { Integer left = getOrder(lhs.getClass()); Integer right = getOrder(rhs.getClass()); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java b/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java index 7c8ceeabc7..2b5825bcb4 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java @@ -239,6 +239,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilderspring-security-oauth2. * @see OpenIDLoginConfigurer */ + @Deprecated public OpenIDLoginConfigurer openidLogin() throws Exception { return getOrApply(new OpenIDLoginConfigurer<>()); } @@ -362,6 +363,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilderspring-security-oauth2. * @see OpenIDLoginConfigurer */ + @Deprecated public HttpSecurity openidLogin(Customizer> openidLoginCustomizer) throws Exception { openidLoginCustomizer.customize(getOrApply(new OpenIDLoginConfigurer<>())); @@ -2507,6 +2509,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilder void setSharedObject(Class sharedType, C object) { super.setSharedObject(sharedType, object); } @@ -2529,6 +2532,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilder afterFilter) { this.comparator.registerAfter(filter.getClass(), afterFilter); return addFilter(filter); @@ -2567,6 +2573,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilder beforeFilter) { this.comparator.registerBefore(filter.getClass(), beforeFilter); return addFilter(filter); @@ -2579,6 +2586,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilder filterClass = filter.getClass(); if (!this.comparator.isRegistered(filterClass)) { diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector.java b/config/src/main/java/org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector.java index 93aa8279c5..2550cb8cc8 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector.java @@ -35,6 +35,7 @@ class SpringWebMvcImportSelector implements ImportSelector { * @see org.springframework.context.annotation.ImportSelector#selectImports(org. * springframework .core.type.AnnotationMetadata) */ + @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { boolean webmvcPresent = ClassUtils.isPresent("org.springframework.web.servlet.DispatcherServlet", getClass().getClassLoader()); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.java b/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.java index 73c62f6896..39c0a279bc 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.java @@ -227,6 +227,7 @@ public class WebSecurityConfiguration implements ImportAware, BeanClassLoaderAwa * @see org.springframework.context.annotation.ImportAware#setImportMetadata(org. * springframework.core.type.AnnotationMetadata) */ + @Override public void setImportMetadata(AnnotationMetadata importMetadata) { Map enableWebSecurityAttrMap = importMetadata .getAnnotationAttributes(EnableWebSecurity.class.getName()); @@ -244,6 +245,7 @@ public class WebSecurityConfiguration implements ImportAware, BeanClassLoaderAwa * org.springframework.beans.factory.BeanClassLoaderAware#setBeanClassLoader(java. * lang.ClassLoader) */ + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.java b/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.java index 27404b9486..e6948d70fe 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.java @@ -100,6 +100,7 @@ public abstract class WebSecurityConfigurerAdapter implements WebSecurityConfigu private ContentNegotiationStrategy contentNegotiationStrategy = new HeaderContentNegotiationStrategy(); private ObjectPostProcessor objectPostProcessor = new ObjectPostProcessor() { + @Override public T postProcess(T object) { throw new IllegalStateException(ObjectPostProcessor.class.getName() + " is a required bean. Ensure you have used @EnableWebSecurity and @Configuration"); @@ -312,6 +313,7 @@ public abstract class WebSecurityConfigurerAdapter implements WebSecurityConfigu return new UserDetailsServiceDelegator(Arrays.asList(this.localConfigureAuthenticationBldr, globalAuthBuilder)); } + @Override public void init(final WebSecurity web) throws Exception { final HttpSecurity http = getHttp(); web.addSecurityFilterChainBuilder(http).postBuildAction(() -> { @@ -331,6 +333,7 @@ public abstract class WebSecurityConfigurerAdapter implements WebSecurityConfigu * {@link #configure(HttpSecurity)} and the {@link HttpSecurity#authorizeRequests} * configuration method. */ + @Override public void configure(WebSecurity web) throws Exception { } @@ -461,6 +464,7 @@ public abstract class WebSecurityConfigurerAdapter implements WebSecurityConfigu this.delegateBuilders = delegateBuilders; } + @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { if (this.delegate != null) { return this.delegate.loadUserByUsername(username); @@ -514,6 +518,7 @@ public abstract class WebSecurityConfigurerAdapter implements WebSecurityConfigu this.delegateBuilder = delegateBuilder; } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { if (this.delegate != null) { return this.delegate.authenticate(authentication); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistry.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistry.java index cc3d26f1bd..f5e6f52d97 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistry.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistry.java @@ -69,6 +69,7 @@ public abstract class AbstractConfigAttributeRequestMatcherRegistry extends A * @return the chained Object for the subclass which allows association of something * else to the {@link RequestMatcher} */ + @Override protected final C chainRequestMatchers(List requestMatchers) { this.unmappedMatchers = requestMatchers; return chainRequestMatchersInternal(requestMatchers); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/PermitAllSupport.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/PermitAllSupport.java index 0d8a6cecf2..81a86a23a3 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/PermitAllSupport.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/PermitAllSupport.java @@ -64,6 +64,7 @@ final class PermitAllSupport { this.processUrl = processUrl; } + @Override public boolean matches(HttpServletRequest request) { String uri = request.getRequestURI(); String query = request.getQueryString(); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationConfigurer.java index 3c9458ff72..b9a47da77e 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationConfigurer.java @@ -108,6 +108,7 @@ public final class UrlAuthorizationConfigurer> * @param objectPostProcessor * @return the {@link UrlAuthorizationConfigurer} for further customizations */ + @Override public UrlAuthorizationConfigurer withObjectPostProcessor(ObjectPostProcessor objectPostProcessor) { addObjectPostProcessor(objectPostProcessor); return this; diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java index 19f0fd4cdd..7d304bb37e 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java @@ -124,6 +124,7 @@ import org.springframework.security.web.util.matcher.RequestMatcher; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public final class OpenIDLoginConfigurer> extends AbstractAuthenticationFilterConfigurer, OpenIDAuthenticationFilter> { diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/messaging/MessageSecurityMetadataSourceRegistry.java b/config/src/main/java/org/springframework/security/config/annotation/web/messaging/MessageSecurityMetadataSourceRegistry.java index ecf90a4c93..4507c9d845 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/messaging/MessageSecurityMetadataSourceRegistry.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/messaging/MessageSecurityMetadataSourceRegistry.java @@ -417,6 +417,7 @@ public class MessageSecurityMetadataSourceRegistry { this.matcher = matcher; } + @Override public MessageMatcher build() { return this.matcher; } @@ -434,6 +435,7 @@ public class MessageSecurityMetadataSourceRegistry { this.type = type; } + @Override public MessageMatcher build() { if (this.type == null) { return new SimpDestinationMessageMatcher(this.pattern, @@ -462,30 +464,37 @@ public class MessageSecurityMetadataSourceRegistry { private PathMatcher delegate = new AntPathMatcher(); + @Override public boolean isPattern(String path) { return this.delegate.isPattern(path); } + @Override public boolean match(String pattern, String path) { return this.delegate.match(pattern, path); } + @Override public boolean matchStart(String pattern, String path) { return this.delegate.matchStart(pattern, path); } + @Override public String extractPathWithinPattern(String pattern, String path) { return this.delegate.extractPathWithinPattern(pattern, path); } + @Override public Map extractUriTemplateVariables(String pattern, String path) { return this.delegate.extractUriTemplateVariables(pattern, path); } + @Override public Comparator getPatternComparator(String path) { return this.delegate.getPatternComparator(path); } + @Override public String combine(String pattern1, String pattern2) { return this.delegate.combine(pattern1, pattern2); } diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/servlet/configuration/WebMvcSecurityConfiguration.java b/config/src/main/java/org/springframework/security/config/annotation/web/servlet/configuration/WebMvcSecurityConfiguration.java index f8bd8f0d65..aaf439ba77 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/servlet/configuration/WebMvcSecurityConfiguration.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/servlet/configuration/WebMvcSecurityConfiguration.java @@ -40,6 +40,7 @@ import org.springframework.web.servlet.support.RequestDataValueProcessor; * @author Rob Winch * @since 3.2 */ +@Deprecated @Configuration(proxyBeanMethods = false) @EnableWebSecurity public class WebMvcSecurityConfiguration implements WebMvcConfigurer { diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurer.java index 1e70040bd7..25bec814d6 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurer.java @@ -93,6 +93,7 @@ public abstract class AbstractSecurityWebSocketMessageBrokerConfigurer extends A private ApplicationContext context; + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { } @@ -233,6 +234,7 @@ public abstract class AbstractSecurityWebSocketMessageBrokerConfigurer extends A return this.expressionHandler; } + @Override public void afterSingletonsInstantiated() { if (sameOriginDisabled()) { return; diff --git a/config/src/main/java/org/springframework/security/config/authentication/AbstractUserDetailsServiceBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/authentication/AbstractUserDetailsServiceBeanDefinitionParser.java index dd52d00a72..a8ba070ba1 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/AbstractUserDetailsServiceBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/authentication/AbstractUserDetailsServiceBeanDefinitionParser.java @@ -43,6 +43,7 @@ public abstract class AbstractUserDetailsServiceBeanDefinitionParser implements protected abstract void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder); + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(getBeanClassName(element)); diff --git a/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParser.java index ac3ed0c31e..0f0cf34043 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParser.java @@ -56,6 +56,7 @@ public class AuthenticationManagerBeanDefinitionParser implements BeanDefinition private static final String ATT_ERASE_CREDENTIALS = "erase-credentials"; + @Override public BeanDefinition parse(Element element, ParserContext pc) { String id = element.getAttribute("id"); @@ -148,10 +149,12 @@ public class AuthenticationManagerBeanDefinitionParser implements BeanDefinition */ public static final class NullAuthenticationProvider implements AuthenticationProvider { + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { return null; } + @Override public boolean supports(Class authentication) { return false; } diff --git a/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerFactoryBean.java b/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerFactoryBean.java index 0a64abf68c..6baac6525a 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerFactoryBean.java +++ b/config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerFactoryBean.java @@ -46,6 +46,7 @@ public class AuthenticationManagerFactoryBean implements FactoryBean elements)? Alternatively you can use the " + "authentication-manager-ref attribute on your and elements."; + @Override public AuthenticationManager getObject() throws Exception { try { return (AuthenticationManager) this.bf.getBean(BeanIds.AUTHENTICATION_MANAGER); @@ -71,14 +72,17 @@ public class AuthenticationManagerFactoryBean implements FactoryBean getObjectType() { return ProviderManager.class; } + @Override public boolean isSingleton() { return true; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.bf = beanFactory; } diff --git a/config/src/main/java/org/springframework/security/config/authentication/AuthenticationProviderBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/authentication/AuthenticationProviderBeanDefinitionParser.java index 710d29fb8e..76b9a69fa2 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/AuthenticationProviderBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/authentication/AuthenticationProviderBeanDefinitionParser.java @@ -38,6 +38,7 @@ public class AuthenticationProviderBeanDefinitionParser implements BeanDefinitio private static final String ATT_USER_DETAILS_REF = "user-service-ref"; + @Override public BeanDefinition parse(Element element, ParserContext pc) { RootBeanDefinition authProvider = new RootBeanDefinition(DaoAuthenticationProvider.class); authProvider.setSource(pc.extractSource(element)); diff --git a/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java index 6d44e2219a..017a6f2d27 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java @@ -33,10 +33,12 @@ public class JdbcUserServiceBeanDefinitionParser extends AbstractUserDetailsServ static final String ATT_GROUP_AUTHORITIES_QUERY = "group-authorities-by-username-query"; static final String ATT_ROLE_PREFIX = "role-prefix"; + @Override protected String getBeanClassName(Element element) { return "org.springframework.security.provisioning.JdbcUserDetailsManager"; } + @Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String dataSource = element.getAttribute(ATT_DATA_SOURCE); diff --git a/config/src/main/java/org/springframework/security/config/authentication/UserServiceBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/authentication/UserServiceBeanDefinitionParser.java index d9b806c360..f6b4a1ca56 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/UserServiceBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/authentication/UserServiceBeanDefinitionParser.java @@ -51,10 +51,12 @@ public class UserServiceBeanDefinitionParser extends AbstractUserDetailsServiceB private SecureRandom random; + @Override protected String getBeanClassName(Element element) { return InMemoryUserDetailsManager.class.getName(); } + @Override @SuppressWarnings("unchecked") protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String userProperties = element.getAttribute(ATT_PROPERTIES); diff --git a/config/src/main/java/org/springframework/security/config/debug/SecurityDebugBeanFactoryPostProcessor.java b/config/src/main/java/org/springframework/security/config/debug/SecurityDebugBeanFactoryPostProcessor.java index 23b00c6e45..6f142e4e58 100644 --- a/config/src/main/java/org/springframework/security/config/debug/SecurityDebugBeanFactoryPostProcessor.java +++ b/config/src/main/java/org/springframework/security/config/debug/SecurityDebugBeanFactoryPostProcessor.java @@ -35,6 +35,7 @@ public class SecurityDebugBeanFactoryPostProcessor implements BeanDefinitionRegi private final Log logger = LogFactory.getLog(getClass()); + @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { this.logger.warn("\n\n" + "********************************************************************\n" + "********** Security debugging is enabled. *************\n" @@ -55,6 +56,7 @@ public class SecurityDebugBeanFactoryPostProcessor implements BeanDefinitionRegi } } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { } diff --git a/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java b/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java index bf1fc0692d..4063f5ac47 100644 --- a/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java +++ b/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java @@ -457,6 +457,7 @@ final class AuthenticationConfigBuilder { * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ + @Deprecated private RootBeanDefinition parseOpenIDFilter(BeanReference sessionStrategy, Element openIDLoginElt) { RootBeanDefinition openIDFilter; FormLoginBeanDefinitionParser parser = new FormLoginBeanDefinitionParser("/login/openid", null, diff --git a/config/src/main/java/org/springframework/security/config/http/DefaultFilterChainValidator.java b/config/src/main/java/org/springframework/security/config/http/DefaultFilterChainValidator.java index 360c1dfd04..2361a5a168 100644 --- a/config/src/main/java/org/springframework/security/config/http/DefaultFilterChainValidator.java +++ b/config/src/main/java/org/springframework/security/config/http/DefaultFilterChainValidator.java @@ -51,6 +51,7 @@ public class DefaultFilterChainValidator implements FilterChainProxy.FilterChain private final Log logger = LogFactory.getLog(getClass()); + @Override public void validate(FilterChainProxy fcp) { for (SecurityFilterChain filterChain : fcp.getFilterChains()) { checkLoginPageIsntProtected(fcp, filterChain.getFilters()); diff --git a/config/src/main/java/org/springframework/security/config/http/FilterChainBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/FilterChainBeanDefinitionParser.java index e547ce9b2f..b6919d36c8 100644 --- a/config/src/main/java/org/springframework/security/config/http/FilterChainBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/FilterChainBeanDefinitionParser.java @@ -36,6 +36,7 @@ public class FilterChainBeanDefinitionParser implements BeanDefinitionParser { private static final String ATT_REQUEST_MATCHER_REF = "request-matcher-ref"; + @Override public BeanDefinition parse(Element elt, ParserContext pc) { MatcherType matcherType = MatcherType.fromElement(elt); String path = elt.getAttribute(HttpSecurityBeanDefinitionParser.ATT_PATH_PATTERN); diff --git a/config/src/main/java/org/springframework/security/config/http/FilterChainMapBeanDefinitionDecorator.java b/config/src/main/java/org/springframework/security/config/http/FilterChainMapBeanDefinitionDecorator.java index 076117ca8c..9fd10c482f 100644 --- a/config/src/main/java/org/springframework/security/config/http/FilterChainMapBeanDefinitionDecorator.java +++ b/config/src/main/java/org/springframework/security/config/http/FilterChainMapBeanDefinitionDecorator.java @@ -40,6 +40,7 @@ import org.springframework.util.xml.DomUtils; */ public class FilterChainMapBeanDefinitionDecorator implements BeanDefinitionDecorator { + @Override @SuppressWarnings("unchecked") public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder holder, ParserContext parserContext) { BeanDefinition filterChainProxy = holder.getBeanDefinition(); diff --git a/config/src/main/java/org/springframework/security/config/http/FilterInvocationSecurityMetadataSourceParser.java b/config/src/main/java/org/springframework/security/config/http/FilterInvocationSecurityMetadataSourceParser.java index d26e26dfb8..440913add9 100644 --- a/config/src/main/java/org/springframework/security/config/http/FilterInvocationSecurityMetadataSourceParser.java +++ b/config/src/main/java/org/springframework/security/config/http/FilterInvocationSecurityMetadataSourceParser.java @@ -62,6 +62,7 @@ public class FilterInvocationSecurityMetadataSourceParser implements BeanDefinit private static final Log logger = LogFactory.getLog(FilterInvocationSecurityMetadataSourceParser.class); + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { List interceptUrls = DomUtils.getChildElementsByTagName(element, Elements.INTERCEPT_URL); @@ -223,6 +224,7 @@ public class FilterInvocationSecurityMetadataSourceParser implements BeanDefinit private DefaultWebSecurityExpressionHandler handler = new DefaultWebSecurityExpressionHandler(); + @Override public DefaultWebSecurityExpressionHandler getBean() { this.handler.setDefaultRolePrefix(this.rolePrefix); return this.handler; diff --git a/config/src/main/java/org/springframework/security/config/http/HandlerMappingIntrospectorFactoryBean.java b/config/src/main/java/org/springframework/security/config/http/HandlerMappingIntrospectorFactoryBean.java index d8f6a3c98c..20fc6bcedd 100644 --- a/config/src/main/java/org/springframework/security/config/http/HandlerMappingIntrospectorFactoryBean.java +++ b/config/src/main/java/org/springframework/security/config/http/HandlerMappingIntrospectorFactoryBean.java @@ -38,6 +38,7 @@ class HandlerMappingIntrospectorFactoryBean private ApplicationContext context; + @Override public HandlerMappingIntrospector getObject() { if (!this.context.containsBean(HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME)) { throw new NoSuchBeanDefinitionException(HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME, "A Bean named " diff --git a/config/src/main/java/org/springframework/security/config/http/HeadersBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/HeadersBeanDefinitionParser.java index 332e83199b..d3ff5e4ab1 100644 --- a/config/src/main/java/org/springframework/security/config/http/HeadersBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/HeadersBeanDefinitionParser.java @@ -123,6 +123,7 @@ public class HeadersBeanDefinitionParser implements BeanDefinitionParser { private ManagedList headerWriters; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { this.headerWriters = new ManagedList<>(); diff --git a/config/src/main/java/org/springframework/security/config/http/HttpConfigurationBuilder.java b/config/src/main/java/org/springframework/security/config/http/HttpConfigurationBuilder.java index babb529960..78a7e50bc1 100644 --- a/config/src/main/java/org/springframework/security/config/http/HttpConfigurationBuilder.java +++ b/config/src/main/java/org/springframework/security/config/http/HttpConfigurationBuilder.java @@ -855,6 +855,7 @@ class HttpConfigurationBuilder { private RoleVoter voter = new RoleVoter(); + @Override public RoleVoter getBean() { this.voter.setRolePrefix(this.rolePrefix); return this.voter; @@ -867,6 +868,7 @@ class HttpConfigurationBuilder { private SecurityContextHolderAwareRequestFilter filter = new SecurityContextHolderAwareRequestFilter(); + @Override public SecurityContextHolderAwareRequestFilter getBean() { this.filter.setRolePrefix(this.rolePrefix); return this.filter; diff --git a/config/src/main/java/org/springframework/security/config/http/HttpFirewallBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/HttpFirewallBeanDefinitionParser.java index eced6f2405..05604572fb 100644 --- a/config/src/main/java/org/springframework/security/config/http/HttpFirewallBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/HttpFirewallBeanDefinitionParser.java @@ -32,6 +32,7 @@ import org.springframework.util.StringUtils; */ public class HttpFirewallBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext pc) { String ref = element.getAttribute("ref"); diff --git a/config/src/main/java/org/springframework/security/config/http/LogoutBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/LogoutBeanDefinitionParser.java index 55ec0df211..f6fea7df34 100644 --- a/config/src/main/java/org/springframework/security/config/http/LogoutBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/LogoutBeanDefinitionParser.java @@ -64,6 +64,7 @@ class LogoutBeanDefinitionParser implements BeanDefinitionParser { } } + @Override public BeanDefinition parse(Element element, ParserContext pc) { String logoutUrl = null; String successHandlerRef = null; diff --git a/config/src/main/java/org/springframework/security/config/http/PortMappingsBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/PortMappingsBeanDefinitionParser.java index 8026a9526a..3db5b7b60e 100644 --- a/config/src/main/java/org/springframework/security/config/http/PortMappingsBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/PortMappingsBeanDefinitionParser.java @@ -42,6 +42,7 @@ class PortMappingsBeanDefinitionParser implements BeanDefinitionParser { public static final String ATT_HTTPS_PORT = "https"; + @Override @SuppressWarnings("unchecked") public BeanDefinition parse(Element element, ParserContext parserContext) { RootBeanDefinition portMapper = new RootBeanDefinition(PortMapperImpl.class); diff --git a/config/src/main/java/org/springframework/security/config/http/RememberMeBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/RememberMeBeanDefinitionParser.java index 82ae2cf36e..3e17b634d1 100644 --- a/config/src/main/java/org/springframework/security/config/http/RememberMeBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/RememberMeBeanDefinitionParser.java @@ -67,6 +67,7 @@ class RememberMeBeanDefinitionParser implements BeanDefinitionParser { this.authenticationManager = authenticationManager; } + @Override public BeanDefinition parse(Element element, ParserContext pc) { CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), pc.extractSource(element)); diff --git a/config/src/main/java/org/springframework/security/config/http/UserDetailsServiceFactoryBean.java b/config/src/main/java/org/springframework/security/config/http/UserDetailsServiceFactoryBean.java index c39b7ba054..9924735ee3 100644 --- a/config/src/main/java/org/springframework/security/config/http/UserDetailsServiceFactoryBean.java +++ b/config/src/main/java/org/springframework/security/config/http/UserDetailsServiceFactoryBean.java @@ -126,6 +126,7 @@ public class UserDetailsServiceFactoryBean implements ApplicationContextAware { return (UserDetailsService) beans.values().toArray()[0]; } + @Override public void setApplicationContext(ApplicationContext beanFactory) throws BeansException { this.beanFactory = beanFactory; } diff --git a/config/src/main/java/org/springframework/security/config/ldap/ContextSourceSettingPostProcessor.java b/config/src/main/java/org/springframework/security/config/ldap/ContextSourceSettingPostProcessor.java index 06566efae8..33abea6960 100644 --- a/config/src/main/java/org/springframework/security/config/ldap/ContextSourceSettingPostProcessor.java +++ b/config/src/main/java/org/springframework/security/config/ldap/ContextSourceSettingPostProcessor.java @@ -44,6 +44,7 @@ class ContextSourceSettingPostProcessor implements BeanFactoryPostProcessor, Ord */ private boolean defaultNameRequired; + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory bf) throws BeansException { Class contextSourceClass; @@ -80,6 +81,7 @@ class ContextSourceSettingPostProcessor implements BeanFactoryPostProcessor, Ord this.defaultNameRequired = defaultNameRequired; } + @Override public int getOrder() { return LOWEST_PRECEDENCE; } diff --git a/config/src/main/java/org/springframework/security/config/ldap/LdapProviderBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/ldap/LdapProviderBeanDefinitionParser.java index cce4c06c39..884b239085 100644 --- a/config/src/main/java/org/springframework/security/config/ldap/LdapProviderBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/ldap/LdapProviderBeanDefinitionParser.java @@ -51,6 +51,7 @@ public class LdapProviderBeanDefinitionParser implements BeanDefinitionParser { static final String BIND_AUTH_CLASS = "org.springframework.security.ldap.authentication.BindAuthenticator"; static final String PASSWD_AUTH_CLASS = "org.springframework.security.ldap.authentication.PasswordComparisonAuthenticator"; + @Override public BeanDefinition parse(Element elt, ParserContext parserContext) { RuntimeBeanReference contextSource = LdapUserServiceBeanDefinitionParser.parseServerReference(elt, parserContext); diff --git a/config/src/main/java/org/springframework/security/config/ldap/LdapServerBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/ldap/LdapServerBeanDefinitionParser.java index 0ca5bb99ae..3437a1bb5c 100644 --- a/config/src/main/java/org/springframework/security/config/ldap/LdapServerBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/ldap/LdapServerBeanDefinitionParser.java @@ -85,6 +85,7 @@ public class LdapServerBeanDefinitionParser implements BeanDefinitionParser { private static final String UNBOUNDID_CONTAINER_CLASSNAME = "org.springframework.security.ldap.server.UnboundIdContainer"; + @Override public BeanDefinition parse(Element elt, ParserContext parserContext) { String url = elt.getAttribute(ATT_URL); diff --git a/config/src/main/java/org/springframework/security/config/ldap/LdapUserServiceBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/ldap/LdapUserServiceBeanDefinitionParser.java index 821875164b..d0512dccd5 100644 --- a/config/src/main/java/org/springframework/security/config/ldap/LdapUserServiceBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/ldap/LdapUserServiceBeanDefinitionParser.java @@ -68,10 +68,12 @@ public class LdapUserServiceBeanDefinitionParser extends AbstractUserDetailsServ public static final String LDAP_AUTHORITIES_POPULATOR_CLASS = "org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator"; + @Override protected String getBeanClassName(Element element) { return "org.springframework.security.ldap.userdetails.LdapUserDetailsService"; } + @Override protected void doParse(Element elt, ParserContext parserContext, BeanDefinitionBuilder builder) { if (!StringUtils.hasText(elt.getAttribute(ATT_USER_SEARCH_FILTER))) { diff --git a/config/src/main/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParser.java index 3fe5515568..45f54e5de7 100644 --- a/config/src/main/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParser.java @@ -123,6 +123,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP private static final String ATT_META_DATA_SOURCE_REF = "metadata-source-ref"; + @Override public BeanDefinition parse(Element element, ParserContext pc) { CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), pc.extractSource(element)); @@ -485,6 +486,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP this.authMgrBean = StringUtils.hasText(authMgrBean) ? authMgrBean : BeanIds.AUTHENTICATION_MANAGER; } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { synchronized (this.delegateMonitor) { if (this.delegate == null) { @@ -506,6 +508,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP return this.delegate.authenticate(authentication); } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } @@ -567,6 +570,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP this.beanName = beanName; } + @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { if (!registry.containsBeanDefinition(this.beanName)) { return; @@ -575,6 +579,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP beanDefinition.setLazyInit(true); } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { } diff --git a/config/src/main/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecorator.java b/config/src/main/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecorator.java index 77eade5729..3d7fcb0223 100644 --- a/config/src/main/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecorator.java +++ b/config/src/main/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecorator.java @@ -25,6 +25,7 @@ import org.springframework.aop.config.AbstractInterceptorDrivenBeanDefinitionDec import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinitionHolder; import org.springframework.beans.factory.config.RuntimeBeanReference; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.support.RootBeanDefinition; @@ -47,6 +48,7 @@ public class InterceptMethodsBeanDefinitionDecorator implements BeanDefinitionDe private final BeanDefinitionDecorator delegate = new InternalInterceptMethodsBeanDefinitionDecorator(); + @Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { MethodConfigUtils.registerDefaultMethodAccessManagerIfNecessary(parserContext); @@ -66,12 +68,13 @@ class InternalInterceptMethodsBeanDefinitionDecorator extends AbstractIntercepto private static final String ATT_ACCESS_MGR = "access-decision-manager-ref"; + @Override protected BeanDefinition createInterceptorDefinition(Node node) { Element interceptMethodsElt = (Element) node; BeanDefinitionBuilder interceptor = BeanDefinitionBuilder.rootBeanDefinition(MethodSecurityInterceptor.class); // Default to autowiring to pick up after invocation mgr - interceptor.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE); + interceptor.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); String accessManagerId = interceptMethodsElt.getAttribute(ATT_ACCESS_MGR); diff --git a/config/src/main/java/org/springframework/security/config/method/MethodSecurityMetadataSourceBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/method/MethodSecurityMetadataSourceBeanDefinitionParser.java index 8ae626105d..8cc6322765 100644 --- a/config/src/main/java/org/springframework/security/config/method/MethodSecurityMetadataSourceBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/method/MethodSecurityMetadataSourceBeanDefinitionParser.java @@ -41,6 +41,7 @@ public class MethodSecurityMetadataSourceBeanDefinitionParser extends AbstractBe static final String ATT_METHOD = "method"; static final String ATT_ACCESS = "access"; + @Override public AbstractBeanDefinition parseInternal(Element elt, ParserContext pc) { // Parse the included methods List methods = DomUtils.getChildElementsByTagName(elt, Elements.PROTECT); diff --git a/config/src/main/java/org/springframework/security/config/method/ProtectPointcutPostProcessor.java b/config/src/main/java/org/springframework/security/config/method/ProtectPointcutPostProcessor.java index 59cb2d951b..7d13361387 100644 --- a/config/src/main/java/org/springframework/security/config/method/ProtectPointcutPostProcessor.java +++ b/config/src/main/java/org/springframework/security/config/method/ProtectPointcutPostProcessor.java @@ -99,10 +99,12 @@ final class ProtectPointcutPostProcessor implements BeanPostProcessor { supportedPrimitives); } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (this.processedBeans.contains(beanName)) { // We already have the metadata for this bean diff --git a/config/src/main/java/org/springframework/security/config/websocket/WebSocketMessageBrokerSecurityBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/websocket/WebSocketMessageBrokerSecurityBeanDefinitionParser.java index 17b839be34..234cb459a8 100644 --- a/config/src/main/java/org/springframework/security/config/websocket/WebSocketMessageBrokerSecurityBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/websocket/WebSocketMessageBrokerSecurityBeanDefinitionParser.java @@ -113,6 +113,7 @@ public final class WebSocketMessageBrokerSecurityBeanDefinitionParser implements * @param parserContext * @return the {@link BeanDefinition} */ + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionRegistry registry = parserContext.getRegistry(); XmlReaderContext context = parserContext.getReaderContext(); @@ -234,6 +235,7 @@ public final class WebSocketMessageBrokerSecurityBeanDefinitionParser implements this.sameOriginDisabled = sameOriginDisabled; } + @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { String[] beanNames = registry.getBeanDefinitionNames(); for (String beanName : beanNames) { @@ -307,6 +309,7 @@ public final class WebSocketMessageBrokerSecurityBeanDefinitionParser implements bd.getPropertyValues().add(interceptorPropertyName, interceptors); } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { } @@ -317,30 +320,37 @@ public final class WebSocketMessageBrokerSecurityBeanDefinitionParser implements private PathMatcher delegate = new AntPathMatcher(); + @Override public boolean isPattern(String path) { return this.delegate.isPattern(path); } + @Override public boolean match(String pattern, String path) { return this.delegate.match(pattern, path); } + @Override public boolean matchStart(String pattern, String path) { return this.delegate.matchStart(pattern, path); } + @Override public String extractPathWithinPattern(String pattern, String path) { return this.delegate.extractPathWithinPattern(pattern, path); } + @Override public Map extractUriTemplateVariables(String pattern, String path) { return this.delegate.extractUriTemplateVariables(pattern, path); } + @Override public Comparator getPatternComparator(String path) { return this.delegate.getPatternComparator(path); } + @Override public String combine(String pattern1, String pattern2) { return this.delegate.combine(pattern1, pattern2); } diff --git a/config/src/test/java/org/springframework/security/BeanNameCollectingPostProcessor.java b/config/src/test/java/org/springframework/security/BeanNameCollectingPostProcessor.java index e3d2d5a466..2393f6de90 100644 --- a/config/src/test/java/org/springframework/security/BeanNameCollectingPostProcessor.java +++ b/config/src/test/java/org/springframework/security/BeanNameCollectingPostProcessor.java @@ -30,6 +30,7 @@ public class BeanNameCollectingPostProcessor implements BeanPostProcessor { Set afterInitPostProcessedBeans = new HashSet<>(); + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (beanName != null) { this.beforeInitPostProcessedBeans.add(beanName); @@ -37,6 +38,7 @@ public class BeanNameCollectingPostProcessor implements BeanPostProcessor { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (beanName != null) { this.afterInitPostProcessedBeans.add(beanName); diff --git a/config/src/test/java/org/springframework/security/CollectingAppListener.java b/config/src/test/java/org/springframework/security/CollectingAppListener.java index 0a8140af25..951a939913 100644 --- a/config/src/test/java/org/springframework/security/CollectingAppListener.java +++ b/config/src/test/java/org/springframework/security/CollectingAppListener.java @@ -40,6 +40,7 @@ public class CollectingAppListener implements ApplicationListener { Set authorizationEvents = new HashSet<>(); + @Override public void onApplicationEvent(ApplicationEvent event) { if (event instanceof AbstractAuthenticationEvent) { this.events.add(event); diff --git a/config/src/test/java/org/springframework/security/config/DataSourcePopulator.java b/config/src/test/java/org/springframework/security/config/DataSourcePopulator.java index b14c1c37ad..90e34d3b0b 100644 --- a/config/src/test/java/org/springframework/security/config/DataSourcePopulator.java +++ b/config/src/test/java/org/springframework/security/config/DataSourcePopulator.java @@ -30,6 +30,7 @@ public class DataSourcePopulator implements InitializingBean { JdbcTemplate template; + @Override public void afterPropertiesSet() { Assert.notNull(this.template, "dataSource required"); diff --git a/config/src/test/java/org/springframework/security/config/MockAfterInvocationProvider.java b/config/src/test/java/org/springframework/security/config/MockAfterInvocationProvider.java index 68f71e579c..605c08e34f 100644 --- a/config/src/test/java/org/springframework/security/config/MockAfterInvocationProvider.java +++ b/config/src/test/java/org/springframework/security/config/MockAfterInvocationProvider.java @@ -24,15 +24,18 @@ import org.springframework.security.core.Authentication; public class MockAfterInvocationProvider implements AfterInvocationProvider { + @Override public Object decide(Authentication authentication, Object object, Collection config, Object returnedObject) throws AccessDeniedException { return returnedObject; } + @Override public boolean supports(ConfigAttribute attribute) { return true; } + @Override public boolean supports(Class clazz) { return true; } diff --git a/config/src/test/java/org/springframework/security/config/MockEventListener.java b/config/src/test/java/org/springframework/security/config/MockEventListener.java index 5cc7709ebb..05a5d5b4f9 100644 --- a/config/src/test/java/org/springframework/security/config/MockEventListener.java +++ b/config/src/test/java/org/springframework/security/config/MockEventListener.java @@ -30,6 +30,7 @@ public class MockEventListener implements Applicatio private List events = new ArrayList<>(); + @Override public void onApplicationEvent(T event) { this.events.add(event); } diff --git a/config/src/test/java/org/springframework/security/config/MockTransactionManager.java b/config/src/test/java/org/springframework/security/config/MockTransactionManager.java index 811e2bbfb1..50c24bc2ba 100644 --- a/config/src/test/java/org/springframework/security/config/MockTransactionManager.java +++ b/config/src/test/java/org/springframework/security/config/MockTransactionManager.java @@ -27,13 +27,16 @@ import static org.mockito.Mockito.mock; */ public class MockTransactionManager implements PlatformTransactionManager { + @Override public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { return mock(TransactionStatus.class); } + @Override public void commit(TransactionStatus status) throws TransactionException { } + @Override public void rollback(TransactionStatus status) throws TransactionException { } diff --git a/config/src/test/java/org/springframework/security/config/MockUserServiceBeanPostProcessor.java b/config/src/test/java/org/springframework/security/config/MockUserServiceBeanPostProcessor.java index d403987473..f847f44162 100644 --- a/config/src/test/java/org/springframework/security/config/MockUserServiceBeanPostProcessor.java +++ b/config/src/test/java/org/springframework/security/config/MockUserServiceBeanPostProcessor.java @@ -26,10 +26,12 @@ import org.springframework.beans.factory.config.BeanPostProcessor; */ public class MockUserServiceBeanPostProcessor implements BeanPostProcessor { + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof PostProcessedMockUserDetailsService) { ((PostProcessedMockUserDetailsService) bean).setPostProcessorWasHere("Hello from the post processor!"); diff --git a/config/src/test/java/org/springframework/security/config/PostProcessedMockUserDetailsService.java b/config/src/test/java/org/springframework/security/config/PostProcessedMockUserDetailsService.java index c2c70116f7..ec4ac7a1f5 100644 --- a/config/src/test/java/org/springframework/security/config/PostProcessedMockUserDetailsService.java +++ b/config/src/test/java/org/springframework/security/config/PostProcessedMockUserDetailsService.java @@ -34,6 +34,7 @@ public class PostProcessedMockUserDetailsService implements UserDetailsService { this.postProcessorWasHere = postProcessorWasHere; } + @Override public UserDetails loadUserByUsername(String username) { throw new UnsupportedOperationException("Not for actual use"); } diff --git a/config/src/test/java/org/springframework/security/config/TestBusinessBeanImpl.java b/config/src/test/java/org/springframework/security/config/TestBusinessBeanImpl.java index 3630dcd3a8..7a77b359e4 100644 --- a/config/src/test/java/org/springframework/security/config/TestBusinessBeanImpl.java +++ b/config/src/test/java/org/springframework/security/config/TestBusinessBeanImpl.java @@ -23,13 +23,16 @@ import org.springframework.security.core.session.SessionCreationEvent; */ public class TestBusinessBeanImpl implements TestBusinessBean, ApplicationListener { + @Override public void setInteger(int i) { } + @Override public int getInteger() { return 1314; } + @Override public void setString(String s) { } @@ -37,12 +40,15 @@ public class TestBusinessBeanImpl implements TestBusinessBean, ApplicationListen return "A string."; } + @Override public void doSomething() { } + @Override public void unprotected() { } + @Override public void onApplicationEvent(SessionCreationEvent event) { System.out.println(event); } diff --git a/config/src/test/java/org/springframework/security/config/TransactionalTestBusinessBean.java b/config/src/test/java/org/springframework/security/config/TransactionalTestBusinessBean.java index 7b59815a83..74e1354f64 100644 --- a/config/src/test/java/org/springframework/security/config/TransactionalTestBusinessBean.java +++ b/config/src/test/java/org/springframework/security/config/TransactionalTestBusinessBean.java @@ -22,20 +22,25 @@ import org.springframework.transaction.annotation.Transactional; */ public class TransactionalTestBusinessBean implements TestBusinessBean { + @Override public void setInteger(int i) { } + @Override public int getInteger() { return 0; } + @Override public void setString(String s) { } + @Override @Transactional public void doSomething() { } + @Override public void unprotected() { } diff --git a/config/src/test/java/org/springframework/security/config/annotation/ObjectPostProcessorTests.java b/config/src/test/java/org/springframework/security/config/annotation/ObjectPostProcessorTests.java index ee88e3c219..4073ffefec 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/ObjectPostProcessorTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/ObjectPostProcessorTests.java @@ -37,6 +37,7 @@ public class ObjectPostProcessorTests { static class ListToLinkedListObjectPostProcessor implements ObjectPostProcessor> { + @Override public > O postProcess(O l) { return (O) new LinkedList(l); } diff --git a/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterClosureTests.java b/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterClosureTests.java index 83535e1211..d943554611 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterClosureTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterClosureTests.java @@ -51,7 +51,7 @@ public class SecurityConfigurerAdapterClosureTests { static class ConcereteSecurityConfigurerAdapter extends SecurityConfigurerAdapter> { - private List list = new ArrayList(); + private List list = new ArrayList<>(); @Override public void configure(SecurityBuilder builder) throws Exception { diff --git a/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterTests.java b/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterTests.java index a75c8ed610..d832899c3d 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/SecurityConfigurerAdapterTests.java @@ -48,10 +48,12 @@ public class SecurityConfigurerAdapterTests { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override @SuppressWarnings("unchecked") public String postProcess(String object) { return object + " " + this.order; diff --git a/config/src/test/java/org/springframework/security/config/annotation/authentication/AuthenticationManagerBuilderTests.java b/config/src/test/java/org/springframework/security/config/annotation/authentication/AuthenticationManagerBuilderTests.java index 25288f639a..2f52e4f7b5 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/authentication/AuthenticationManagerBuilderTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/authentication/AuthenticationManagerBuilderTests.java @@ -144,6 +144,7 @@ public class AuthenticationManagerBuilderTests { @EnableWebSecurity static class PasswordEncoderConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -175,6 +176,7 @@ public class AuthenticationManagerBuilderTests { @EnableWebSecurity static class MultiAuthenticationProvidersConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser(PasswordEncodedUser.user()).and().inMemoryAuthentication() .withUser(PasswordEncodedUser.admin()); diff --git a/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceAuthenticationProviderTests.java b/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceAuthenticationProviderTests.java index 66eac99ad6..ed63199915 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceAuthenticationProviderTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceAuthenticationProviderTests.java @@ -56,6 +56,7 @@ public class NamespaceAuthenticationProviderTests { @EnableWebSecurity static class AuthenticationProviderRefConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) { // @formatter:off auth @@ -83,6 +84,7 @@ public class NamespaceAuthenticationProviderTests { @EnableWebSecurity static class UserServiceRefConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -90,6 +92,7 @@ public class NamespaceAuthenticationProviderTests { // @formatter:on } + @Override @Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager(PasswordEncodedUser.user()); diff --git a/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.java b/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.java index bf623b89ea..bf3c3d4994 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.java @@ -33,7 +33,7 @@ import org.springframework.security.config.test.SpringTestRule; import org.springframework.security.core.userdetails.PasswordEncodedUser; import org.springframework.security.core.userdetails.UserCache; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.provisioning.JdbcUserDetailsManager; +import org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.formLogin; @@ -63,6 +63,7 @@ public class NamespaceJdbcUserServiceTests { @Autowired private DataSource dataSource; + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -99,6 +100,7 @@ public class NamespaceJdbcUserServiceTests { @Autowired private DataSource dataSource; + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -112,7 +114,7 @@ public class NamespaceJdbcUserServiceTests { // jdbc-user-service@authorities-by-username-query .authoritiesByUsernameQuery("select principal,role from roles where principal = ?") // jdbc-user-service@group-authorities-by-username-query - .groupAuthoritiesByUsername(JdbcUserDetailsManager.DEF_GROUP_AUTHORITIES_BY_USERNAME_QUERY) + .groupAuthoritiesByUsername(JdbcDaoImpl.DEF_GROUP_AUTHORITIES_BY_USERNAME_QUERY) // jdbc-user-service@role-prefix .rolePrefix("ROLE_"); // @formatter:on diff --git a/config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java index 39d2d2f335..88c3464ebc 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java @@ -51,6 +51,7 @@ public class PasswordEncoderConfigurerTests { @EnableWebSecurity static class PasswordEncoderConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { BCryptPasswordEncoder encoder = passwordEncoder(); // @formatter:off @@ -82,6 +83,7 @@ public class PasswordEncoderConfigurerTests { @EnableWebSecurity static class PasswordEncoderNoAuthManagerLoadsConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { BCryptPasswordEncoder encoder = passwordEncoder(); // @formatter:off diff --git a/config/src/test/java/org/springframework/security/config/annotation/authentication/configuration/AuthenticationConfigurationTests.java b/config/src/test/java/org/springframework/security/config/annotation/authentication/configuration/AuthenticationConfigurationTests.java index 88bd7763af..d42c638cb3 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/authentication/configuration/AuthenticationConfigurationTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/authentication/configuration/AuthenticationConfigurationTests.java @@ -165,6 +165,7 @@ public class AuthenticationConfigurationTests { @Configuration static class UserGlobalAuthenticationConfigurerAdapter extends GlobalAuthenticationConfigurerAdapter { + @Override public void init(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser(PasswordEncodedUser.user()); } @@ -217,6 +218,7 @@ public class AuthenticationConfigurationTests { static class ServiceImpl implements Service { + @Override @Secured("ROLE_USER") public void run() { } @@ -238,10 +240,12 @@ public class AuthenticationConfigurationTests { static List> inits = new ArrayList<>(); static List> configs = new ArrayList<>(); + @Override public void init(AuthenticationManagerBuilder auth) throws Exception { inits.add(getClass()); } + @Override public void configure(AuthenticationManagerBuilder auth) { configs.add(getClass()); } @@ -288,6 +292,7 @@ public class AuthenticationConfigurationTests { static class ConfiguresInMemoryConfigurerAdapter extends GlobalAuthenticationConfigurerAdapter { + @Override public void init(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -301,6 +306,7 @@ public class AuthenticationConfigurationTests { @Order(Ordered.LOWEST_PRECEDENCE) static class BootGlobalAuthenticationConfigurerAdapter extends DefaultOrderGlobalAuthenticationConfigurerAdapter { + @Override public void init(AuthenticationManagerBuilder auth) throws Exception { auth.apply(new DefaultBootGlobalAuthenticationConfigurerAdapter()); } diff --git a/config/src/test/java/org/springframework/security/config/annotation/configuration/AroundMethodInterceptor.java b/config/src/test/java/org/springframework/security/config/annotation/configuration/AroundMethodInterceptor.java index 354b99247a..d63fee05fe 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/configuration/AroundMethodInterceptor.java +++ b/config/src/test/java/org/springframework/security/config/annotation/configuration/AroundMethodInterceptor.java @@ -20,6 +20,7 @@ import org.aopalliance.intercept.MethodInvocation; public class AroundMethodInterceptor implements MethodInterceptor { + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { return String.valueOf(methodInvocation.proceed()); } diff --git a/config/src/test/java/org/springframework/security/config/annotation/issue50/SecurityConfig.java b/config/src/test/java/org/springframework/security/config/annotation/issue50/SecurityConfig.java index 10d4e5f8ec..d167cbb711 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/issue50/SecurityConfig.java +++ b/config/src/test/java/org/springframework/security/config/annotation/issue50/SecurityConfig.java @@ -73,10 +73,12 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { public AuthenticationProvider authenticationProvider() { Assert.notNull(this.myUserRepository); return new AuthenticationProvider() { + @Override public boolean supports(Class authentication) { return true; } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { Object principal = authentication.getPrincipal(); String username = String.valueOf(principal); diff --git a/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityExpressionHandlerTests.java b/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityExpressionHandlerTests.java index 8f44603aa7..819a083dee 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityExpressionHandlerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityExpressionHandlerTests.java @@ -77,11 +77,13 @@ public class NamespaceGlobalMethodSecurityExpressionHandlerTests { DefaultMethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler(); expressionHandler.setPermissionEvaluator(new PermissionEvaluator() { + @Override public boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission) { return "granted".equals(targetDomainObject); } + @Override public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { throw new UnsupportedOperationException(); diff --git a/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityTests.java b/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityTests.java index 8ea847e694..ccfc66ac40 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/method/configuration/NamespaceGlobalMethodSecurityTests.java @@ -96,15 +96,18 @@ public class NamespaceGlobalMethodSecurityTests { public static class DenyAllAccessDecisionManager implements AccessDecisionManager { + @Override public void decide(Authentication authentication, Object object, Collection configAttributes) { throw new AccessDeniedException("Always Denied"); } + @Override public boolean supports(ConfigAttribute attribute) { return true; } + @Override public boolean supports(Class clazz) { return true; } @@ -133,16 +136,19 @@ public class NamespaceGlobalMethodSecurityTests { public static class AfterInvocationManagerStub implements AfterInvocationManager { + @Override public Object decide(Authentication authentication, Object object, Collection attributes, Object returnedObject) throws AccessDeniedException { throw new AccessDeniedException("custom AfterInvocationManager"); } + @Override public boolean supports(ConfigAttribute attribute) { return true; } + @Override public boolean supports(Class clazz) { return true; } @@ -224,6 +230,7 @@ public class NamespaceGlobalMethodSecurityTests { @Override protected MethodSecurityMetadataSource customMethodSecurityMetadataSource() { return new AbstractMethodSecurityMetadataSource() { + @Override public Collection getAttributes(Method method, Class targetClass) { // require ROLE_NOBODY for any method on MethodSecurityService // interface @@ -231,6 +238,7 @@ public class NamespaceGlobalMethodSecurityTests { ? Arrays.asList(new SecurityConfig("ROLE_NOBODY")) : Collections.emptyList(); } + @Override public Collection getAllConfigAttributes() { return null; } diff --git a/config/src/test/java/org/springframework/security/config/annotation/method/configuration/SampleEnableGlobalMethodSecurityTests.java b/config/src/test/java/org/springframework/security/config/annotation/method/configuration/SampleEnableGlobalMethodSecurityTests.java index 0525e851a3..f2c70cb81e 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/method/configuration/SampleEnableGlobalMethodSecurityTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/method/configuration/SampleEnableGlobalMethodSecurityTests.java @@ -125,10 +125,12 @@ public class SampleEnableGlobalMethodSecurityTests { static class CustomPermissionEvaluator implements PermissionEvaluator { + @Override public boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission) { return !"denied".equals(targetDomainObject); } + @Override public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { return !"denied".equals(targetId); diff --git a/config/src/test/java/org/springframework/security/config/annotation/sec2758/Sec2758Tests.java b/config/src/test/java/org/springframework/security/config/annotation/sec2758/Sec2758Tests.java index 9909c8b765..5113be8bf4 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/sec2758/Sec2758Tests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/sec2758/Sec2758Tests.java @@ -25,6 +25,7 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; +import org.springframework.core.Ordered; import org.springframework.core.PriorityOrdered; import org.springframework.security.access.annotation.Jsr250MethodSecurityMetadataSource; import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler; @@ -153,7 +154,7 @@ public class Sec2758Tests { @Override public int getOrder() { - return PriorityOrdered.HIGHEST_PRECEDENCE; + return Ordered.HIGHEST_PRECEDENCE; } } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java index b7a26da9a7..02b3c40690 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java @@ -156,6 +156,7 @@ public class AbstractConfiguredSecurityBuilderTests { super(objectPostProcessor, allowConfigurersOfSameType); } + @Override public Object performBuild() { return "success"; } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/AbstractRequestMatcherRegistryAnyMatcherTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/AbstractRequestMatcherRegistryAnyMatcherTests.java index bb52d221ec..3d7dd81d84 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/AbstractRequestMatcherRegistryAnyMatcherTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/AbstractRequestMatcherRegistryAnyMatcherTests.java @@ -35,6 +35,7 @@ public class AbstractRequestMatcherRegistryAnyMatcherTests { @EnableWebSecurity static class AntMatchersAfterAnyRequestConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -55,6 +56,7 @@ public class AbstractRequestMatcherRegistryAnyMatcherTests { @EnableWebSecurity static class MvcMatchersAfterAnyRequestConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -75,6 +77,7 @@ public class AbstractRequestMatcherRegistryAnyMatcherTests { @EnableWebSecurity static class RegexMatchersAfterAnyRequestConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -95,6 +98,7 @@ public class AbstractRequestMatcherRegistryAnyMatcherTests { @EnableWebSecurity static class AnyRequestAfterItselfConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -115,6 +119,7 @@ public class AbstractRequestMatcherRegistryAnyMatcherTests { @EnableWebSecurity static class RequestMatchersAfterAnyRequestConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/SampleWebSecurityConfigurerAdapterTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/SampleWebSecurityConfigurerAdapterTests.java index 9e4bd8763e..978a3e0eed 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/SampleWebSecurityConfigurerAdapterTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/SampleWebSecurityConfigurerAdapterTests.java @@ -374,6 +374,7 @@ public class SampleWebSecurityConfigurerAdapterTests { @Order(1) public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/builders/HttpConfigurationTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/builders/HttpConfigurationTests.java index 217ebdf6ce..79e610a314 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/builders/HttpConfigurationTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/builders/HttpConfigurationTests.java @@ -72,6 +72,7 @@ public class HttpConfigurationTests { @EnableWebSecurity static class UnregisteredFilterConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) { // @formatter:off http @@ -79,6 +80,7 @@ public class HttpConfigurationTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -116,6 +118,7 @@ public class HttpConfigurationTests { static CasAuthenticationFilter CAS_AUTHENTICATION_FILTER; + @Override protected void configure(HttpSecurity http) { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/builders/NamespaceHttpTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/builders/NamespaceHttpTests.java index 6916b82396..d695d5624d 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/builders/NamespaceHttpTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/builders/NamespaceHttpTests.java @@ -453,6 +453,7 @@ public class NamespaceHttpTests { static class MyRequestMatcher implements RequestMatcher { + @Override public boolean matches(HttpServletRequest request) { return true; } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configuration/Sec2515Tests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configuration/Sec2515Tests.java index 17d92432a7..744147312b 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configuration/Sec2515Tests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configuration/Sec2515Tests.java @@ -90,6 +90,7 @@ public class Sec2515Tests { static AuthenticationManager AUTHENTICATION_MANAGER; + @Override @Bean public AuthenticationManager authenticationManager() { return AUTHENTICATION_MANAGER; diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java index 3af3031559..c585d27f40 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java @@ -81,14 +81,17 @@ public class AbstractConfigAttributeRequestMatcherRegistryTests { return null; } + @Override protected List chainRequestMatchersInternal(List requestMatchers) { return requestMatchers; } + @Override public List mvcMatchers(String... mvcPatterns) { return null; } + @Override public List mvcMatchers(HttpMethod method, String... mvcPatterns) { return null; } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AnonymousConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AnonymousConfigurerTests.java index dc1d573eeb..306fd90162 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AnonymousConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AnonymousConfigurerTests.java @@ -119,6 +119,7 @@ public class AnonymousConfigurerTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -151,6 +152,7 @@ public class AnonymousConfigurerTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/DefaultFiltersTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/DefaultFiltersTests.java index 11dbcd26a1..716027edf0 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/DefaultFiltersTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/DefaultFiltersTests.java @@ -122,6 +122,7 @@ public class DefaultFiltersTests { super(true); } + @Override protected void configure(HttpSecurity http) throws Exception { http.formLogin(); } @@ -197,6 +198,7 @@ public class DefaultFiltersTests { @EnableWebSecurity static class DefaultFiltersConfigPermitAll extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) { } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurerTests.java index c7a7a352b9..1ce457ff8b 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurerTests.java @@ -142,6 +142,7 @@ public class ExpressionUrlAuthorizationConfigurerTests { @EnableWebSecurity static class NoRequestsConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -682,6 +683,7 @@ public class ExpressionUrlAuthorizationConfigurerTests { .authorizeRequests() .anyRequest().permitAll() .withObjectPostProcessor(new ObjectPostProcessor() { + @Override public O postProcess( O fsi) { fsi.setPublishAuthorizationSuccess(true); diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurerTests.java index bdd59a323d..c3649f7559 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurerTests.java @@ -265,6 +265,7 @@ public class HttpBasicConfigurerTests { // @formatter:on } + @Override @Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityAntMatchersTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityAntMatchersTests.java index 9a68ea4a24..c78091f7dc 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityAntMatchersTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityAntMatchersTests.java @@ -82,6 +82,7 @@ public class HttpSecurityAntMatchersTests { @Configuration static class AntMatchersNoPatternsConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -118,6 +119,7 @@ public class HttpSecurityAntMatchersTests { @Configuration static class AntMatchersEmptyPatternsConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityLogoutTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityLogoutTests.java index 6b078b4b95..61989ec37f 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityLogoutTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/HttpSecurityLogoutTests.java @@ -90,6 +90,7 @@ public class HttpSecurityLogoutTests { @Configuration static class ClearAuthenticationFalseConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/Issue55Tests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/Issue55Tests.java index f86448bf5d..5097a3d5ef 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/Issue55Tests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/Issue55Tests.java @@ -153,6 +153,7 @@ public class Issue55Tests { static Authentication RESULT = new TestingAuthenticationToken("test", "this", "ROLE_USER"); + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { return RESULT; } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpAnonymousTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpAnonymousTests.java index ab96950277..ccf73dba40 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpAnonymousTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpAnonymousTests.java @@ -95,6 +95,7 @@ public class NamespaceHttpAnonymousTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpBasicTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpBasicTests.java index e587019f6c..6cd603b95b 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpBasicTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpBasicTests.java @@ -94,6 +94,7 @@ public class NamespaceHttpBasicTests { @EnableWebSecurity static class HttpBasicConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -121,6 +122,7 @@ public class NamespaceHttpBasicTests { @EnableWebSecurity static class HttpBasicLambdaConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpCustomFilterTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpCustomFilterTests.java index 96ef9f0c24..e2bc0970fd 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpCustomFilterTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpCustomFilterTests.java @@ -68,6 +68,7 @@ public class NamespaceHttpCustomFilterTests { @EnableWebSecurity static class CustomFilterBeforeConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -87,6 +88,7 @@ public class NamespaceHttpCustomFilterTests { @EnableWebSecurity static class CustomFilterAfterConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -111,6 +113,7 @@ public class NamespaceHttpCustomFilterTests { super(true); } + @Override protected void configure(HttpSecurity http) { // @formatter:off http @@ -136,6 +139,7 @@ public class NamespaceHttpCustomFilterTests { super(true); } + @Override protected void configure(HttpSecurity http) { // @formatter:off http @@ -158,6 +162,7 @@ public class NamespaceHttpCustomFilterTests { super(true); } + @Override protected AuthenticationManager authenticationManager() { return new CustomAuthenticationManager(); } @@ -198,6 +203,7 @@ public class NamespaceHttpCustomFilterTests { static class OtherCustomFilter extends OncePerRequestFilter { + @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { filterChain.doFilter(request, response); @@ -207,6 +213,7 @@ public class NamespaceHttpCustomFilterTests { static class CustomAuthenticationManager implements AuthenticationManager { + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { return null; } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpFormLoginTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpFormLoginTests.java index 0466f4f09a..7dd2827975 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpFormLoginTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpFormLoginTests.java @@ -108,6 +108,7 @@ public class NamespaceHttpFormLoginTests { @EnableWebSecurity static class FormLoginCustomConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { boolean alwaysUseDefaultSuccess = true; // @formatter:off @@ -143,6 +144,7 @@ public class NamespaceHttpFormLoginTests { @EnableWebSecurity static class FormLoginCustomRefsConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setDefaultTargetUrl("/custom/targetUrl"); diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpInterceptUrlTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpInterceptUrlTests.java index a6e9d805d0..078c69053d 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpInterceptUrlTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpInterceptUrlTests.java @@ -131,6 +131,7 @@ public class NamespaceHttpInterceptUrlTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpLogoutTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpLogoutTests.java index b49dcbf949..407499bfb1 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpLogoutTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpLogoutTests.java @@ -229,7 +229,7 @@ public class NamespaceHttpLogoutTests { ResultMatcher session(Predicate sessionPredicate) { return result -> assertThat(result.getRequest().getSession(false)) - .is(new Condition(sessionPredicate, "sessionPredicate failed")); + .is(new Condition<>(sessionPredicate, "sessionPredicate failed")); } } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpPortMappingsTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpPortMappingsTests.java index c7e2b79682..a9238613f3 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpPortMappingsTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpPortMappingsTests.java @@ -76,6 +76,7 @@ public class NamespaceHttpPortMappingsTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpRequestCacheTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpRequestCacheTests.java index f83c874ce2..dd6f0a250a 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpRequestCacheTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpRequestCacheTests.java @@ -67,6 +67,7 @@ public class NamespaceHttpRequestCacheTests { @EnableWebSecurity static class RequestCacheRefConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -78,6 +79,7 @@ public class NamespaceHttpRequestCacheTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth @@ -108,6 +110,7 @@ public class NamespaceHttpRequestCacheTests { @EnableWebSecurity static class DefaultRequestCacheRefConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -116,6 +119,7 @@ public class NamespaceHttpRequestCacheTests { // @formatter:on } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // @formatter:off auth diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpServerAccessDeniedHandlerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpServerAccessDeniedHandlerTests.java index cb2523d9e4..d5729357b6 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpServerAccessDeniedHandlerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpServerAccessDeniedHandlerTests.java @@ -68,6 +68,7 @@ public class NamespaceHttpServerAccessDeniedHandlerTests { @EnableWebSecurity static class AccessDeniedPageConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -96,6 +97,7 @@ public class NamespaceHttpServerAccessDeniedHandlerTests { @EnableWebSecurity static class AccessDeniedPageInLambdaConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -122,6 +124,7 @@ public class NamespaceHttpServerAccessDeniedHandlerTests { @EnableWebSecurity static class AccessDeniedHandlerRefConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -155,6 +158,7 @@ public class NamespaceHttpServerAccessDeniedHandlerTests { static AccessDeniedHandler accessDeniedHandler = mock(AccessDeniedHandler.class); + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpX509Tests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpX509Tests.java index 118e205906..b6a997ba33 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpX509Tests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceHttpX509Tests.java @@ -268,10 +268,12 @@ public class NamespaceHttpX509Tests { @EnableWebSecurity public static class AuthenticationUserDetailsServiceConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("rod").password("password").roles("USER", "ADMIN"); } + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceSessionManagementTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceSessionManagementTests.java index d3451fee3f..ee6dad15e1 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceSessionManagementTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceSessionManagementTests.java @@ -392,6 +392,7 @@ public class NamespaceSessionManagementTests { List events = new ArrayList<>(); + @Override public void onApplicationEvent(SessionFixationProtectionEvent event) { this.events.add(event); } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurerTests.java index fe4dcebba8..cb312190c3 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurerTests.java @@ -89,6 +89,7 @@ public class RememberMeConfigurerTests { @EnableWebSecurity static class NullUserDetailsConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -188,6 +189,7 @@ public class RememberMeConfigurerTests { // @formatter:on } + @Override @Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( @@ -327,6 +329,7 @@ public class RememberMeConfigurerTests { @EnableWebSecurity static class RememberMeCookieDomainConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -363,6 +366,7 @@ public class RememberMeConfigurerTests { @EnableWebSecurity static class RememberMeCookieDomainInLambdaConfig extends WebSecurityConfigurerAdapter { + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http @@ -401,6 +405,7 @@ public class RememberMeConfigurerTests { static RememberMeServices REMEMBER_ME = mock(RememberMeServices.class); + @Override protected void configure(HttpSecurity http) throws Exception { // @formatter:off http diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurerTests.java index e275c1c350..4338f5a43c 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurerTests.java @@ -1560,6 +1560,7 @@ public class OAuth2ResourceServerConfigurerTests { // @formatter:on } + @Override @Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( @@ -1640,6 +1641,7 @@ public class OAuth2ResourceServerConfigurerTests { // @formatter:on } + @Override @Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerDocTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerDocTests.java index 89d07f6259..83ada36fdd 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerDocTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerDocTests.java @@ -150,6 +150,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerDocTests { @EnableWebSocketMessageBroker static class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/chat").withSockJS(); } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerTests.java index e9fac39e07..9d73774461 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/socket/AbstractSecurityWebSocketMessageBrokerConfigurerTests.java @@ -278,6 +278,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { static class MsmsRegistryCustomPatternMatcherConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { // @formatter:off + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry .addEndpoint("/other") @@ -330,6 +331,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { extends AbstractSecurityWebSocketMessageBrokerConfigurer { // @formatter:off + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry .addEndpoint("/other") @@ -382,6 +384,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { static class DefaultPatternMatcherConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { // @formatter:off + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry .addEndpoint("/other") @@ -467,6 +470,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { static class CustomExpressionConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { // @formatter:off + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry .addEndpoint("/other") @@ -596,10 +600,12 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { static class MyCustomArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.getParameterType().isAssignableFrom(MyCustomArgument.class); } + @Override public Object resolveArgument(MethodParameter parameter, Message message) { return new MyCustomArgument(""); } @@ -610,6 +616,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { Map attributes; + @Override public boolean doHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) throws HandshakeFailureException { this.attributes = attributes; @@ -630,6 +637,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { @Import(SyncExecutorConfig.class) static class SockJsSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/other").setHandshakeHandler(testHandshakeHandler()).withSockJS() .setInterceptors(new HttpSessionHandshakeInterceptor()); @@ -687,6 +695,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { @Import(SyncExecutorConfig.class) static class NoInboundSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/other").withSockJS().setInterceptors(new HttpSessionHandshakeInterceptor()); @@ -725,6 +734,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { @Import(SyncExecutorConfig.class) static class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/websocket").setHandshakeHandler(testHandshakeHandler()) .addInterceptors(new HttpSessionHandshakeInterceptor()); @@ -754,6 +764,7 @@ public class AbstractSecurityWebSocketMessageBrokerConfigurerTests { private ApplicationContext context; + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/chat").setHandshakeHandler(this.context.getBean(TestHandshakeHandler.class)) .withSockJS().setInterceptors(new HttpSessionHandshakeInterceptor()); diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/socket/SyncExecutorSubscribableChannelPostProcessor.java b/config/src/test/java/org/springframework/security/config/annotation/web/socket/SyncExecutorSubscribableChannelPostProcessor.java index 0462d5f74b..ad20a673bb 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/socket/SyncExecutorSubscribableChannelPostProcessor.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/socket/SyncExecutorSubscribableChannelPostProcessor.java @@ -24,6 +24,7 @@ import org.springframework.messaging.support.ExecutorSubscribableChannel; */ public class SyncExecutorSubscribableChannelPostProcessor implements BeanPostProcessor { + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof ExecutorSubscribableChannel) { ExecutorSubscribableChannel original = (ExecutorSubscribableChannel) bean; @@ -34,6 +35,7 @@ public class SyncExecutorSubscribableChannelPostProcessor implements BeanPostPro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } diff --git a/config/src/test/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParserTests.java index 70269a4ffb..3af52ce611 100644 --- a/config/src/test/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParserTests.java +++ b/config/src/test/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParserTests.java @@ -106,6 +106,7 @@ public class AuthenticationManagerBeanDefinitionParserTests { List events = new ArrayList<>(); + @Override public void onApplicationEvent(AbstractAuthenticationEvent event) { this.events.add(event); } diff --git a/config/src/test/java/org/springframework/security/config/core/HelloWorldMessageService.java b/config/src/test/java/org/springframework/security/config/core/HelloWorldMessageService.java index 6813e2050c..387f0ad006 100755 --- a/config/src/test/java/org/springframework/security/config/core/HelloWorldMessageService.java +++ b/config/src/test/java/org/springframework/security/config/core/HelloWorldMessageService.java @@ -24,11 +24,13 @@ import org.springframework.security.access.prepost.PreAuthorize; */ public class HelloWorldMessageService implements MessageService { + @Override @PreAuthorize("hasRole('USER')") public String getMessage() { return "Hello World"; } + @Override @RolesAllowed("USER") public String getJsrMessage() { return "Hello JSR"; diff --git a/config/src/test/java/org/springframework/security/config/debug/TestAuthenticationProvider.java b/config/src/test/java/org/springframework/security/config/debug/TestAuthenticationProvider.java index 26488ee356..ee82e44dc0 100644 --- a/config/src/test/java/org/springframework/security/config/debug/TestAuthenticationProvider.java +++ b/config/src/test/java/org/springframework/security/config/debug/TestAuthenticationProvider.java @@ -35,10 +35,12 @@ public class TestAuthenticationProvider implements AuthenticationProvider { public TestAuthenticationProvider(AuthProviderDependency authProviderDependency) { } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { throw new UnsupportedOperationException(); } + @Override public boolean supports(Class authentication) { throw new UnsupportedOperationException(); } diff --git a/config/src/test/java/org/springframework/security/config/http/CsrfConfigTests.java b/config/src/test/java/org/springframework/security/config/http/CsrfConfigTests.java index 80788f7923..bab0a7e840 100644 --- a/config/src/test/java/org/springframework/security/config/http/CsrfConfigTests.java +++ b/config/src/test/java/org/springframework/security/config/http/CsrfConfigTests.java @@ -51,7 +51,6 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.context.WebApplicationContext; import org.springframework.web.servlet.support.RequestDataValueProcessor; import static org.assertj.core.api.Assertions.assertThat; @@ -148,8 +147,7 @@ public class CsrfConfigTests { public void traceWhenDefaultConfigurationThenCsrfIsEnabled() throws Exception { this.spring.configLocations(this.xml("shared-controllers"), this.xml("AutoConfig")).autowire(); - MockMvc traceEnabled = MockMvcBuilders.webAppContextSetup((WebApplicationContext) this.spring.getContext()) - .apply(springSecurity()) + MockMvc traceEnabled = MockMvcBuilders.webAppContextSetup(this.spring.getContext()).apply(springSecurity()) .addDispatcherServletCustomizer(dispatcherServlet -> dispatcherServlet.setDispatchTraceRequest(true)) .build(); @@ -226,8 +224,7 @@ public class CsrfConfigTests { public void traceWhenCsrfElementEnabledThenOk() throws Exception { this.spring.configLocations(this.xml("shared-controllers"), this.xml("CsrfEnabled")).autowire(); - MockMvc traceEnabled = MockMvcBuilders.webAppContextSetup((WebApplicationContext) this.spring.getContext()) - .apply(springSecurity()) + MockMvc traceEnabled = MockMvcBuilders.webAppContextSetup(this.spring.getContext()).apply(springSecurity()) .addDispatcherServletCustomizer(dispatcherServlet -> dispatcherServlet.setDispatchTraceRequest(true)) .build(); diff --git a/config/src/test/java/org/springframework/security/config/http/InterceptUrlConfigTests.java b/config/src/test/java/org/springframework/security/config/http/InterceptUrlConfigTests.java index 9ebb140022..3c94ae6f00 100644 --- a/config/src/test/java/org/springframework/security/config/http/InterceptUrlConfigTests.java +++ b/config/src/test/java/org/springframework/security/config/http/InterceptUrlConfigTests.java @@ -174,7 +174,7 @@ public class InterceptUrlConfigTests { this.spring.configLocations(this.xml("MvcMatchersServletPath")).autowire(); MockServletContext servletContext = mockServletContext("/spring"); - ConfigurableWebApplicationContext context = (ConfigurableWebApplicationContext) this.spring.getContext(); + ConfigurableWebApplicationContext context = this.spring.getContext(); context.setServletContext(servletContext); this.mvc.perform(get("/spring/path").servletPath("/spring")).andExpect(status().isUnauthorized()); diff --git a/config/src/test/java/org/springframework/security/config/http/MiscHttpConfigTests.java b/config/src/test/java/org/springframework/security/config/http/MiscHttpConfigTests.java index c8296bec2a..2c59e39123 100644 --- a/config/src/test/java/org/springframework/security/config/http/MiscHttpConfigTests.java +++ b/config/src/test/java/org/springframework/security/config/http/MiscHttpConfigTests.java @@ -517,16 +517,17 @@ public class MiscHttpConfigTests { @Test public void configureWhenUserDetailsServiceInParentContextThenLocatesSuccessfully() { - assertThatCode(() -> this.spring.configLocations(this.xml("MissingUserDetailsService")).autowire()) - .isInstanceOf(BeansException.class); + assertThatCode( + () -> this.spring.configLocations(MiscHttpConfigTests.xml("MissingUserDetailsService")).autowire()) + .isInstanceOf(BeansException.class); try (XmlWebApplicationContext parent = new XmlWebApplicationContext()) { - parent.setConfigLocations(this.xml("AutoConfig")); + parent.setConfigLocations(MiscHttpConfigTests.xml("AutoConfig")); parent.refresh(); try (XmlWebApplicationContext child = new XmlWebApplicationContext()) { child.setParent(parent); - child.setConfigLocation(this.xml("MissingUserDetailsService")); + child.setConfigLocation(MiscHttpConfigTests.xml("MissingUserDetailsService")); child.refresh(); } } @@ -810,6 +811,7 @@ public class MiscHttpConfigTests { static class MockAuthenticationManager implements AuthenticationManager { + @Override public Authentication authenticate(Authentication authentication) { return new TestingAuthenticationToken(authentication.getPrincipal(), authentication.getCredentials(), AuthorityUtils.createAuthorityList("ROLE_USER")); diff --git a/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTests.java b/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTests.java index 9ee76f8302..ded6945508 100644 --- a/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTests.java +++ b/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTests.java @@ -612,7 +612,7 @@ public class SessionManagementConfigTests { } private ServletContext servletContext() { - WebApplicationContext context = (WebApplicationContext) this.spring.getContext(); + WebApplicationContext context = this.spring.getContext(); return context.getServletContext(); } diff --git a/config/src/test/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParserTests.java index 3f5a56f46e..25ba7efe8d 100644 --- a/config/src/test/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParserTests.java +++ b/config/src/test/java/org/springframework/security/config/method/GlobalMethodSecurityBeanDefinitionParserTests.java @@ -401,6 +401,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests { this.beanName = beanName; } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { return this.authenticationManager.authenticate(authentication); } @@ -412,6 +413,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests { * org.springframework.context.ApplicationContextAware#setApplicationContext(org * .springframework.context.ApplicationContext) */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.authenticationManager = applicationContext.getBean(this.beanName, AuthenticationManager.class); } @@ -434,6 +436,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests { public static class ConcreteFoo implements Foo { + @Override @PreAuthorize("#action.attribute == 'A'") public void foo(SecurityConfig action) { } diff --git a/config/src/test/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecoratorTests.java b/config/src/test/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecoratorTests.java index 62eca788ef..4b08393bd2 100644 --- a/config/src/test/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecoratorTests.java +++ b/config/src/test/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecoratorTests.java @@ -110,6 +110,7 @@ public class InterceptMethodsBeanDefinitionDecoratorTests implements Application this.transactionalTarget.doSomething(); } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.appContext = applicationContext; } diff --git a/config/src/test/java/org/springframework/security/config/method/TestPermissionEvaluator.java b/config/src/test/java/org/springframework/security/config/method/TestPermissionEvaluator.java index 9f804f4f15..03bed52407 100644 --- a/config/src/test/java/org/springframework/security/config/method/TestPermissionEvaluator.java +++ b/config/src/test/java/org/springframework/security/config/method/TestPermissionEvaluator.java @@ -22,10 +22,12 @@ import org.springframework.security.core.Authentication; public class TestPermissionEvaluator implements PermissionEvaluator { + @Override public boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission) { return false; } + @Override public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { return false; diff --git a/config/src/test/java/org/springframework/security/config/method/sec2136/JpaPermissionEvaluator.java b/config/src/test/java/org/springframework/security/config/method/sec2136/JpaPermissionEvaluator.java index 275ac42e6f..fe055ade88 100644 --- a/config/src/test/java/org/springframework/security/config/method/sec2136/JpaPermissionEvaluator.java +++ b/config/src/test/java/org/springframework/security/config/method/sec2136/JpaPermissionEvaluator.java @@ -36,10 +36,12 @@ public class JpaPermissionEvaluator implements PermissionEvaluator { System.out.println("initializing " + this); } + @Override public boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission) { return true; } + @Override public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { return true; diff --git a/config/src/test/java/org/springframework/security/config/oauth2/client/ClientRegistrationsBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/oauth2/client/ClientRegistrationsBeanDefinitionParserTests.java index 193d8c4a4e..4fa821baf9 100644 --- a/config/src/test/java/org/springframework/security/config/oauth2/client/ClientRegistrationsBeanDefinitionParserTests.java +++ b/config/src/test/java/org/springframework/security/config/oauth2/client/ClientRegistrationsBeanDefinitionParserTests.java @@ -135,7 +135,8 @@ public class ClientRegistrationsBeanDefinitionParserTests { @Test public void parseWhenMultipleClientsConfiguredThenAvailableInRepository() { - this.spring.configLocations(this.xml("MultiClientRegistration")).autowire(); + this.spring.configLocations(ClientRegistrationsBeanDefinitionParserTests.xml("MultiClientRegistration")) + .autowire(); assertThat(this.clientRegistrationRepository).isInstanceOf(InMemoryClientRegistrationRepository.class); diff --git a/config/src/test/java/org/springframework/security/config/test/SpringTestContext.java b/config/src/test/java/org/springframework/security/config/test/SpringTestContext.java index d256e3353d..e604008f56 100644 --- a/config/src/test/java/org/springframework/security/config/test/SpringTestContext.java +++ b/config/src/test/java/org/springframework/security/config/test/SpringTestContext.java @@ -142,6 +142,7 @@ public class SpringTestContext implements Closeable { private class AddFilter implements MockMvcConfigurer { + @Override public RequestPostProcessor beforeMockMvcCreated(ConfigurableMockMvcBuilder builder, WebApplicationContext context) { builder.addFilters(SpringTestContext.this.filters.toArray(new Filter[0])); diff --git a/config/src/test/java/org/springframework/security/config/test/SpringTestRule.java b/config/src/test/java/org/springframework/security/config/test/SpringTestRule.java index c2bca55650..df0834c895 100644 --- a/config/src/test/java/org/springframework/security/config/test/SpringTestRule.java +++ b/config/src/test/java/org/springframework/security/config/test/SpringTestRule.java @@ -31,6 +31,7 @@ public class SpringTestRule extends SpringTestContext implements MethodRule { @Override public Statement apply(Statement base, FrameworkMethod method, Object target) { return new Statement() { + @Override public void evaluate() throws Throwable { setTest(target); try { diff --git a/config/src/test/java/org/springframework/security/config/util/InMemoryXmlApplicationContext.java b/config/src/test/java/org/springframework/security/config/util/InMemoryXmlApplicationContext.java index dafad7a02f..ac79550ee1 100644 --- a/config/src/test/java/org/springframework/security/config/util/InMemoryXmlApplicationContext.java +++ b/config/src/test/java/org/springframework/security/config/util/InMemoryXmlApplicationContext.java @@ -72,6 +72,7 @@ public class InMemoryXmlApplicationContext extends AbstractXmlApplicationContext }; } + @Override protected Resource[] getConfigResources() { return new Resource[] { this.inMemoryXml }; } diff --git a/config/src/test/java/org/springframework/security/config/web/server/OAuth2LoginTests.java b/config/src/test/java/org/springframework/security/config/web/server/OAuth2LoginTests.java index c6bd79537a..50bda99f27 100644 --- a/config/src/test/java/org/springframework/security/config/web/server/OAuth2LoginTests.java +++ b/config/src/test/java/org/springframework/security/config/web/server/OAuth2LoginTests.java @@ -148,7 +148,7 @@ public class OAuth2LoginTests { FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage .to(driver, FormLoginTests.DefaultLoginPage.class).assertAt().assertLoginFormNotPresent().oauth2Login() - .assertClientRegistrationByName(this.github.getClientName()).and(); + .assertClientRegistrationByName(OAuth2LoginTests.github.getClientName()).and(); } @EnableWebFluxSecurity diff --git a/config/src/test/java/org/springframework/security/config/websocket/WebSocketMessageBrokerConfigTests.java b/config/src/test/java/org/springframework/security/config/websocket/WebSocketMessageBrokerConfigTests.java index 6a9ca15fa3..6374b34664 100644 --- a/config/src/test/java/org/springframework/security/config/websocket/WebSocketMessageBrokerConfigTests.java +++ b/config/src/test/java/org/springframework/security/config/websocket/WebSocketMessageBrokerConfigTests.java @@ -306,7 +306,7 @@ public class WebSocketMessageBrokerConfigTests { public void requestWhenConnectMessageThenUsesCsrfTokenHandshakeInterceptor() throws Exception { this.spring.configLocations(xml("SyncConfig")).autowire(); - WebApplicationContext context = (WebApplicationContext) this.spring.getContext(); + WebApplicationContext context = this.spring.getContext(); MockMvc mvc = MockMvcBuilders.webAppContextSetup(context).build(); String csrfAttributeName = CsrfToken.class.getName(); @@ -329,7 +329,7 @@ public class WebSocketMessageBrokerConfigTests { public void requestWhenConnectMessageAndUsingSockJsThenUsesCsrfTokenHandshakeInterceptor() throws Exception { this.spring.configLocations(xml("SyncSockJsConfig")).autowire(); - WebApplicationContext context = (WebApplicationContext) this.spring.getContext(); + WebApplicationContext context = this.spring.getContext(); MockMvc mvc = MockMvcBuilders.webAppContextSetup(context).build(); String csrfAttributeName = CsrfToken.class.getName(); diff --git a/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java index 4ccef31e78..b2c9efa2f6 100644 --- a/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java +++ b/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java @@ -56,14 +56,17 @@ public class Jsr250MethodSecurityMetadataSource extends AbstractFallbackMethodSe this.defaultRolePrefix = defaultRolePrefix; } + @Override protected Collection findAttributes(Class clazz) { return processAnnotations(clazz.getAnnotations()); } + @Override protected Collection findAttributes(Method method, Class targetClass) { return processAnnotations(AnnotationUtils.getAnnotations(method)); } + @Override public Collection getAllConfigAttributes() { return null; } diff --git a/core/src/main/java/org/springframework/security/access/annotation/Jsr250Voter.java b/core/src/main/java/org/springframework/security/access/annotation/Jsr250Voter.java index 9a15090653..b9f5d5c369 100644 --- a/core/src/main/java/org/springframework/security/access/annotation/Jsr250Voter.java +++ b/core/src/main/java/org/springframework/security/access/annotation/Jsr250Voter.java @@ -36,6 +36,7 @@ public class Jsr250Voter implements AccessDecisionVoter { * @param configAttribute The config attribute. * @return whether the config attribute is supported. */ + @Override public boolean supports(ConfigAttribute configAttribute) { return configAttribute instanceof Jsr250SecurityConfig; } @@ -45,6 +46,7 @@ public class Jsr250Voter implements AccessDecisionVoter { * @param clazz the class. * @return true */ + @Override public boolean supports(Class clazz) { return true; } @@ -59,6 +61,7 @@ public class Jsr250Voter implements AccessDecisionVoter { * @param definition The configuration definition. * @return The vote. */ + @Override public int vote(Authentication authentication, Object object, Collection definition) { boolean jsr250AttributeFound = false; diff --git a/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java index 64a51bb038..ab6fc143b7 100644 --- a/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java +++ b/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java @@ -59,14 +59,17 @@ public class SecuredAnnotationSecurityMetadataSource extends AbstractFallbackMet + " must supply a generic parameter for AnnotationMetadataExtractor"); } + @Override protected Collection findAttributes(Class clazz) { return processAnnotation(AnnotationUtils.findAnnotation(clazz, this.annotationType)); } + @Override protected Collection findAttributes(Method method, Class targetClass) { return processAnnotation(AnnotationUtils.findAnnotation(method, this.annotationType)); } + @Override public Collection getAllConfigAttributes() { return null; } @@ -83,6 +86,7 @@ public class SecuredAnnotationSecurityMetadataSource extends AbstractFallbackMet class SecuredAnnotationMetadataExtractor implements AnnotationMetadataExtractor { + @Override public Collection extractAttributes(Secured secured) { String[] attributeTokens = secured.value(); List attributes = new ArrayList<>(attributeTokens.length); diff --git a/core/src/main/java/org/springframework/security/access/event/LoggerListener.java b/core/src/main/java/org/springframework/security/access/event/LoggerListener.java index c52acfbf68..57e6d52d17 100644 --- a/core/src/main/java/org/springframework/security/access/event/LoggerListener.java +++ b/core/src/main/java/org/springframework/security/access/event/LoggerListener.java @@ -34,6 +34,7 @@ public class LoggerListener implements ApplicationListener private PermissionEvaluator permissionEvaluator = new DenyAllPermissionEvaluator(); + @Override public final ExpressionParser getExpressionParser() { return this.expressionParser; } @@ -64,6 +65,7 @@ public abstract class AbstractSecurityExpressionHandler * @return the context object for use in evaluating the expression, populated with a * suitable root object. */ + @Override public final EvaluationContext createEvaluationContext(Authentication authentication, T invocation) { SecurityExpressionOperations root = createSecurityExpressionRoot(authentication, invocation); StandardEvaluationContext ctx = createEvaluationContextInternal(authentication, invocation); @@ -114,6 +116,7 @@ public abstract class AbstractSecurityExpressionHandler this.permissionEvaluator = permissionEvaluator; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.br = new BeanFactoryResolver(applicationContext); } diff --git a/core/src/main/java/org/springframework/security/access/expression/DenyAllPermissionEvaluator.java b/core/src/main/java/org/springframework/security/access/expression/DenyAllPermissionEvaluator.java index e394b37b80..18ffa8ec8c 100644 --- a/core/src/main/java/org/springframework/security/access/expression/DenyAllPermissionEvaluator.java +++ b/core/src/main/java/org/springframework/security/access/expression/DenyAllPermissionEvaluator.java @@ -37,6 +37,7 @@ public class DenyAllPermissionEvaluator implements PermissionEvaluator { /** * @return false always */ + @Override public boolean hasPermission(Authentication authentication, Object target, Object permission) { this.logger.warn( "Denying user " + authentication.getName() + " permission '" + permission + "' on object " + target); @@ -46,6 +47,7 @@ public class DenyAllPermissionEvaluator implements PermissionEvaluator { /** * @return false always */ + @Override public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { this.logger.warn("Denying user " + authentication.getName() + " permission '" + permission diff --git a/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java b/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java index c85eda4c92..f48368c952 100644 --- a/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java +++ b/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java @@ -73,18 +73,22 @@ public abstract class SecurityExpressionRoot implements SecurityExpressionOperat this.authentication = authentication; } + @Override public final boolean hasAuthority(String authority) { return hasAnyAuthority(authority); } + @Override public final boolean hasAnyAuthority(String... authorities) { return hasAnyAuthorityName(null, authorities); } + @Override public final boolean hasRole(String role) { return hasAnyRole(role); } + @Override public final boolean hasAnyRole(String... roles) { return hasAnyAuthorityName(this.defaultRolePrefix, roles); } @@ -102,30 +106,37 @@ public abstract class SecurityExpressionRoot implements SecurityExpressionOperat return false; } + @Override public final Authentication getAuthentication() { return this.authentication; } + @Override public final boolean permitAll() { return true; } + @Override public final boolean denyAll() { return false; } + @Override public final boolean isAnonymous() { return this.trustResolver.isAnonymous(this.authentication); } + @Override public final boolean isAuthenticated() { return !isAnonymous(); } + @Override public final boolean isRememberMe() { return this.trustResolver.isRememberMe(this.authentication); } + @Override public final boolean isFullyAuthenticated() { return !this.trustResolver.isAnonymous(this.authentication) && !this.trustResolver.isRememberMe(this.authentication); @@ -179,10 +190,12 @@ public abstract class SecurityExpressionRoot implements SecurityExpressionOperat return this.roles; } + @Override public boolean hasPermission(Object target, Object permission) { return this.permissionEvaluator.hasPermission(this.authentication, target, permission); } + @Override public boolean hasPermission(Object targetId, String targetType, Object permission) { return this.permissionEvaluator.hasPermission(this.authentication, (Serializable) targetId, targetType, permission); diff --git a/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java b/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java index 17d156fbe2..8adeaa9294 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java @@ -66,6 +66,7 @@ abstract class AbstractExpressionBasedMethodConfigAttribute implements ConfigAtt return this.authorizeExpression; } + @Override public String getAttribute() { return null; } diff --git a/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java b/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java index e9a2da23ce..81c4230bc0 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java @@ -70,6 +70,7 @@ public class DefaultMethodSecurityExpressionHandler extends AbstractSecurityExpr * Uses a {@link MethodSecurityEvaluationContext} as the EvaluationContext * implementation. */ + @Override public StandardEvaluationContext createEvaluationContextInternal(Authentication auth, MethodInvocation mi) { return new MethodSecurityEvaluationContext(auth, mi, getParameterNameDiscoverer()); } @@ -77,6 +78,7 @@ public class DefaultMethodSecurityExpressionHandler extends AbstractSecurityExpr /** * Creates the root object for expression evaluation. */ + @Override protected MethodSecurityExpressionOperations createSecurityExpressionRoot(Authentication authentication, MethodInvocation invocation) { MethodSecurityExpressionRoot root = new MethodSecurityExpressionRoot(authentication); @@ -97,6 +99,7 @@ public class DefaultMethodSecurityExpressionHandler extends AbstractSecurityExpr * modified to contain the elements for which the permission expression evaluates to * {@code true}. For an array, a new array instance will be returned. */ + @Override @SuppressWarnings("unchecked") public Object filter(Object filterTarget, Expression filterExpression, EvaluationContext ctx) { MethodSecurityExpressionOperations rootObject = (MethodSecurityExpressionOperations) ctx.getRootObject() @@ -248,6 +251,7 @@ public class DefaultMethodSecurityExpressionHandler extends AbstractSecurityExpr this.permissionCacheOptimizer = permissionCacheOptimizer; } + @Override public void setReturnObject(Object returnObject, EvaluationContext ctx) { ((MethodSecurityExpressionOperations) ctx.getRootObject().getValue()).setReturnObject(returnObject); } diff --git a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java index 40e0f0c500..ef49f46259 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java @@ -42,6 +42,7 @@ public class ExpressionBasedAnnotationAttributeFactory implements PrePostInvocat this.handler = handler; } + @Override public PreInvocationAttribute createPreInvocationAttribute(String preFilterAttribute, String filterObject, String preAuthorizeAttribute) { try { @@ -58,6 +59,7 @@ public class ExpressionBasedAnnotationAttributeFactory implements PrePostInvocat } } + @Override public PostInvocationAttribute createPostInvocationAttribute(String postFilterAttribute, String postAuthorizeAttribute) { try { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java index d9f049fcb7..5051258a09 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java @@ -41,6 +41,7 @@ public class ExpressionBasedPostInvocationAdvice implements PostInvocationAuthor this.expressionHandler = expressionHandler; } + @Override public Object after(Authentication authentication, MethodInvocation mi, PostInvocationAttribute postAttr, Object returnedObject) throws AccessDeniedException { PostInvocationExpressionAttribute pia = (PostInvocationExpressionAttribute) postAttr; diff --git a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java index 9a1de85b5b..651614e6bf 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java @@ -39,6 +39,7 @@ public class ExpressionBasedPreInvocationAdvice implements PreInvocationAuthoriz private MethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler(); + @Override public boolean before(Authentication authentication, MethodInvocation mi, PreInvocationAttribute attr) { PreInvocationExpressionAttribute preAttr = (PreInvocationExpressionAttribute) attr; EvaluationContext ctx = this.expressionHandler.createEvaluationContext(authentication, mi); diff --git a/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java b/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java index 8e78613699..13d0e6ab42 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java @@ -36,18 +36,22 @@ class MethodSecurityExpressionRoot extends SecurityExpressionRoot implements Met super(a); } + @Override public void setFilterObject(Object filterObject) { this.filterObject = filterObject; } + @Override public Object getFilterObject() { return this.filterObject; } + @Override public void setReturnObject(Object returnObject) { this.returnObject = returnObject; } + @Override public Object getReturnObject() { return this.returnObject; } @@ -62,6 +66,7 @@ class MethodSecurityExpressionRoot extends SecurityExpressionRoot implements Met this.target = target; } + @Override public Object getThis() { return this.target; } diff --git a/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java b/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java index fe2b652571..9942abbc70 100644 --- a/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java +++ b/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java @@ -25,6 +25,7 @@ import org.springframework.security.core.GrantedAuthority; */ public final class NullRoleHierarchy implements RoleHierarchy { + @Override public Collection getReachableGrantedAuthorities( Collection authorities) { return authorities; diff --git a/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapper.java b/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapper.java index f78b286041..591a04fc1e 100644 --- a/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapper.java +++ b/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapper.java @@ -31,6 +31,7 @@ public class RoleHierarchyAuthoritiesMapper implements GrantedAuthoritiesMapper this.roleHierarchy = roleHierarchy; } + @Override public Collection mapAuthorities(Collection authorities) { return this.roleHierarchy.getReachableGrantedAuthorities(authorities); } diff --git a/core/src/main/java/org/springframework/security/access/intercept/AbstractSecurityInterceptor.java b/core/src/main/java/org/springframework/security/access/intercept/AbstractSecurityInterceptor.java index c5780221d4..9dc828e31c 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/AbstractSecurityInterceptor.java +++ b/core/src/main/java/org/springframework/security/access/intercept/AbstractSecurityInterceptor.java @@ -127,6 +127,7 @@ public abstract class AbstractSecurityInterceptor private boolean publishAuthorizationSuccess = false; + @Override public void afterPropertiesSet() { Assert.notNull(getSecureObjectClass(), "Subclass must provide a non-null response to getSecureObjectClass()"); Assert.notNull(this.messages, "A message source must be set"); @@ -419,6 +420,7 @@ public abstract class AbstractSecurityInterceptor this.alwaysReauthenticate = alwaysReauthenticate; } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { this.eventPublisher = applicationEventPublisher; } @@ -427,6 +429,7 @@ public abstract class AbstractSecurityInterceptor this.authenticationManager = newManager; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } @@ -474,6 +477,7 @@ public abstract class AbstractSecurityInterceptor private static class NoOpAuthenticationManager implements AuthenticationManager { + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { throw new AuthenticationServiceException("Cannot authenticate " + authentication); } diff --git a/core/src/main/java/org/springframework/security/access/intercept/AfterInvocationProviderManager.java b/core/src/main/java/org/springframework/security/access/intercept/AfterInvocationProviderManager.java index f4311b5ac4..26626f006b 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/AfterInvocationProviderManager.java +++ b/core/src/main/java/org/springframework/security/access/intercept/AfterInvocationProviderManager.java @@ -52,6 +52,7 @@ public class AfterInvocationProviderManager implements AfterInvocationManager, I private List providers; + @Override public void afterPropertiesSet() { checkIfValidList(this.providers); } @@ -62,6 +63,7 @@ public class AfterInvocationProviderManager implements AfterInvocationManager, I } } + @Override public Object decide(Authentication authentication, Object object, Collection config, Object returnedObject) throws AccessDeniedException { @@ -89,6 +91,7 @@ public class AfterInvocationProviderManager implements AfterInvocationManager, I } } + @Override public boolean supports(ConfigAttribute attribute) { for (AfterInvocationProvider provider : this.providers) { if (logger.isDebugEnabled()) { @@ -114,6 +117,7 @@ public class AfterInvocationProviderManager implements AfterInvocationManager, I * object class, which requires every one of its AfterInvocationProviders * to support the secure object class */ + @Override public boolean supports(Class clazz) { for (AfterInvocationProvider provider : this.providers) { if (!provider.supports(clazz)) { diff --git a/core/src/main/java/org/springframework/security/access/intercept/MethodInvocationPrivilegeEvaluator.java b/core/src/main/java/org/springframework/security/access/intercept/MethodInvocationPrivilegeEvaluator.java index ed897c3604..131149429d 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/MethodInvocationPrivilegeEvaluator.java +++ b/core/src/main/java/org/springframework/security/access/intercept/MethodInvocationPrivilegeEvaluator.java @@ -49,6 +49,7 @@ public class MethodInvocationPrivilegeEvaluator implements InitializingBean { private AbstractSecurityInterceptor securityInterceptor; + @Override public void afterPropertiesSet() { Assert.notNull(this.securityInterceptor, "SecurityInterceptor required"); } diff --git a/core/src/main/java/org/springframework/security/access/intercept/NullRunAsManager.java b/core/src/main/java/org/springframework/security/access/intercept/NullRunAsManager.java index 71c752f018..1cd0bf85d1 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/NullRunAsManager.java +++ b/core/src/main/java/org/springframework/security/access/intercept/NullRunAsManager.java @@ -31,14 +31,17 @@ import org.springframework.security.core.Authentication; */ final class NullRunAsManager implements RunAsManager { + @Override public Authentication buildRunAs(Authentication authentication, Object object, Collection config) { return null; } + @Override public boolean supports(ConfigAttribute attribute) { return false; } + @Override public boolean supports(Class clazz) { return true; } diff --git a/core/src/main/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProvider.java b/core/src/main/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProvider.java index 9c571ae280..274d20b2c3 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProvider.java @@ -46,10 +46,12 @@ public class RunAsImplAuthenticationProvider implements InitializingBean, Authen private String key; + @Override public void afterPropertiesSet() { Assert.notNull(this.key, "A Key is required and should match that configured for the RunAsManagerImpl"); } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { RunAsUserToken token = (RunAsUserToken) authentication; @@ -70,10 +72,12 @@ public class RunAsImplAuthenticationProvider implements InitializingBean, Authen this.key = key; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } + @Override public boolean supports(Class authentication) { return RunAsUserToken.class.isAssignableFrom(authentication); } diff --git a/core/src/main/java/org/springframework/security/access/intercept/RunAsManagerImpl.java b/core/src/main/java/org/springframework/security/access/intercept/RunAsManagerImpl.java index 22b72fd757..144af06954 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/RunAsManagerImpl.java +++ b/core/src/main/java/org/springframework/security/access/intercept/RunAsManagerImpl.java @@ -59,11 +59,13 @@ public class RunAsManagerImpl implements RunAsManager, InitializingBean { private String rolePrefix = "ROLE_"; + @Override public void afterPropertiesSet() { Assert.notNull(this.key, "A Key is required and should match that configured for the RunAsImplAuthenticationProvider"); } + @Override public Authentication buildRunAs(Authentication authentication, Object object, Collection attributes) { List newAuthorities = new ArrayList<>(); @@ -108,6 +110,7 @@ public class RunAsManagerImpl implements RunAsManager, InitializingBean { this.rolePrefix = rolePrefix; } + @Override public boolean supports(ConfigAttribute attribute) { return attribute.getAttribute() != null && attribute.getAttribute().startsWith("RUN_AS_"); } @@ -118,6 +121,7 @@ public class RunAsManagerImpl implements RunAsManager, InitializingBean { * @param clazz the secure object * @return always true */ + @Override public boolean supports(Class clazz) { return true; } diff --git a/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor.java b/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor.java index 4ecc133fa6..42e1af08d1 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor.java +++ b/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor.java @@ -41,6 +41,7 @@ public class MethodSecurityInterceptor extends AbstractSecurityInterceptor imple private MethodSecurityMetadataSource securityMetadataSource; + @Override public Class getSecureObjectClass() { return MethodInvocation.class; } @@ -52,6 +53,7 @@ public class MethodSecurityInterceptor extends AbstractSecurityInterceptor imple * {@code AfterInvocationManager}). * @throws Throwable if any error occurs */ + @Override public Object invoke(MethodInvocation mi) throws Throwable { InterceptorStatusToken token = super.beforeInvocation(mi); @@ -69,6 +71,7 @@ public class MethodSecurityInterceptor extends AbstractSecurityInterceptor imple return this.securityMetadataSource; } + @Override public SecurityMetadataSource obtainSecurityMetadataSource() { return this.securityMetadataSource; } diff --git a/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisor.java b/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisor.java index cc0872503a..89d04e208a 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisor.java +++ b/core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisor.java @@ -91,10 +91,12 @@ public class MethodSecurityMetadataSourceAdvisor extends AbstractPointcutAdvisor this.metadataSourceBeanName = attributeSourceBeanName; } + @Override public Pointcut getPointcut() { return this.pointcut; } + @Override public Advice getAdvice() { synchronized (this.adviceMonitor) { if (this.interceptor == null) { @@ -106,6 +108,7 @@ public class MethodSecurityMetadataSourceAdvisor extends AbstractPointcutAdvisor } } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } @@ -119,6 +122,7 @@ public class MethodSecurityMetadataSourceAdvisor extends AbstractPointcutAdvisor class MethodSecurityMetadataSourcePointcut extends StaticMethodMatcherPointcut implements Serializable { + @Override @SuppressWarnings("unchecked") public boolean matches(Method m, Class targetClass) { Collection attributes = MethodSecurityMetadataSourceAdvisor.this.attributeSource.getAttributes(m, diff --git a/core/src/main/java/org/springframework/security/access/intercept/aspectj/MethodInvocationAdapter.java b/core/src/main/java/org/springframework/security/access/intercept/aspectj/MethodInvocationAdapter.java index a3a84f48fa..a87df17cc9 100644 --- a/core/src/main/java/org/springframework/security/access/intercept/aspectj/MethodInvocationAdapter.java +++ b/core/src/main/java/org/springframework/security/access/intercept/aspectj/MethodInvocationAdapter.java @@ -78,22 +78,27 @@ public final class MethodInvocationAdapter implements MethodInvocation { return method; } + @Override public Method getMethod() { return this.method; } + @Override public Object[] getArguments() { return this.jp.getArgs(); } + @Override public AccessibleObject getStaticPart() { return this.method; } + @Override public Object getThis() { return this.target; } + @Override public Object proceed() throws Throwable { return this.jp.proceed(); } diff --git a/core/src/main/java/org/springframework/security/access/method/AbstractFallbackMethodSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/method/AbstractFallbackMethodSecurityMetadataSource.java index d82f417a72..e2e8ff8c5e 100644 --- a/core/src/main/java/org/springframework/security/access/method/AbstractFallbackMethodSecurityMetadataSource.java +++ b/core/src/main/java/org/springframework/security/access/method/AbstractFallbackMethodSecurityMetadataSource.java @@ -45,6 +45,7 @@ import org.springframework.security.access.ConfigAttribute; */ public abstract class AbstractFallbackMethodSecurityMetadataSource extends AbstractMethodSecurityMetadataSource { + @Override public Collection getAttributes(Method method, Class targetClass) { // The method may be on an interface, but we need attributes from the target // class. diff --git a/core/src/main/java/org/springframework/security/access/method/AbstractMethodSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/method/AbstractMethodSecurityMetadataSource.java index 11a0d0dd50..3b3a9809b4 100644 --- a/core/src/main/java/org/springframework/security/access/method/AbstractMethodSecurityMetadataSource.java +++ b/core/src/main/java/org/springframework/security/access/method/AbstractMethodSecurityMetadataSource.java @@ -36,6 +36,7 @@ public abstract class AbstractMethodSecurityMetadataSource implements MethodSecu protected final Log logger = LogFactory.getLog(getClass()); + @Override public final Collection getAttributes(Object object) { if (object instanceof MethodInvocation) { MethodInvocation mi = (MethodInvocation) object; @@ -59,6 +60,7 @@ public abstract class AbstractMethodSecurityMetadataSource implements MethodSecu throw new IllegalArgumentException("Object must be a non-null MethodInvocation"); } + @Override public final boolean supports(Class clazz) { return (MethodInvocation.class.isAssignableFrom(clazz)); } diff --git a/core/src/main/java/org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource.java index 11306bd964..69dd3dd75f 100644 --- a/core/src/main/java/org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource.java +++ b/core/src/main/java/org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource.java @@ -49,6 +49,7 @@ public final class DelegatingMethodSecurityMetadataSource extends AbstractMethod this.methodSecurityMetadataSources = methodSecurityMetadataSources; } + @Override public Collection getAttributes(Method method, Class targetClass) { DefaultCacheKey cacheKey = new DefaultCacheKey(method, targetClass); synchronized (this.attributeCache) { diff --git a/core/src/main/java/org/springframework/security/access/prepost/PostInvocationAdviceProvider.java b/core/src/main/java/org/springframework/security/access/prepost/PostInvocationAdviceProvider.java index 00a143dd34..9b5727580f 100644 --- a/core/src/main/java/org/springframework/security/access/prepost/PostInvocationAdviceProvider.java +++ b/core/src/main/java/org/springframework/security/access/prepost/PostInvocationAdviceProvider.java @@ -45,6 +45,7 @@ public class PostInvocationAdviceProvider implements AfterInvocationProvider { this.postAdvice = postAdvice; } + @Override public Object decide(Authentication authentication, Object object, Collection config, Object returnedObject) throws AccessDeniedException { @@ -67,10 +68,12 @@ public class PostInvocationAdviceProvider implements AfterInvocationProvider { return null; } + @Override public boolean supports(ConfigAttribute attribute) { return attribute instanceof PostInvocationAttribute; } + @Override public boolean supports(Class clazz) { return clazz.isAssignableFrom(MethodInvocation.class); } diff --git a/core/src/main/java/org/springframework/security/access/prepost/PreInvocationAuthorizationAdviceVoter.java b/core/src/main/java/org/springframework/security/access/prepost/PreInvocationAuthorizationAdviceVoter.java index cf5d41dee9..cd9b4fd101 100644 --- a/core/src/main/java/org/springframework/security/access/prepost/PreInvocationAuthorizationAdviceVoter.java +++ b/core/src/main/java/org/springframework/security/access/prepost/PreInvocationAuthorizationAdviceVoter.java @@ -48,14 +48,17 @@ public class PreInvocationAuthorizationAdviceVoter implements AccessDecisionVote this.preAdvice = pre; } + @Override public boolean supports(ConfigAttribute attribute) { return attribute instanceof PreInvocationAttribute; } + @Override public boolean supports(Class clazz) { return MethodInvocation.class.isAssignableFrom(clazz); } + @Override public int vote(Authentication authentication, MethodInvocation method, Collection attributes) { // Find prefilter and preauth (or combined) attributes diff --git a/core/src/main/java/org/springframework/security/access/prepost/PrePostAdviceReactiveMethodInterceptor.java b/core/src/main/java/org/springframework/security/access/prepost/PrePostAdviceReactiveMethodInterceptor.java index e8c48d155c..f1552942e5 100644 --- a/core/src/main/java/org/springframework/security/access/prepost/PrePostAdviceReactiveMethodInterceptor.java +++ b/core/src/main/java/org/springframework/security/access/prepost/PrePostAdviceReactiveMethodInterceptor.java @@ -92,17 +92,18 @@ public class PrePostAdviceReactiveMethodInterceptor implements MethodInterceptor PostInvocationAttribute attr = findPostInvocationAttribute(attributes); if (Mono.class.isAssignableFrom(returnType)) { - return toInvoke.flatMap(auth -> this.>proceed(invocation) + return toInvoke.flatMap(auth -> PrePostAdviceReactiveMethodInterceptor.>proceed(invocation) .map(r -> attr == null ? r : this.postAdvice.after(auth, invocation, attr, r))); } if (Flux.class.isAssignableFrom(returnType)) { - return toInvoke.flatMapMany(auth -> this.>proceed(invocation) + return toInvoke.flatMapMany(auth -> PrePostAdviceReactiveMethodInterceptor.>proceed(invocation) .map(r -> attr == null ? r : this.postAdvice.after(auth, invocation, attr, r))); } - return toInvoke.flatMapMany(auth -> Flux.from(this.>proceed(invocation)) - .map(r -> attr == null ? r : this.postAdvice.after(auth, invocation, attr, r))); + return toInvoke + .flatMapMany(auth -> Flux.from(PrePostAdviceReactiveMethodInterceptor.>proceed(invocation)) + .map(r -> attr == null ? r : this.postAdvice.after(auth, invocation, attr, r))); } private static > T proceed(final MethodInvocation invocation) { diff --git a/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java b/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java index 4aafaaeac6..d603c6183e 100644 --- a/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java +++ b/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java @@ -56,6 +56,7 @@ public abstract class AbstractAccessDecisionManager this.decisionVoters = decisionVoters; } + @Override public void afterPropertiesSet() { Assert.notEmpty(this.decisionVoters, "A list of AccessDecisionVoters is required"); Assert.notNull(this.messages, "A message source must be set"); @@ -80,10 +81,12 @@ public abstract class AbstractAccessDecisionManager this.allowIfAllAbstainDecisions = allowIfAllAbstainDecisions; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } + @Override public boolean supports(ConfigAttribute attribute) { for (AccessDecisionVoter voter : this.decisionVoters) { if (voter.supports(attribute)) { @@ -103,6 +106,7 @@ public abstract class AbstractAccessDecisionManager * @param clazz the type of secured object being presented * @return true if this type is supported */ + @Override public boolean supports(Class clazz) { for (AccessDecisionVoter voter : this.decisionVoters) { if (!voter.supports(clazz)) { diff --git a/core/src/main/java/org/springframework/security/access/vote/AbstractAclVoter.java b/core/src/main/java/org/springframework/security/access/vote/AbstractAclVoter.java index b5ed99bc61..bc070ade8e 100644 --- a/core/src/main/java/org/springframework/security/access/vote/AbstractAclVoter.java +++ b/core/src/main/java/org/springframework/security/access/vote/AbstractAclVoter.java @@ -64,6 +64,7 @@ public abstract class AbstractAclVoter implements AccessDecisionVotertrue if the secure object is MethodInvocation, * false otherwise */ + @Override public boolean supports(Class clazz) { return (MethodInvocation.class.isAssignableFrom(clazz)); } diff --git a/core/src/main/java/org/springframework/security/access/vote/AffirmativeBased.java b/core/src/main/java/org/springframework/security/access/vote/AffirmativeBased.java index 7031d4c995..1ddc9157c8 100644 --- a/core/src/main/java/org/springframework/security/access/vote/AffirmativeBased.java +++ b/core/src/main/java/org/springframework/security/access/vote/AffirmativeBased.java @@ -51,6 +51,7 @@ public class AffirmativeBased extends AbstractAccessDecisionManager { * being invoked * @throws AccessDeniedException if access is denied */ + @Override public void decide(Authentication authentication, Object object, Collection configAttributes) throws AccessDeniedException { int deny = 0; diff --git a/core/src/main/java/org/springframework/security/access/vote/AuthenticatedVoter.java b/core/src/main/java/org/springframework/security/access/vote/AuthenticatedVoter.java index ea30cdc8c6..606f24365b 100644 --- a/core/src/main/java/org/springframework/security/access/vote/AuthenticatedVoter.java +++ b/core/src/main/java/org/springframework/security/access/vote/AuthenticatedVoter.java @@ -66,6 +66,7 @@ public class AuthenticatedVoter implements AccessDecisionVoter { this.authenticationTrustResolver = authenticationTrustResolver; } + @Override public boolean supports(ConfigAttribute attribute) { if ((attribute.getAttribute() != null) && (IS_AUTHENTICATED_FULLY.equals(attribute.getAttribute()) || IS_AUTHENTICATED_REMEMBERED.equals(attribute.getAttribute()) @@ -83,10 +84,12 @@ public class AuthenticatedVoter implements AccessDecisionVoter { * @param clazz the secure object type * @return always {@code true} */ + @Override public boolean supports(Class clazz) { return true; } + @Override public int vote(Authentication authentication, Object object, Collection attributes) { int result = ACCESS_ABSTAIN; diff --git a/core/src/main/java/org/springframework/security/access/vote/ConsensusBased.java b/core/src/main/java/org/springframework/security/access/vote/ConsensusBased.java index 80c0098f25..2bd16b2930 100644 --- a/core/src/main/java/org/springframework/security/access/vote/ConsensusBased.java +++ b/core/src/main/java/org/springframework/security/access/vote/ConsensusBased.java @@ -58,6 +58,7 @@ public class ConsensusBased extends AbstractAccessDecisionManager { * being invoked * @throws AccessDeniedException if access is denied */ + @Override public void decide(Authentication authentication, Object object, Collection configAttributes) throws AccessDeniedException { int grant = 0; diff --git a/core/src/main/java/org/springframework/security/access/vote/RoleVoter.java b/core/src/main/java/org/springframework/security/access/vote/RoleVoter.java index b087c5784a..1ea83e03c3 100644 --- a/core/src/main/java/org/springframework/security/access/vote/RoleVoter.java +++ b/core/src/main/java/org/springframework/security/access/vote/RoleVoter.java @@ -66,6 +66,7 @@ public class RoleVoter implements AccessDecisionVoter { this.rolePrefix = rolePrefix; } + @Override public boolean supports(ConfigAttribute attribute) { if ((attribute.getAttribute() != null) && attribute.getAttribute().startsWith(getRolePrefix())) { return true; @@ -81,10 +82,12 @@ public class RoleVoter implements AccessDecisionVoter { * @param clazz the secure object * @return always true */ + @Override public boolean supports(Class clazz) { return true; } + @Override public int vote(Authentication authentication, Object object, Collection attributes) { if (authentication == null) { return ACCESS_DENIED; diff --git a/core/src/main/java/org/springframework/security/access/vote/UnanimousBased.java b/core/src/main/java/org/springframework/security/access/vote/UnanimousBased.java index ae5a1b0b4a..0dae111017 100644 --- a/core/src/main/java/org/springframework/security/access/vote/UnanimousBased.java +++ b/core/src/main/java/org/springframework/security/access/vote/UnanimousBased.java @@ -55,6 +55,7 @@ public class UnanimousBased extends AbstractAccessDecisionManager { * invoked * @throws AccessDeniedException if access is denied */ + @Override public void decide(Authentication authentication, Object object, Collection attributes) throws AccessDeniedException { diff --git a/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java index 80146f6b27..dc01274d1f 100644 --- a/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java +++ b/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java @@ -65,10 +65,12 @@ public abstract class AbstractAuthenticationToken implements Authentication, Cre this.authorities = Collections.unmodifiableList(temp); } + @Override public Collection getAuthorities() { return this.authorities; } + @Override public String getName() { if (this.getPrincipal() instanceof UserDetails) { return ((UserDetails) this.getPrincipal()).getUsername(); @@ -83,14 +85,17 @@ public abstract class AbstractAuthenticationToken implements Authentication, Cre return (this.getPrincipal() == null) ? "" : this.getPrincipal().toString(); } + @Override public boolean isAuthenticated() { return this.authenticated; } + @Override public void setAuthenticated(boolean authenticated) { this.authenticated = authenticated; } + @Override public Object getDetails() { return this.details; } @@ -104,6 +109,7 @@ public abstract class AbstractAuthenticationToken implements Authentication, Cre * invoking the {@code eraseCredentials} method on any which implement * {@link CredentialsContainer}. */ + @Override public void eraseCredentials() { eraseSecret(getCredentials()); eraseSecret(getPrincipal()); diff --git a/core/src/main/java/org/springframework/security/authentication/AccountStatusUserDetailsChecker.java b/core/src/main/java/org/springframework/security/authentication/AccountStatusUserDetailsChecker.java index 1acd873244..fe0d5ef76b 100644 --- a/core/src/main/java/org/springframework/security/authentication/AccountStatusUserDetailsChecker.java +++ b/core/src/main/java/org/springframework/security/authentication/AccountStatusUserDetailsChecker.java @@ -30,6 +30,7 @@ public class AccountStatusUserDetailsChecker implements UserDetailsChecker, Mess protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor(); + @Override public void check(UserDetails user) { if (!user.isAccountNonLocked()) { throw new LockedException( diff --git a/core/src/main/java/org/springframework/security/authentication/AnonymousAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/AnonymousAuthenticationProvider.java index 098e061f95..74b428b30d 100644 --- a/core/src/main/java/org/springframework/security/authentication/AnonymousAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/authentication/AnonymousAuthenticationProvider.java @@ -44,6 +44,7 @@ public class AnonymousAuthenticationProvider implements AuthenticationProvider, this.key = key; } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { if (!supports(authentication.getClass())) { return null; @@ -61,11 +62,13 @@ public class AnonymousAuthenticationProvider implements AuthenticationProvider, return this.key; } + @Override public void setMessageSource(MessageSource messageSource) { Assert.notNull(messageSource, "messageSource cannot be null"); this.messages = new MessageSourceAccessor(messageSource); } + @Override public boolean supports(Class authentication) { return (AnonymousAuthenticationToken.class.isAssignableFrom(authentication)); } diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java index 019207b4a5..f9b16aea86 100644 --- a/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java +++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java @@ -43,6 +43,7 @@ public class AuthenticationTrustResolverImpl implements AuthenticationTrustResol return this.rememberMeClass; } + @Override public boolean isAnonymous(Authentication authentication) { if ((this.anonymousClass == null) || (authentication == null)) { return false; @@ -51,6 +52,7 @@ public class AuthenticationTrustResolverImpl implements AuthenticationTrustResol return this.anonymousClass.isAssignableFrom(authentication.getClass()); } + @Override public boolean isRememberMe(Authentication authentication) { if ((this.rememberMeClass == null) || (authentication == null)) { return false; diff --git a/core/src/main/java/org/springframework/security/authentication/CachingUserDetailsService.java b/core/src/main/java/org/springframework/security/authentication/CachingUserDetailsService.java index c87424f900..13405e694b 100644 --- a/core/src/main/java/org/springframework/security/authentication/CachingUserDetailsService.java +++ b/core/src/main/java/org/springframework/security/authentication/CachingUserDetailsService.java @@ -43,6 +43,7 @@ public class CachingUserDetailsService implements UserDetailsService { this.userCache = userCache; } + @Override public UserDetails loadUserByUsername(String username) { UserDetails user = this.userCache.getUserFromCache(username); diff --git a/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java b/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java index 8871f82af2..50b5ffffea 100644 --- a/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java +++ b/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java @@ -93,12 +93,14 @@ public class DefaultAuthenticationEventPublisher AuthenticationFailureBadCredentialsEvent.class); } + @Override public void publishAuthenticationSuccess(Authentication authentication) { if (this.applicationEventPublisher != null) { this.applicationEventPublisher.publishEvent(new AuthenticationSuccessEvent(authentication)); } } + @Override public void publishAuthenticationFailure(AuthenticationException exception, Authentication authentication) { Constructor constructor = getEventConstructor(exception); AbstractAuthenticationEvent event = null; @@ -129,6 +131,7 @@ public class DefaultAuthenticationEventPublisher return (eventConstructor == null ? this.defaultAuthenticationFailureEventConstructor : eventConstructor); } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { this.applicationEventPublisher = applicationEventPublisher; } diff --git a/core/src/main/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManager.java b/core/src/main/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManager.java index 6cbdae5df3..8c1268dc5f 100644 --- a/core/src/main/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManager.java +++ b/core/src/main/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManager.java @@ -46,6 +46,7 @@ public class DelegatingReactiveAuthenticationManager implements ReactiveAuthenti this.delegates = entryPoints; } + @Override public Mono authenticate(Authentication authentication) { return Flux.fromIterable(this.delegates).concatMap(m -> m.authenticate(authentication)).next(); } diff --git a/core/src/main/java/org/springframework/security/authentication/ProviderManager.java b/core/src/main/java/org/springframework/security/authentication/ProviderManager.java index bb0c7192a6..79b07a7d37 100644 --- a/core/src/main/java/org/springframework/security/authentication/ProviderManager.java +++ b/core/src/main/java/org/springframework/security/authentication/ProviderManager.java @@ -127,6 +127,7 @@ public class ProviderManager implements AuthenticationManager, MessageSourceAwar checkState(); } + @Override public void afterPropertiesSet() { checkState(); } @@ -161,6 +162,7 @@ public class ProviderManager implements AuthenticationManager, MessageSourceAwar * @return a fully authenticated object including credentials. * @throws AuthenticationException if authentication fails. */ + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { Class toTest = authentication.getClass(); AuthenticationException lastException = null; @@ -271,6 +273,7 @@ public class ProviderManager implements AuthenticationManager, MessageSourceAwar return this.providers; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } @@ -298,9 +301,11 @@ public class ProviderManager implements AuthenticationManager, MessageSourceAwar private static final class NullEventPublisher implements AuthenticationEventPublisher { + @Override public void publishAuthenticationFailure(AuthenticationException exception, Authentication authentication) { } + @Override public void publishAuthenticationSuccess(Authentication authentication) { } diff --git a/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationProvider.java index 5c792ccafd..f15311ab6a 100644 --- a/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationProvider.java @@ -43,10 +43,12 @@ public class RememberMeAuthenticationProvider implements AuthenticationProvider, this.key = key; } + @Override public void afterPropertiesSet() { Assert.notNull(this.messages, "A message source must be set"); } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { if (!supports(authentication.getClass())) { return null; @@ -64,10 +66,12 @@ public class RememberMeAuthenticationProvider implements AuthenticationProvider, return this.key; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } + @Override public boolean supports(Class authentication) { return (RememberMeAuthenticationToken.class.isAssignableFrom(authentication)); } diff --git a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java index d94be00f44..ef22c5d1c2 100644 --- a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java @@ -34,10 +34,12 @@ import org.springframework.security.core.AuthenticationException; */ public class TestingAuthenticationProvider implements AuthenticationProvider { + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { return authentication; } + @Override public boolean supports(Class authentication) { return TestingAuthenticationToken.class.isAssignableFrom(authentication); } diff --git a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java index 634f9f446e..8162b45965 100644 --- a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java +++ b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java @@ -54,10 +54,12 @@ public class TestingAuthenticationToken extends AbstractAuthenticationToken { setAuthenticated(true); } + @Override public Object getCredentials() { return this.credentials; } + @Override public Object getPrincipal() { return this.principal; } diff --git a/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java index e293aa67cd..ca28be6eb5 100644 --- a/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java +++ b/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java @@ -70,14 +70,17 @@ public class UsernamePasswordAuthenticationToken extends AbstractAuthenticationT super.setAuthenticated(true); // must use super, as we override } + @Override public Object getCredentials() { return this.credentials; } + @Override public Object getPrincipal() { return this.principal; } + @Override public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { if (isAuthenticated) { throw new IllegalArgumentException( diff --git a/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java index 9bbe5a32ef..b9f93d4a7d 100644 --- a/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java @@ -112,12 +112,14 @@ public abstract class AbstractUserDetailsAuthenticationProvider protected abstract void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException; + @Override public final void afterPropertiesSet() throws Exception { Assert.notNull(this.userCache, "A user cache must be set"); Assert.notNull(this.messages, "A message source must be set"); doAfterPropertiesSet(); } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { Assert.isInstanceOf(UsernamePasswordAuthenticationToken.class, authentication, () -> this.messages.getMessage("AbstractUserDetailsAuthenticationProvider.onlySupports", @@ -286,6 +288,7 @@ public abstract class AbstractUserDetailsAuthenticationProvider this.hideUserNotFoundExceptions = hideUserNotFoundExceptions; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } @@ -294,6 +297,7 @@ public abstract class AbstractUserDetailsAuthenticationProvider this.userCache = userCache; } + @Override public boolean supports(Class authentication) { return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication)); } @@ -325,6 +329,7 @@ public abstract class AbstractUserDetailsAuthenticationProvider private class DefaultPreAuthenticationChecks implements UserDetailsChecker { + @Override public void check(UserDetails user) { if (!user.isAccountNonLocked()) { AbstractUserDetailsAuthenticationProvider.this.logger.debug("User account is locked"); @@ -352,6 +357,7 @@ public abstract class AbstractUserDetailsAuthenticationProvider private class DefaultPostAuthenticationChecks implements UserDetailsChecker { + @Override public void check(UserDetails user) { if (!user.isCredentialsNonExpired()) { AbstractUserDetailsAuthenticationProvider.this.logger.debug("User account credentials have expired"); diff --git a/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java index 691050d60f..ecb852cb54 100644 --- a/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java @@ -63,6 +63,7 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthentication setPasswordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder()); } + @Override @SuppressWarnings("deprecation") protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { @@ -83,10 +84,12 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthentication } } + @Override protected void doAfterPropertiesSet() { Assert.notNull(this.userDetailsService, "A UserDetailsService must be set"); } + @Override protected final UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { prepareTimingAttackProtection(); diff --git a/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java b/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java index 57c69c66fb..71b153c201 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java +++ b/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java @@ -39,6 +39,7 @@ public class LoggerListener implements ApplicationListener aClass) { return UsernamePasswordAuthenticationToken.class.isAssignableFrom(aClass); } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { this.applicationEventPublisher = applicationEventPublisher; } @@ -375,6 +380,7 @@ public abstract class AbstractJaasAuthenticationProvider implements Authenticati this.authentication = authentication; } + @Override public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (JaasAuthenticationCallbackHandler handler : AbstractJaasAuthenticationProvider.this.callbackHandlers) { for (Callback callback : callbacks) { diff --git a/core/src/main/java/org/springframework/security/authentication/jaas/DefaultLoginExceptionResolver.java b/core/src/main/java/org/springframework/security/authentication/jaas/DefaultLoginExceptionResolver.java index f57dccff61..f106e4f6e7 100644 --- a/core/src/main/java/org/springframework/security/authentication/jaas/DefaultLoginExceptionResolver.java +++ b/core/src/main/java/org/springframework/security/authentication/jaas/DefaultLoginExceptionResolver.java @@ -29,6 +29,7 @@ import org.springframework.security.core.AuthenticationException; */ public class DefaultLoginExceptionResolver implements LoginExceptionResolver { + @Override public AuthenticationException resolveException(LoginException e) { return new AuthenticationServiceException(e.getMessage(), e); } diff --git a/core/src/main/java/org/springframework/security/authentication/jaas/JaasNameCallbackHandler.java b/core/src/main/java/org/springframework/security/authentication/jaas/JaasNameCallbackHandler.java index 40795ee6f4..d2aba3590d 100644 --- a/core/src/main/java/org/springframework/security/authentication/jaas/JaasNameCallbackHandler.java +++ b/core/src/main/java/org/springframework/security/authentication/jaas/JaasNameCallbackHandler.java @@ -43,6 +43,7 @@ public class JaasNameCallbackHandler implements JaasAuthenticationCallbackHandle * @param authentication * */ + @Override public void handle(Callback callback, Authentication authentication) { if (callback instanceof NameCallback) { NameCallback ncb = (NameCallback) callback; diff --git a/core/src/main/java/org/springframework/security/authentication/jaas/JaasPasswordCallbackHandler.java b/core/src/main/java/org/springframework/security/authentication/jaas/JaasPasswordCallbackHandler.java index 5d3bb4e8aa..c558a6ea74 100644 --- a/core/src/main/java/org/springframework/security/authentication/jaas/JaasPasswordCallbackHandler.java +++ b/core/src/main/java/org/springframework/security/authentication/jaas/JaasPasswordCallbackHandler.java @@ -44,6 +44,7 @@ public class JaasPasswordCallbackHandler implements JaasAuthenticationCallbackHa * @param auth * */ + @Override public void handle(Callback callback, Authentication auth) { if (callback instanceof PasswordCallback) { PasswordCallback pc = (PasswordCallback) callback; diff --git a/core/src/main/java/org/springframework/security/authentication/jaas/SecurityContextLoginModule.java b/core/src/main/java/org/springframework/security/authentication/jaas/SecurityContextLoginModule.java index 4a629c4323..c74bfcd6c1 100644 --- a/core/src/main/java/org/springframework/security/authentication/jaas/SecurityContextLoginModule.java +++ b/core/src/main/java/org/springframework/security/authentication/jaas/SecurityContextLoginModule.java @@ -68,6 +68,7 @@ public class SecurityContextLoginModule implements LoginModule { * should be ignored. * @exception LoginException if the abort fails */ + @Override public boolean abort() { if (this.authen == null) { return false; @@ -85,6 +86,7 @@ public class SecurityContextLoginModule implements LoginModule { * should be ignored. * @exception LoginException if the commit fails */ + @Override public boolean commit() { if (this.authen == null) { return false; @@ -113,6 +115,7 @@ public class SecurityContextLoginModule implements LoginModule { * @param sharedState is ignored * @param options are ignored */ + @Override @SuppressWarnings("unchecked") public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { this.subject = subject; @@ -129,6 +132,7 @@ public class SecurityContextLoginModule implements LoginModule { * LoginModule should be ignored. * @throws LoginException if the authentication fails */ + @Override public boolean login() throws LoginException { this.authen = SecurityContextHolder.getContext().getAuthentication(); @@ -154,6 +158,7 @@ public class SecurityContextLoginModule implements LoginModule { * should be ignored. * @exception LoginException if the logout fails */ + @Override public boolean logout() { if (this.authen == null) { return false; diff --git a/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImpl.java b/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImpl.java index d4a0bbe1a7..5bf95fad72 100644 --- a/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImpl.java +++ b/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImpl.java @@ -37,10 +37,12 @@ public class RemoteAuthenticationManagerImpl implements RemoteAuthenticationMana private AuthenticationManager authenticationManager; + @Override public void afterPropertiesSet() { Assert.notNull(this.authenticationManager, "authenticationManager is required"); } + @Override public Collection attemptAuthentication(String username, String password) throws RemoteAuthenticationException { UsernamePasswordAuthenticationToken request = new UsernamePasswordAuthenticationToken(username, password); diff --git a/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java index f63e34517e..c7ea764196 100644 --- a/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java @@ -54,10 +54,12 @@ public class RemoteAuthenticationProvider implements AuthenticationProvider, Ini private RemoteAuthenticationManager remoteAuthenticationManager; + @Override public void afterPropertiesSet() { Assert.notNull(this.remoteAuthenticationManager, "remoteAuthenticationManager is mandatory"); } + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { String username = authentication.getPrincipal().toString(); Object credentials = authentication.getCredentials(); @@ -76,6 +78,7 @@ public class RemoteAuthenticationProvider implements AuthenticationProvider, Ini this.remoteAuthenticationManager = remoteAuthenticationManager; } + @Override public boolean supports(Class authentication) { return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication)); } diff --git a/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutor.java b/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutor.java index 967edc6281..fe70a8d289 100644 --- a/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutor.java +++ b/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutor.java @@ -56,6 +56,7 @@ public class DelegatingSecurityContextExecutor extends AbstractDelegatingSecurit this(delegate, null); } + @Override public final void execute(Runnable task) { task = wrap(task); this.delegate.execute(task); diff --git a/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutorService.java b/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutorService.java index db4a0b3cee..68dbc2fd15 100644 --- a/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutorService.java +++ b/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextExecutorService.java @@ -62,59 +62,71 @@ public class DelegatingSecurityContextExecutorService extends DelegatingSecurity this(delegate, null); } + @Override public final void shutdown() { getDelegate().shutdown(); } + @Override public final List shutdownNow() { return getDelegate().shutdownNow(); } + @Override public final boolean isShutdown() { return getDelegate().isShutdown(); } + @Override public final boolean isTerminated() { return getDelegate().isTerminated(); } + @Override public final boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { return getDelegate().awaitTermination(timeout, unit); } + @Override public final Future submit(Callable task) { task = wrap(task); return getDelegate().submit(task); } + @Override public final Future submit(Runnable task, T result) { task = wrap(task); return getDelegate().submit(task, result); } + @Override public final Future submit(Runnable task) { task = wrap(task); return getDelegate().submit(task); } + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public final List invokeAll(Collection tasks) throws InterruptedException { tasks = createTasks(tasks); return getDelegate().invokeAll(tasks); } + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public final List invokeAll(Collection tasks, long timeout, TimeUnit unit) throws InterruptedException { tasks = createTasks(tasks); return getDelegate().invokeAll(tasks, timeout, unit); } + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public final Object invokeAny(Collection tasks) throws InterruptedException, ExecutionException { tasks = createTasks(tasks); return getDelegate().invokeAny(tasks); } + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public final Object invokeAny(Collection tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { diff --git a/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextScheduledExecutorService.java b/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextScheduledExecutorService.java index b88c4a3b1b..5c959b10b2 100644 --- a/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextScheduledExecutorService.java +++ b/core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextScheduledExecutorService.java @@ -58,21 +58,25 @@ public final class DelegatingSecurityContextScheduledExecutorService extends Del this(delegate, null); } + @Override public ScheduledFuture schedule(Runnable command, long delay, TimeUnit unit) { command = wrap(command); return getDelegate().schedule(command, delay, unit); } + @Override public ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) { callable = wrap(callable); return getDelegate().schedule(callable, delay, unit); } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { command = wrap(command); return getDelegate().scheduleAtFixedRate(command, initialDelay, period, unit); } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) { command = wrap(command); return getDelegate().scheduleWithFixedDelay(command, initialDelay, delay, unit); diff --git a/core/src/main/java/org/springframework/security/context/DelegatingApplicationListener.java b/core/src/main/java/org/springframework/security/context/DelegatingApplicationListener.java index 89dd8982bd..61c4a84c99 100644 --- a/core/src/main/java/org/springframework/security/context/DelegatingApplicationListener.java +++ b/core/src/main/java/org/springframework/security/context/DelegatingApplicationListener.java @@ -34,6 +34,7 @@ public final class DelegatingApplicationListener implements ApplicationListener< private List listeners = new CopyOnWriteArrayList<>(); + @Override public void onApplicationEvent(ApplicationEvent event) { if (event == null) { return; diff --git a/core/src/main/java/org/springframework/security/core/authority/mapping/MapBasedAttributes2GrantedAuthoritiesMapper.java b/core/src/main/java/org/springframework/security/core/authority/mapping/MapBasedAttributes2GrantedAuthoritiesMapper.java index 1d02d0ad9c..10e39d5c65 100755 --- a/core/src/main/java/org/springframework/security/core/authority/mapping/MapBasedAttributes2GrantedAuthoritiesMapper.java +++ b/core/src/main/java/org/springframework/security/core/authority/mapping/MapBasedAttributes2GrantedAuthoritiesMapper.java @@ -47,6 +47,7 @@ public class MapBasedAttributes2GrantedAuthoritiesMapper private Set mappableAttributes = null; + @Override public void afterPropertiesSet() { Assert.notNull(this.attributes2grantedAuthoritiesMap, "attributes2grantedAuthoritiesMap must be set"); } @@ -54,6 +55,7 @@ public class MapBasedAttributes2GrantedAuthoritiesMapper /** * Map the given array of attributes to Spring Security GrantedAuthorities. */ + @Override public List getGrantedAuthorities(Collection attributes) { ArrayList gaList = new ArrayList<>(); for (String attribute : attributes) { @@ -166,6 +168,7 @@ public class MapBasedAttributes2GrantedAuthoritiesMapper * * @see org.springframework.security.core.authority.mapping.MappableAttributesRetriever#getMappableAttributes() */ + @Override public Set getMappableAttributes() { return this.mappableAttributes; } diff --git a/core/src/main/java/org/springframework/security/core/authority/mapping/NullAuthoritiesMapper.java b/core/src/main/java/org/springframework/security/core/authority/mapping/NullAuthoritiesMapper.java index fad572a925..a8ade37368 100644 --- a/core/src/main/java/org/springframework/security/core/authority/mapping/NullAuthoritiesMapper.java +++ b/core/src/main/java/org/springframework/security/core/authority/mapping/NullAuthoritiesMapper.java @@ -24,6 +24,7 @@ import org.springframework.security.core.GrantedAuthority; */ public class NullAuthoritiesMapper implements GrantedAuthoritiesMapper { + @Override public Collection mapAuthorities(Collection authorities) { return authorities; } diff --git a/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAttributes2GrantedAuthoritiesMapper.java b/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAttributes2GrantedAuthoritiesMapper.java index 41f9fe7fd7..86ef7dc033 100755 --- a/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAttributes2GrantedAuthoritiesMapper.java +++ b/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAttributes2GrantedAuthoritiesMapper.java @@ -51,6 +51,7 @@ public class SimpleAttributes2GrantedAuthoritiesMapper /** * Check whether all properties have been set to correct values. */ + @Override public void afterPropertiesSet() { Assert.isTrue(!(isConvertAttributeToUpperCase() && isConvertAttributeToLowerCase()), "Either convertAttributeToUpperCase or convertAttributeToLowerCase can be set to true, but not both"); @@ -60,6 +61,7 @@ public class SimpleAttributes2GrantedAuthoritiesMapper * Map the given list of string attributes one-to-one to Spring Security * GrantedAuthorities. */ + @Override public List getGrantedAuthorities(Collection attributes) { List result = new ArrayList<>(attributes.size()); for (String attribute : attributes) { diff --git a/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAuthorityMapper.java b/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAuthorityMapper.java index 0a061772c3..16174a0991 100644 --- a/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAuthorityMapper.java +++ b/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleAuthorityMapper.java @@ -42,6 +42,7 @@ public final class SimpleAuthorityMapper implements GrantedAuthoritiesMapper, In private boolean convertToLowerCase = false; + @Override public void afterPropertiesSet() { Assert.isTrue(!(this.convertToUpperCase && this.convertToLowerCase), "Either convertToUpperCase or convertToLowerCase can be set to true, but not both"); @@ -55,6 +56,7 @@ public final class SimpleAuthorityMapper implements GrantedAuthoritiesMapper, In * @param authorities the original authorities * @return the converted set of authorities */ + @Override public Set mapAuthorities(Collection authorities) { HashSet mapped = new HashSet<>(authorities.size()); for (GrantedAuthority authority : authorities) { diff --git a/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleMappableAttributesRetriever.java b/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleMappableAttributesRetriever.java index d66e484837..0244a701f5 100755 --- a/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleMappableAttributesRetriever.java +++ b/core/src/main/java/org/springframework/security/core/authority/mapping/SimpleMappableAttributesRetriever.java @@ -37,6 +37,7 @@ public class SimpleMappableAttributesRetriever implements MappableAttributesRetr * org.springframework.security.core.authority.mapping.MappableAttributesRetriever * #getMappableAttributes() */ + @Override public Set getMappableAttributes() { return this.mappableAttributes; } diff --git a/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java index 284fbdceb9..141c1d6354 100644 --- a/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java @@ -31,10 +31,12 @@ final class GlobalSecurityContextHolderStrategy implements SecurityContextHolder private static SecurityContext contextHolder; + @Override public void clearContext() { contextHolder = null; } + @Override public SecurityContext getContext() { if (contextHolder == null) { contextHolder = new SecurityContextImpl(); @@ -43,11 +45,13 @@ final class GlobalSecurityContextHolderStrategy implements SecurityContextHolder return contextHolder; } + @Override public void setContext(SecurityContext context) { Assert.notNull(context, "Only non-null SecurityContext instances are permitted"); contextHolder = context; } + @Override public SecurityContext createEmptyContext() { return new SecurityContextImpl(); } diff --git a/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java index 620a5affcc..fac2ce9875 100644 --- a/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java @@ -29,10 +29,12 @@ final class InheritableThreadLocalSecurityContextHolderStrategy implements Secur private static final ThreadLocal contextHolder = new InheritableThreadLocal<>(); + @Override public void clearContext() { contextHolder.remove(); } + @Override public SecurityContext getContext() { SecurityContext ctx = contextHolder.get(); @@ -44,11 +46,13 @@ final class InheritableThreadLocalSecurityContextHolderStrategy implements Secur return ctx; } + @Override public void setContext(SecurityContext context) { Assert.notNull(context, "Only non-null SecurityContext instances are permitted"); contextHolder.set(context); } + @Override public SecurityContext createEmptyContext() { return new SecurityContextImpl(); } diff --git a/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java index fa930c7aa6..88506f1a18 100644 --- a/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java @@ -30,10 +30,12 @@ final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextH private static final ThreadLocal contextHolder = new ThreadLocal<>(); + @Override public void clearContext() { contextHolder.remove(); } + @Override public SecurityContext getContext() { SecurityContext ctx = contextHolder.get(); @@ -45,11 +47,13 @@ final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextH return ctx; } + @Override public void setContext(SecurityContext context) { Assert.notNull(context, "Only non-null SecurityContext instances are permitted"); contextHolder.set(context); } + @Override public SecurityContext createEmptyContext() { return new SecurityContextImpl(); } diff --git a/core/src/main/java/org/springframework/security/core/token/KeyBasedPersistenceTokenService.java b/core/src/main/java/org/springframework/security/core/token/KeyBasedPersistenceTokenService.java index f4a0effa70..fef00a0bc1 100644 --- a/core/src/main/java/org/springframework/security/core/token/KeyBasedPersistenceTokenService.java +++ b/core/src/main/java/org/springframework/security/core/token/KeyBasedPersistenceTokenService.java @@ -81,6 +81,7 @@ public class KeyBasedPersistenceTokenService implements TokenService, Initializi private SecureRandom secureRandom; + @Override public Token allocateToken(String extendedInformation) { Assert.notNull(extendedInformation, "Must provided non-null extendedInformation (but it can be empty)"); long creationTime = new Date().getTime(); @@ -96,6 +97,7 @@ public class KeyBasedPersistenceTokenService implements TokenService, Initializi return new DefaultToken(key, creationTime, extendedInformation); } + @Override public Token verifyToken(String key) { if (key == null || "".equals(key)) { return null; @@ -172,6 +174,7 @@ public class KeyBasedPersistenceTokenService implements TokenService, Initializi this.serverInteger = serverInteger; } + @Override public void afterPropertiesSet() { Assert.hasText(this.serverSecret, "Server secret required"); Assert.notNull(this.serverInteger, "Server integer required"); diff --git a/core/src/main/java/org/springframework/security/core/token/SecureRandomFactoryBean.java b/core/src/main/java/org/springframework/security/core/token/SecureRandomFactoryBean.java index bf2cbaee39..e7f415b421 100644 --- a/core/src/main/java/org/springframework/security/core/token/SecureRandomFactoryBean.java +++ b/core/src/main/java/org/springframework/security/core/token/SecureRandomFactoryBean.java @@ -35,6 +35,7 @@ public class SecureRandomFactoryBean implements FactoryBean { private Resource seed; + @Override public SecureRandom getObject() throws Exception { SecureRandom rnd = SecureRandom.getInstance(this.algorithm); @@ -51,10 +52,12 @@ public class SecureRandomFactoryBean implements FactoryBean { return rnd; } + @Override public Class getObjectType() { return SecureRandom.class; } + @Override public boolean isSingleton() { return false; } diff --git a/core/src/main/java/org/springframework/security/core/userdetails/User.java b/core/src/main/java/org/springframework/security/core/userdetails/User.java index 408cff8a7a..12bf83f72a 100644 --- a/core/src/main/java/org/springframework/security/core/userdetails/User.java +++ b/core/src/main/java/org/springframework/security/core/userdetails/User.java @@ -121,34 +121,42 @@ public class User implements UserDetails, CredentialsContainer { this.authorities = Collections.unmodifiableSet(sortAuthorities(authorities)); } + @Override public Collection getAuthorities() { return this.authorities; } + @Override public String getPassword() { return this.password; } + @Override public String getUsername() { return this.username; } + @Override public boolean isEnabled() { return this.enabled; } + @Override public boolean isAccountNonExpired() { return this.accountNonExpired; } + @Override public boolean isAccountNonLocked() { return this.accountNonLocked; } + @Override public boolean isCredentialsNonExpired() { return this.credentialsNonExpired; } + @Override public void eraseCredentials() { this.password = null; } @@ -171,6 +179,7 @@ public class User implements UserDetails, CredentialsContainer { private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; + @Override public int compare(GrantedAuthority g1, GrantedAuthority g2) { // Neither should ever be null as each entry is checked before adding it to // the set. diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java index 56ca5f49be..b0fce0bdda 100755 --- a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java +++ b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java @@ -57,6 +57,7 @@ public class UserDetailsByNameServiceWrapper * * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ + @Override public void afterPropertiesSet() { Assert.notNull(this.userDetailsService, "UserDetailsService must be set"); } @@ -64,6 +65,7 @@ public class UserDetailsByNameServiceWrapper /** * Get the UserDetails object from the wrapped UserDetailsService implementation */ + @Override public UserDetails loadUserDetails(T authentication) throws UsernameNotFoundException { return this.userDetailsService.loadUserByUsername(authentication.getName()); } diff --git a/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java b/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java index e133cda228..b61e3a135e 100644 --- a/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java +++ b/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java @@ -38,6 +38,7 @@ public class EhCacheBasedUserCache implements UserCache, InitializingBean { private Ehcache cache; + @Override public void afterPropertiesSet() { Assert.notNull(this.cache, "cache mandatory"); } @@ -46,6 +47,7 @@ public class EhCacheBasedUserCache implements UserCache, InitializingBean { return this.cache; } + @Override public UserDetails getUserFromCache(String username) { Element element = this.cache.get(username); @@ -61,6 +63,7 @@ public class EhCacheBasedUserCache implements UserCache, InitializingBean { } } + @Override public void putUserInCache(UserDetails user) { Element element = new Element(user.getUsername(), user); @@ -79,6 +82,7 @@ public class EhCacheBasedUserCache implements UserCache, InitializingBean { this.removeUserFromCache(user.getUsername()); } + @Override public void removeUserFromCache(String username) { this.cache.remove(username); } diff --git a/core/src/main/java/org/springframework/security/core/userdetails/cache/NullUserCache.java b/core/src/main/java/org/springframework/security/core/userdetails/cache/NullUserCache.java index 5a8a0008d6..d831685bd1 100644 --- a/core/src/main/java/org/springframework/security/core/userdetails/cache/NullUserCache.java +++ b/core/src/main/java/org/springframework/security/core/userdetails/cache/NullUserCache.java @@ -26,13 +26,16 @@ import org.springframework.security.core.userdetails.UserDetails; */ public class NullUserCache implements UserCache { + @Override public UserDetails getUserFromCache(String username) { return null; } + @Override public void putUserInCache(UserDetails user) { } + @Override public void removeUserFromCache(String username) { } diff --git a/core/src/main/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCache.java b/core/src/main/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCache.java index 9cde0fb887..c5a4e23012 100644 --- a/core/src/main/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCache.java +++ b/core/src/main/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCache.java @@ -40,6 +40,7 @@ public class SpringCacheBasedUserCache implements UserCache { this.cache = cache; } + @Override public UserDetails getUserFromCache(String username) { Cache.ValueWrapper element = username != null ? this.cache.get(username) : null; @@ -55,6 +56,7 @@ public class SpringCacheBasedUserCache implements UserCache { } } + @Override public void putUserInCache(UserDetails user) { if (logger.isDebugEnabled()) { logger.debug("Cache put: " + user.getUsername()); @@ -70,6 +72,7 @@ public class SpringCacheBasedUserCache implements UserCache { this.removeUserFromCache(user.getUsername()); } + @Override public void removeUserFromCache(String username) { this.cache.evict(username); } diff --git a/core/src/main/java/org/springframework/security/core/userdetails/memory/UserAttributeEditor.java b/core/src/main/java/org/springframework/security/core/userdetails/memory/UserAttributeEditor.java index 64914495d5..163c502bbb 100644 --- a/core/src/main/java/org/springframework/security/core/userdetails/memory/UserAttributeEditor.java +++ b/core/src/main/java/org/springframework/security/core/userdetails/memory/UserAttributeEditor.java @@ -30,6 +30,7 @@ import org.springframework.util.StringUtils; */ public class UserAttributeEditor extends PropertyEditorSupport { + @Override public void setAsText(String s) throws IllegalArgumentException { if (StringUtils.hasText(s)) { String[] tokens = StringUtils.commaDelimitedListToStringArray(s); diff --git a/core/src/main/java/org/springframework/security/provisioning/InMemoryUserDetailsManager.java b/core/src/main/java/org/springframework/security/provisioning/InMemoryUserDetailsManager.java index 256155d9c5..5d07333377 100644 --- a/core/src/main/java/org/springframework/security/provisioning/InMemoryUserDetailsManager.java +++ b/core/src/main/java/org/springframework/security/provisioning/InMemoryUserDetailsManager.java @@ -84,26 +84,31 @@ public class InMemoryUserDetailsManager implements UserDetailsManager, UserDetai } } + @Override public void createUser(UserDetails user) { Assert.isTrue(!userExists(user.getUsername()), "user should not exist"); this.users.put(user.getUsername().toLowerCase(), new MutableUser(user)); } + @Override public void deleteUser(String username) { this.users.remove(username.toLowerCase()); } + @Override public void updateUser(UserDetails user) { Assert.isTrue(userExists(user.getUsername()), "user should exist"); this.users.put(user.getUsername().toLowerCase(), new MutableUser(user)); } + @Override public boolean userExists(String username) { return this.users.containsKey(username.toLowerCase()); } + @Override public void changePassword(String oldPassword, String newPassword) { Authentication currentUser = SecurityContextHolder.getContext().getAuthentication(); @@ -145,6 +150,7 @@ public class InMemoryUserDetailsManager implements UserDetailsManager, UserDetai return mutableUser; } + @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { UserDetails user = this.users.get(username.toLowerCase()); diff --git a/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java b/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java index a0ff27fe75..d857344c56 100644 --- a/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java +++ b/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java @@ -156,6 +156,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa setDataSource(dataSource); } + @Override protected void initDao() throws ApplicationContextException { if (this.authenticationManager == null) { this.logger.info("No authentication manager set. Reauthentication of users when changing passwords will " @@ -169,6 +170,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa * Executes the SQL usersByUsernameQuery and returns a list of UserDetails * objects. There should normally only be one matching user. */ + @Override protected List loadUsersByUsername(String username) { return getJdbcTemplate().query(getUsersByUsernameQuery(), new String[] { username }, (rs, rowNum) -> { @@ -191,6 +193,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa }); } + @Override public void createUser(final UserDetails user) { validateUserDetails(user); @@ -213,6 +216,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa } } + @Override public void updateUser(final UserDetails user) { validateUserDetails(user); @@ -249,6 +253,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa } } + @Override public void deleteUser(String username) { if (getEnableAuthorities()) { deleteUserAuthorities(username); @@ -261,6 +266,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa getJdbcTemplate().update(this.deleteUserAuthoritiesSql, username); } + @Override public void changePassword(String oldPassword, String newPassword) throws AuthenticationException { Authentication currentUser = SecurityContextHolder.getContext().getAuthentication(); @@ -302,6 +308,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa return newAuthentication; } + @Override public boolean userExists(String username) { List users = getJdbcTemplate().queryForList(this.userExistsSql, new String[] { username }, String.class); @@ -314,15 +321,18 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa return users.size() == 1; } + @Override public List findAllGroups() { return getJdbcTemplate().queryForList(this.findAllGroupsSql, String.class); } + @Override public List findUsersInGroup(String groupName) { Assert.hasText(groupName, "groupName should have text"); return getJdbcTemplate().queryForList(this.findUsersInGroupSql, new String[] { groupName }, String.class); } + @Override public void createGroup(final String groupName, final List authorities) { Assert.hasText(groupName, "groupName should have text"); Assert.notNull(authorities, "authorities cannot be null"); @@ -343,6 +353,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa } } + @Override public void deleteGroup(String groupName) { this.logger.debug("Deleting group '" + groupName + "'"); Assert.hasText(groupName, "groupName should have text"); @@ -354,6 +365,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa getJdbcTemplate().update(this.deleteGroupSql, groupIdPSS); } + @Override public void renameGroup(String oldName, String newName) { this.logger.debug("Changing group name from '" + oldName + "' to '" + newName + "'"); Assert.hasText(oldName, "oldName should have text"); @@ -362,6 +374,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa getJdbcTemplate().update(this.renameGroupSql, newName, oldName); } + @Override public void addUserToGroup(final String username, final String groupName) { this.logger.debug("Adding user '" + username + "' to group '" + groupName + "'"); Assert.hasText(username, "username should have text"); @@ -376,6 +389,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa this.userCache.removeUserFromCache(username); } + @Override public void removeUserFromGroup(final String username, final String groupName) { this.logger.debug("Removing user '" + username + "' to group '" + groupName + "'"); Assert.hasText(username, "username should have text"); @@ -391,6 +405,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa this.userCache.removeUserFromCache(username); } + @Override public List findGroupAuthorities(String groupName) { this.logger.debug("Loading authorities for group '" + groupName + "'"); Assert.hasText(groupName, "groupName should have text"); @@ -402,6 +417,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa }); } + @Override public void removeGroupAuthority(String groupName, final GrantedAuthority authority) { this.logger.debug("Removing authority '" + authority + "' from group '" + groupName + "'"); Assert.hasText(groupName, "groupName should have text"); @@ -415,6 +431,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa }); } + @Override public void addGroupAuthority(final String groupName, final GrantedAuthority authority) { this.logger.debug("Adding authority '" + authority + "' to group '" + groupName + "'"); Assert.hasText(groupName, "groupName should have text"); diff --git a/core/src/main/java/org/springframework/security/provisioning/MutableUser.java b/core/src/main/java/org/springframework/security/provisioning/MutableUser.java index 09af62611b..ee6c5a5d31 100644 --- a/core/src/main/java/org/springframework/security/provisioning/MutableUser.java +++ b/core/src/main/java/org/springframework/security/provisioning/MutableUser.java @@ -38,34 +38,42 @@ class MutableUser implements MutableUserDetails { this.password = user.getPassword(); } + @Override public String getPassword() { return this.password; } + @Override public void setPassword(String password) { this.password = password; } + @Override public Collection getAuthorities() { return this.delegate.getAuthorities(); } + @Override public String getUsername() { return this.delegate.getUsername(); } + @Override public boolean isAccountNonExpired() { return this.delegate.isAccountNonExpired(); } + @Override public boolean isAccountNonLocked() { return this.delegate.isAccountNonLocked(); } + @Override public boolean isCredentialsNonExpired() { return this.delegate.isCredentialsNonExpired(); } + @Override public boolean isEnabled() { return this.delegate.isEnabled(); } diff --git a/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextSchedulingTaskExecutor.java b/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextSchedulingTaskExecutor.java index ef26041454..fc70156153 100644 --- a/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextSchedulingTaskExecutor.java +++ b/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextSchedulingTaskExecutor.java @@ -59,6 +59,7 @@ public class DelegatingSecurityContextSchedulingTaskExecutor extends DelegatingS this(delegateAsyncTaskExecutor, null); } + @Override public boolean prefersShortLivedTasks() { return getDelegate().prefersShortLivedTasks(); } diff --git a/core/src/main/java/org/springframework/security/task/DelegatingSecurityContextAsyncTaskExecutor.java b/core/src/main/java/org/springframework/security/task/DelegatingSecurityContextAsyncTaskExecutor.java index 6bdcc89ee1..5f5bdba420 100644 --- a/core/src/main/java/org/springframework/security/task/DelegatingSecurityContextAsyncTaskExecutor.java +++ b/core/src/main/java/org/springframework/security/task/DelegatingSecurityContextAsyncTaskExecutor.java @@ -58,16 +58,19 @@ public class DelegatingSecurityContextAsyncTaskExecutor extends DelegatingSecuri this(delegateAsyncTaskExecutor, null); } + @Override public final void execute(Runnable task, long startTimeout) { task = wrap(task); getDelegate().execute(task, startTimeout); } + @Override public final Future submit(Runnable task) { task = wrap(task); return getDelegate().submit(task); } + @Override public final Future submit(Callable task) { task = wrap(task); return getDelegate().submit(task); diff --git a/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java b/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java index 8f7bf0d803..5a890f4dd9 100644 --- a/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java +++ b/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java @@ -43,22 +43,27 @@ public class SimpleMethodInvocation implements MethodInvocation { public SimpleMethodInvocation() { } + @Override public Object[] getArguments() { return this.arguments; } + @Override public Method getMethod() { return this.method; } + @Override public AccessibleObject getStaticPart() { throw new UnsupportedOperationException("mock method not implemented"); } + @Override public Object getThis() { return this.targetObject; } + @Override public Object proceed() { throw new UnsupportedOperationException("mock method not implemented"); } diff --git a/core/src/test/java/org/springframework/security/OtherTargetObject.java b/core/src/test/java/org/springframework/security/OtherTargetObject.java index f0bf745f41..d57d1f41f4 100644 --- a/core/src/test/java/org/springframework/security/OtherTargetObject.java +++ b/core/src/test/java/org/springframework/security/OtherTargetObject.java @@ -35,14 +35,17 @@ package org.springframework.security; */ public class OtherTargetObject extends TargetObject implements ITargetObject { + @Override public String makeLowerCase(String input) { return super.makeLowerCase(input); } + @Override public String makeUpperCase(String input) { return super.makeUpperCase(input); } + @Override public String publicMakeLowerCase(String input) { return super.publicMakeLowerCase(input); } diff --git a/core/src/test/java/org/springframework/security/TargetObject.java b/core/src/test/java/org/springframework/security/TargetObject.java index abc72f8849..5f98437350 100644 --- a/core/src/test/java/org/springframework/security/TargetObject.java +++ b/core/src/test/java/org/springframework/security/TargetObject.java @@ -26,10 +26,12 @@ import org.springframework.security.core.context.SecurityContextHolder; */ public class TargetObject implements ITargetObject { + @Override public Integer computeHashCode(String input) { return input.hashCode(); } + @Override public int countLength(String input) { return input.length(); } @@ -42,6 +44,7 @@ public class TargetObject implements ITargetObject { * boolean indicating if the Authentication object is authenticated or * not */ + @Override public String makeLowerCase(String input) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); @@ -61,6 +64,7 @@ public class TargetObject implements ITargetObject { * boolean indicating if the Authentication object is authenticated or * not */ + @Override public String makeUpperCase(String input) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); @@ -71,6 +75,7 @@ public class TargetObject implements ITargetObject { * Delegates through to the {@link #makeLowerCase(String)} method. * @param input the message to be made lower-case */ + @Override public String publicMakeLowerCase(String input) { return this.makeLowerCase(input); } diff --git a/core/src/test/java/org/springframework/security/TestDataSource.java b/core/src/test/java/org/springframework/security/TestDataSource.java index 9d79516ce1..24c7a5f5cc 100644 --- a/core/src/test/java/org/springframework/security/TestDataSource.java +++ b/core/src/test/java/org/springframework/security/TestDataSource.java @@ -38,6 +38,7 @@ public class TestDataSource extends DriverManagerDataSource implements Disposabl setPassword(""); } + @Override public void destroy() { System.out.println("Shutting down database: " + this.name); new JdbcTemplate(this).execute("SHUTDOWN"); diff --git a/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java b/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java index d269af80f1..40c2165865 100644 --- a/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java +++ b/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java @@ -88,6 +88,7 @@ public class SecurityConfigTests { this.attribute = configuration; } + @Override public String getAttribute() { return this.attribute; } diff --git a/core/src/test/java/org/springframework/security/access/annotation/BusinessServiceImpl.java b/core/src/test/java/org/springframework/security/access/annotation/BusinessServiceImpl.java index 049e74ab3e..482abd97ea 100644 --- a/core/src/test/java/org/springframework/security/access/annotation/BusinessServiceImpl.java +++ b/core/src/test/java/org/springframework/security/access/annotation/BusinessServiceImpl.java @@ -23,18 +23,22 @@ import java.util.List; */ public class BusinessServiceImpl implements BusinessService { + @Override @Secured({ "ROLE_USER" }) public void someUserMethod1() { } + @Override @Secured({ "ROLE_USER" }) public void someUserMethod2() { } + @Override @Secured({ "ROLE_USER", "ROLE_ADMIN" }) public void someUserAndAdminMethod() { } + @Override @Secured({ "ROLE_ADMIN" }) public void someAdminMethod() { } @@ -43,26 +47,32 @@ public class BusinessServiceImpl implements BusinessService { return entity; } + @Override public int someOther(String s) { return 0; } + @Override public int someOther(int input) { return input; } + @Override public List methodReturningAList(List someList) { return someList; } + @Override public List methodReturningAList(String userName, String arg2) { return new ArrayList<>(); } + @Override public Object[] methodReturningAnArray(Object[] someArray) { return null; } + @Override public void rolesAllowedUser() { } diff --git a/core/src/test/java/org/springframework/security/access/annotation/ExpressionProtectedBusinessServiceImpl.java b/core/src/test/java/org/springframework/security/access/annotation/ExpressionProtectedBusinessServiceImpl.java index aa786b5f63..4e1289a585 100644 --- a/core/src/test/java/org/springframework/security/access/annotation/ExpressionProtectedBusinessServiceImpl.java +++ b/core/src/test/java/org/springframework/security/access/annotation/ExpressionProtectedBusinessServiceImpl.java @@ -24,36 +24,45 @@ import org.springframework.security.access.prepost.PreFilter; public class ExpressionProtectedBusinessServiceImpl implements BusinessService { + @Override public void someAdminMethod() { } + @Override public int someOther(String s) { return 0; } + @Override public int someOther(int input) { return 0; } + @Override public void someUserAndAdminMethod() { } + @Override public void someUserMethod1() { } + @Override public void someUserMethod2() { } + @Override @PreFilter(filterTarget = "someList", value = "filterObject == authentication.name or filterObject == 'sam'") @PostFilter("filterObject == 'bob'") public List methodReturningAList(List someList) { return someList; } + @Override public List methodReturningAList(String userName, String arg2) { return new ArrayList<>(); } + @Override @PostFilter("filterObject == 'bob'") public Object[] methodReturningAnArray(Object[] someArray) { return someArray; @@ -64,6 +73,7 @@ public class ExpressionProtectedBusinessServiceImpl implements BusinessService { } + @Override public void rolesAllowedUser() { } diff --git a/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java b/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java index 9033802b0d..8d2500836d 100644 --- a/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java +++ b/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java @@ -27,42 +27,52 @@ import javax.annotation.security.RolesAllowed; @PermitAll public class Jsr250BusinessServiceImpl implements BusinessService { + @Override @RolesAllowed("ROLE_USER") public void someUserMethod1() { } + @Override @RolesAllowed("ROLE_USER") public void someUserMethod2() { } + @Override @RolesAllowed({ "ROLE_USER", "ROLE_ADMIN" }) public void someUserAndAdminMethod() { } + @Override @RolesAllowed("ROLE_ADMIN") public void someAdminMethod() { } + @Override public int someOther(String input) { return 0; } + @Override public int someOther(int input) { return input; } + @Override public List methodReturningAList(List someList) { return someList; } + @Override public List methodReturningAList(String userName, String arg2) { return new ArrayList<>(); } + @Override public Object[] methodReturningAnArray(Object[] someArray) { return null; } + @Override @RolesAllowed({ "USER" }) public void rolesAllowedUser() { diff --git a/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSourceTests.java b/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSourceTests.java index 4feb54a5ed..e072ee4b4c 100644 --- a/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSourceTests.java +++ b/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSourceTests.java @@ -245,6 +245,7 @@ public class Jsr250MethodSecurityMetadataSourceTests { static class Parent implements IParent { + @Override public void interfaceMethod() { } diff --git a/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSourceTests.java b/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSourceTests.java index 6f306a7cd3..842aa93485 100644 --- a/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSourceTests.java +++ b/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSourceTests.java @@ -214,6 +214,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests { @SuppressWarnings("serial") class DepartmentServiceImpl extends BusinessServiceImpl implements DepartmentService { + @Override @Secured({ "ROLE_ADMIN" }) public Department someUserMethod3(final Department dept) { return super.someUserMethod3(dept); @@ -236,10 +237,12 @@ public class SecuredAnnotationSecurityMetadataSourceTests { ADMIN, USER; + @Override public String getAttribute() { return toString(); } + @Override public String getAuthority() { return toString(); } @@ -256,6 +259,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests { class CustomSecurityAnnotationMetadataExtractor implements AnnotationMetadataExtractor { + @Override public Collection extractAttributes(CustomSecurityAnnotation securityAnnotation) { SecurityEnum[] values = securityAnnotation.value(); @@ -288,6 +292,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests { @AnnotatedAnnotation public static class AnnotatedAnnotationAtClassLevel implements ReturnVoid { + @Override public void doSomething(List param) { } @@ -295,6 +300,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests { public static class AnnotatedAnnotationAtInterfaceLevel implements ReturnVoid2 { + @Override public void doSomething(List param) { } @@ -302,6 +308,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests { public static class AnnotatedAnnotationAtMethodLevel implements ReturnVoid { + @Override @AnnotatedAnnotation public void doSomething(List param) { } diff --git a/core/src/test/java/org/springframework/security/access/expression/method/MethodExpressionVoterTests.java b/core/src/test/java/org/springframework/security/access/expression/method/MethodExpressionVoterTests.java index 79fb22a272..ea735d6a5d 100644 --- a/core/src/test/java/org/springframework/security/access/expression/method/MethodExpressionVoterTests.java +++ b/core/src/test/java/org/springframework/security/access/expression/method/MethodExpressionVoterTests.java @@ -159,12 +159,15 @@ public class MethodExpressionVoterTests { private static class TargetImpl implements Target { + @Override public void methodTakingAnArray(Object[] args) { } + @Override public void methodTakingAString(String argument) { }; + @Override public Collection methodTakingACollection(Collection collection) { return collection; } diff --git a/core/src/test/java/org/springframework/security/access/expression/method/PrePostAnnotationSecurityMetadataSourceTests.java b/core/src/test/java/org/springframework/security/access/expression/method/PrePostAnnotationSecurityMetadataSourceTests.java index 2b6deae285..bf5d8b3375 100644 --- a/core/src/test/java/org/springframework/security/access/expression/method/PrePostAnnotationSecurityMetadataSourceTests.java +++ b/core/src/test/java/org/springframework/security/access/expression/method/PrePostAnnotationSecurityMetadataSourceTests.java @@ -216,6 +216,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { @PreAuthorize("someExpression") public static class ReturnVoidImpl1 implements ReturnVoid { + @Override public void doSomething(List param) { } @@ -224,6 +225,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { @PreAuthorize("someExpression") public static class ReturnVoidImpl2 implements ReturnVoid { + @Override @PreFilter(filterTarget = "param", value = "somePreFilterExpression") public void doSomething(List param) { } @@ -232,6 +234,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class ReturnVoidImpl3 implements ReturnVoid { + @Override @PreFilter(filterTarget = "param", value = "somePreFilterExpression") public void doSomething(List param) { } @@ -240,6 +243,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class ReturnAListImpl1 implements ReturnAList { + @Override @PostFilter("somePostFilterExpression") public List doSomething(List param) { return param; @@ -249,6 +253,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class ReturnAListImpl2 implements ReturnAList { + @Override @PreAuthorize("someExpression") @PreFilter(filterTarget = "param", value = "somePreFilterExpression") @PostFilter("somePostFilterExpression") @@ -261,6 +266,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class ReturnAnotherListImpl1 implements ReturnAnotherList { + @Override public List doSomething(List param) { return param; } @@ -269,6 +275,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class ReturnAnotherListImpl2 implements ReturnAnotherList { + @Override @PreFilter(filterTarget = "param", value = "classMethodPreFilterExpression") public List doSomething(List param) { return param; @@ -294,6 +301,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { @CustomAnnotation public static class CustomAnnotationAtClassLevel implements ReturnVoid { + @Override public void doSomething(List param) { } @@ -301,6 +309,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class CustomAnnotationAtInterfaceLevel implements ReturnVoid2 { + @Override public void doSomething(List param) { } @@ -308,6 +317,7 @@ public class PrePostAnnotationSecurityMetadataSourceTests { public static class CustomAnnotationAtMethodLevel implements ReturnVoid { + @Override @CustomAnnotation public void doSomething(List param) { } diff --git a/core/src/test/java/org/springframework/security/access/intercept/AbstractSecurityInterceptorTests.java b/core/src/test/java/org/springframework/security/access/intercept/AbstractSecurityInterceptorTests.java index 0f97da499c..de5f8cd1d3 100644 --- a/core/src/test/java/org/springframework/security/access/intercept/AbstractSecurityInterceptorTests.java +++ b/core/src/test/java/org/springframework/security/access/intercept/AbstractSecurityInterceptorTests.java @@ -60,10 +60,12 @@ public class AbstractSecurityInterceptorTests { private SecurityMetadataSource securityMetadataSource; + @Override public Class getSecureObjectClass() { return null; } + @Override public SecurityMetadataSource obtainSecurityMetadataSource() { return this.securityMetadataSource; } @@ -78,10 +80,12 @@ public class AbstractSecurityInterceptorTests { private SecurityMetadataSource securityMetadataSource; + @Override public Class getSecureObjectClass() { return String.class; } + @Override public SecurityMetadataSource obtainSecurityMetadataSource() { return this.securityMetadataSource; } diff --git a/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java b/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java index 95c72aee73..6244ad3a4f 100644 --- a/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java +++ b/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java @@ -165,6 +165,7 @@ public class AfterInvocationProviderManagerTests { this.configAttribute = configAttribute; } + @Override public Object decide(Authentication authentication, Object object, Collection config, Object returnedObject) throws AccessDeniedException { if (config.contains(this.configAttribute)) { @@ -174,10 +175,12 @@ public class AfterInvocationProviderManagerTests { return returnedObject; } + @Override public boolean supports(Class clazz) { return this.secureObject.isAssignableFrom(clazz); } + @Override public boolean supports(ConfigAttribute attribute) { return attribute.equals(this.configAttribute); } diff --git a/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodInvocation.java b/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodInvocation.java index 75b6009ba3..9fec6e3e8e 100644 --- a/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodInvocation.java +++ b/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodInvocation.java @@ -41,22 +41,27 @@ public class MockMethodInvocation implements MethodInvocation { this.targetObject = targetObject; } + @Override public Object[] getArguments() { return this.arguments; } + @Override public Method getMethod() { return this.method; } + @Override public AccessibleObject getStaticPart() { return null; } + @Override public Object getThis() { return this.targetObject; } + @Override public Object proceed() { return null; } diff --git a/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java b/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java index 8445d85607..46e5985dab 100644 --- a/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java +++ b/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java @@ -136,6 +136,7 @@ public class AbstractAccessDecisionManagerTests { super(decisionVoters); } + @Override public void decide(Authentication authentication, Object object, Collection configAttributes) { } @@ -143,14 +144,17 @@ public class AbstractAccessDecisionManagerTests { private class MockStringOnlyVoter implements AccessDecisionVoter { + @Override public boolean supports(Class clazz) { return String.class.isAssignableFrom(clazz); } + @Override public boolean supports(ConfigAttribute attribute) { throw new UnsupportedOperationException("mock method not implemented"); } + @Override public int vote(Authentication authentication, Object object, Collection attributes) { throw new UnsupportedOperationException("mock method not implemented"); } diff --git a/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java b/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java index 036cf30154..f754ef6e0e 100644 --- a/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java +++ b/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java @@ -33,10 +33,12 @@ import static org.assertj.core.api.Assertions.assertThat; public class AbstractAclVoterTests { private AbstractAclVoter voter = new AbstractAclVoter() { + @Override public boolean supports(ConfigAttribute attribute) { return false; } + @Override public int vote(Authentication authentication, MethodInvocation object, Collection attributes) { return 0; diff --git a/core/src/test/java/org/springframework/security/access/vote/DenyAgainVoter.java b/core/src/test/java/org/springframework/security/access/vote/DenyAgainVoter.java index 9fb9183aa4..758e3059a7 100644 --- a/core/src/test/java/org/springframework/security/access/vote/DenyAgainVoter.java +++ b/core/src/test/java/org/springframework/security/access/vote/DenyAgainVoter.java @@ -35,6 +35,7 @@ import org.springframework.security.core.Authentication; */ public class DenyAgainVoter implements AccessDecisionVoter { + @Override public boolean supports(ConfigAttribute attribute) { if ("DENY_AGAIN_FOR_SURE".equals(attribute.getAttribute())) { return true; @@ -44,10 +45,12 @@ public class DenyAgainVoter implements AccessDecisionVoter { } } + @Override public boolean supports(Class clazz) { return true; } + @Override public int vote(Authentication authentication, Object object, Collection attributes) { Iterator iter = attributes.iterator(); diff --git a/core/src/test/java/org/springframework/security/access/vote/DenyVoter.java b/core/src/test/java/org/springframework/security/access/vote/DenyVoter.java index d080e4fd70..13bbada456 100644 --- a/core/src/test/java/org/springframework/security/access/vote/DenyVoter.java +++ b/core/src/test/java/org/springframework/security/access/vote/DenyVoter.java @@ -37,6 +37,7 @@ import org.springframework.security.core.Authentication; */ public class DenyVoter implements AccessDecisionVoter { + @Override public boolean supports(ConfigAttribute attribute) { if ("DENY_FOR_SURE".equals(attribute.getAttribute())) { return true; @@ -46,10 +47,12 @@ public class DenyVoter implements AccessDecisionVoter { } } + @Override public boolean supports(Class clazz) { return true; } + @Override public int vote(Authentication authentication, Object object, Collection attributes) { Iterator iter = attributes.iterator(); diff --git a/core/src/test/java/org/springframework/security/access/vote/RoleHierarchyVoterTests.java b/core/src/test/java/org/springframework/security/access/vote/RoleHierarchyVoterTests.java index 633b92bdbd..63aae83cd1 100644 --- a/core/src/test/java/org/springframework/security/access/vote/RoleHierarchyVoterTests.java +++ b/core/src/test/java/org/springframework/security/access/vote/RoleHierarchyVoterTests.java @@ -17,6 +17,7 @@ package org.springframework.security.access.vote; import org.junit.Test; +import org.springframework.security.access.AccessDecisionVoter; import org.springframework.security.access.SecurityConfig; import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl; import org.springframework.security.authentication.TestingAuthenticationToken; @@ -35,7 +36,7 @@ public class RoleHierarchyVoterTests { RoleHierarchyVoter voter = new RoleHierarchyVoter(roleHierarchyImpl); assertThat(voter.vote(auth, new Object(), SecurityConfig.createList("ROLE_B"))) - .isEqualTo(RoleHierarchyVoter.ACCESS_GRANTED); + .isEqualTo(AccessDecisionVoter.ACCESS_GRANTED); } } diff --git a/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java index e4f324e122..a880b06f0f 100644 --- a/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java +++ b/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java @@ -147,10 +147,12 @@ public class AbstractAuthenticationTokenTests { this.credentials = credentials; } + @Override public Object getCredentials() { return this.credentials; } + @Override public Object getPrincipal() { return this.principal; } diff --git a/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java b/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java index b5e3371a65..da36c6221d 100644 --- a/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java +++ b/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java @@ -48,10 +48,12 @@ public class ProviderManagerTests { @Test(expected = ProviderNotFoundException.class) public void authenticationFailsWithUnsupportedToken() { Authentication token = new AbstractAuthenticationToken(null) { + @Override public Object getCredentials() { return ""; } + @Override public Object getPrincipal() { return ""; } @@ -131,11 +133,13 @@ public class ProviderManagerTests { // A provider which sets the details object AuthenticationProvider provider = new AuthenticationProvider() { + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { ((TestingAuthenticationToken) authentication).setDetails(resultDetails); return authentication; } + @Override public boolean supports(Class authentication) { return true; } @@ -360,6 +364,7 @@ public class ProviderManagerTests { private static class MockProvider implements AuthenticationProvider { + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { if (supports(authentication.getClass())) { return authentication; @@ -369,6 +374,7 @@ public class ProviderManagerTests { } } + @Override public boolean supports(Class authentication) { return TestingAuthenticationToken.class.isAssignableFrom(authentication) || UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication); diff --git a/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java index 16071648e3..46fe362801 100644 --- a/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java @@ -685,6 +685,7 @@ public class DaoAuthenticationProviderTests { private class MockUserDetailsServiceReturnsNull implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String username) { return null; } @@ -693,6 +694,7 @@ public class DaoAuthenticationProviderTests { private class MockUserDetailsServiceSimulateBackendError implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String username) { throw new DataRetrievalFailureException("This mock simulator is designed to fail"); } @@ -703,6 +705,7 @@ public class DaoAuthenticationProviderTests { private String password = "koala"; + @Override public UserDetails loadUserByUsername(String username) { if ("rod".equals(username)) { return new User("rod", this.password, true, true, true, true, ROLES_12); @@ -718,6 +721,7 @@ public class DaoAuthenticationProviderTests { private class MockUserDetailsServiceUserPeter implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String username) { if ("peter".equals(username)) { return new User("peter", "opal", false, true, true, true, ROLES_12); @@ -729,6 +733,7 @@ public class DaoAuthenticationProviderTests { private class MockUserDetailsServiceUserPeterAccountExpired implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String username) { if ("peter".equals(username)) { return new User("peter", "opal", true, false, true, true, ROLES_12); @@ -740,6 +745,7 @@ public class DaoAuthenticationProviderTests { private class MockUserDetailsServiceUserPeterAccountLocked implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String username) { if ("peter".equals(username)) { return new User("peter", "opal", true, true, true, false, ROLES_12); @@ -751,6 +757,7 @@ public class DaoAuthenticationProviderTests { private class MockUserDetailsServiceUserPeterCredentialsExpired implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String username) { if ("peter".equals(username)) { return new User("peter", "opal", true, true, false, true, ROLES_12); diff --git a/core/src/test/java/org/springframework/security/authentication/dao/MockUserCache.java b/core/src/test/java/org/springframework/security/authentication/dao/MockUserCache.java index 939e39a98d..356115b539 100644 --- a/core/src/test/java/org/springframework/security/authentication/dao/MockUserCache.java +++ b/core/src/test/java/org/springframework/security/authentication/dao/MockUserCache.java @@ -28,14 +28,17 @@ public class MockUserCache implements UserCache { private Map cache = new HashMap<>(); + @Override public UserDetails getUserFromCache(String username) { return this.cache.get(username); } + @Override public void putUserInCache(UserDetails user) { this.cache.put(user.getUsername(), user); } + @Override public void removeUserFromCache(String username) { this.cache.remove(username); } diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java index 08cc0d8e73..7a20b359ae 100644 --- a/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java @@ -290,6 +290,7 @@ public class JaasAuthenticationProviderTests { super(loginModule); } + @Override public void logout() { this.loggedOut = true; } diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java b/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java index f93bc489ea..565ea98356 100644 --- a/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java +++ b/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java @@ -30,6 +30,7 @@ public class JaasEventCheck implements ApplicationListener grant(Principal principal) { Set rtnSet = new HashSet<>(); diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/TestCallbackHandler.java b/core/src/test/java/org/springframework/security/authentication/jaas/TestCallbackHandler.java index d92f8cb5eb..645b684709 100644 --- a/core/src/test/java/org/springframework/security/authentication/jaas/TestCallbackHandler.java +++ b/core/src/test/java/org/springframework/security/authentication/jaas/TestCallbackHandler.java @@ -28,6 +28,7 @@ import org.springframework.security.core.Authentication; */ public class TestCallbackHandler implements JaasAuthenticationCallbackHandler { + @Override public void handle(Callback callback, Authentication auth) { if (callback instanceof TextInputCallback) { TextInputCallback tic = (TextInputCallback) callback; diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/TestLoginModule.java b/core/src/test/java/org/springframework/security/authentication/jaas/TestLoginModule.java index 4305ab8b86..c6aaf08ac7 100644 --- a/core/src/test/java/org/springframework/security/authentication/jaas/TestLoginModule.java +++ b/core/src/test/java/org/springframework/security/authentication/jaas/TestLoginModule.java @@ -38,14 +38,17 @@ public class TestLoginModule implements LoginModule { private Subject subject; + @Override public boolean abort() { return true; } + @Override public boolean commit() { return true; } + @Override @SuppressWarnings("unchecked") public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { this.subject = subject; @@ -65,6 +68,7 @@ public class TestLoginModule implements LoginModule { } } + @Override public boolean login() throws LoginException { if (!this.user.equals("user")) { throw new LoginException("Bad User"); @@ -81,6 +85,7 @@ public class TestLoginModule implements LoginModule { return true; } + @Override public boolean logout() { return true; } diff --git a/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProviderTests.java index d3c78640da..ed48fbfe87 100644 --- a/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProviderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProviderTests.java @@ -112,6 +112,7 @@ public class RemoteAuthenticationProviderTests { this.grantAccess = grantAccess; } + @Override public Collection attemptAuthentication(String username, String password) throws RemoteAuthenticationException { if (this.grantAccess) { diff --git a/core/src/test/java/org/springframework/security/concurrent/AbstractDelegatingSecurityContextExecutorServiceTests.java b/core/src/test/java/org/springframework/security/concurrent/AbstractDelegatingSecurityContextExecutorServiceTests.java index c9da178681..e13de8e6c1 100644 --- a/core/src/test/java/org/springframework/security/concurrent/AbstractDelegatingSecurityContextExecutorServiceTests.java +++ b/core/src/test/java/org/springframework/security/concurrent/AbstractDelegatingSecurityContextExecutorServiceTests.java @@ -55,6 +55,7 @@ public abstract class AbstractDelegatingSecurityContextExecutorServiceTests this.executor = create(); } + @Override @Test(expected = IllegalArgumentException.class) public void constructorNullDelegate() { new DelegatingSecurityContextExecutorService(null); @@ -163,6 +164,7 @@ public abstract class AbstractDelegatingSecurityContextExecutorServiceTests assertThat(result).isEqualTo(exectedResult); } + @Override protected abstract DelegatingSecurityContextExecutorService create(); } diff --git a/core/src/test/java/org/springframework/security/core/parameters/AnnotationParameterNameDiscovererTests.java b/core/src/test/java/org/springframework/security/core/parameters/AnnotationParameterNameDiscovererTests.java index f71ffb8f6e..c1fc3c9b8f 100644 --- a/core/src/test/java/org/springframework/security/core/parameters/AnnotationParameterNameDiscovererTests.java +++ b/core/src/test/java/org/springframework/security/core/parameters/AnnotationParameterNameDiscovererTests.java @@ -135,10 +135,12 @@ public class AnnotationParameterNameDiscovererTests { static class DaoImpl extends BaseDaoImpl implements Dao { + @Override public String findMessageByTo(String to) { return null; } + @Override public String findMessageByToAndFrom(@P("to") String to, @P("from") String from) { return null; } diff --git a/core/src/test/java/org/springframework/security/core/userdetails/MockUserDetailsService.java b/core/src/test/java/org/springframework/security/core/userdetails/MockUserDetailsService.java index b342cc6ff3..b08ae39241 100644 --- a/core/src/test/java/org/springframework/security/core/userdetails/MockUserDetailsService.java +++ b/core/src/test/java/org/springframework/security/core/userdetails/MockUserDetailsService.java @@ -43,6 +43,7 @@ public class MockUserDetailsService implements UserDetailsService { this.users.put("expired", new User("expired", "", true, false, true, true, this.auths)); } + @Override public UserDetails loadUserByUsername(String username) { if (this.users.get(username) == null) { throw new UsernameNotFoundException("User not found: " + username); diff --git a/core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java b/core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java index 343b04cb9f..7253bbe02e 100644 --- a/core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java +++ b/core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java @@ -403,14 +403,17 @@ public class JdbcUserDetailsManagerTests { private Map cache = new HashMap<>(); + @Override public UserDetails getUserFromCache(String username) { return this.cache.get(username); } + @Override public void putUserInCache(UserDetails user) { this.cache.put(user.getUsername(), user); } + @Override public void removeUserFromCache(String username) { this.cache.remove(username); } diff --git a/core/src/test/java/org/springframework/security/scheduling/AbstractSecurityContextSchedulingTaskExecutorTests.java b/core/src/test/java/org/springframework/security/scheduling/AbstractSecurityContextSchedulingTaskExecutorTests.java index 554f805617..ae98a5d62a 100644 --- a/core/src/test/java/org/springframework/security/scheduling/AbstractSecurityContextSchedulingTaskExecutorTests.java +++ b/core/src/test/java/org/springframework/security/scheduling/AbstractSecurityContextSchedulingTaskExecutorTests.java @@ -48,10 +48,12 @@ public abstract class AbstractSecurityContextSchedulingTaskExecutorTests verify(this.taskExecutorDelegate).prefersShortLivedTasks(); } + @Override protected SchedulingTaskExecutor getExecutor() { return this.taskExecutorDelegate; } + @Override protected abstract DelegatingSecurityContextSchedulingTaskExecutor create(); } diff --git a/core/src/test/java/org/springframework/security/scheduling/CurrentSecurityContextSchedulingTaskExecutorTests.java b/core/src/test/java/org/springframework/security/scheduling/CurrentSecurityContextSchedulingTaskExecutorTests.java index 9da5a21301..e93316ce00 100644 --- a/core/src/test/java/org/springframework/security/scheduling/CurrentSecurityContextSchedulingTaskExecutorTests.java +++ b/core/src/test/java/org/springframework/security/scheduling/CurrentSecurityContextSchedulingTaskExecutorTests.java @@ -35,6 +35,7 @@ public class CurrentSecurityContextSchedulingTaskExecutorTests currentSecurityContextPowermockSetup(); } + @Override protected DelegatingSecurityContextSchedulingTaskExecutor create() { return new DelegatingSecurityContextSchedulingTaskExecutor(this.taskExecutorDelegate); } diff --git a/core/src/test/java/org/springframework/security/scheduling/ExplicitSecurityContextSchedulingTaskExecutorTests.java b/core/src/test/java/org/springframework/security/scheduling/ExplicitSecurityContextSchedulingTaskExecutorTests.java index 4cf8cdd943..1fdf8b9bb5 100644 --- a/core/src/test/java/org/springframework/security/scheduling/ExplicitSecurityContextSchedulingTaskExecutorTests.java +++ b/core/src/test/java/org/springframework/security/scheduling/ExplicitSecurityContextSchedulingTaskExecutorTests.java @@ -35,6 +35,7 @@ public class ExplicitSecurityContextSchedulingTaskExecutorTests explicitSecurityContextPowermockSetup(); } + @Override protected DelegatingSecurityContextSchedulingTaskExecutor create() { return new DelegatingSecurityContextSchedulingTaskExecutor(this.taskExecutorDelegate, this.securityContext); } diff --git a/core/src/test/java/org/springframework/security/task/AbstractDelegatingSecurityContextAsyncTaskExecutorTests.java b/core/src/test/java/org/springframework/security/task/AbstractDelegatingSecurityContextAsyncTaskExecutorTests.java index 38af77b257..8f3658f5b0 100644 --- a/core/src/test/java/org/springframework/security/task/AbstractDelegatingSecurityContextAsyncTaskExecutorTests.java +++ b/core/src/test/java/org/springframework/security/task/AbstractDelegatingSecurityContextAsyncTaskExecutorTests.java @@ -65,10 +65,12 @@ public abstract class AbstractDelegatingSecurityContextAsyncTaskExecutorTests verify(getExecutor()).submit(this.wrappedCallable); } + @Override protected AsyncTaskExecutor getExecutor() { return this.taskExecutorDelegate; } + @Override protected abstract DelegatingSecurityContextAsyncTaskExecutor create(); } diff --git a/core/src/test/java/org/springframework/security/task/CurrentDelegatingSecurityContextTaskExecutorTests.java b/core/src/test/java/org/springframework/security/task/CurrentDelegatingSecurityContextTaskExecutorTests.java index 5a7aacc4df..7b2fa833c2 100644 --- a/core/src/test/java/org/springframework/security/task/CurrentDelegatingSecurityContextTaskExecutorTests.java +++ b/core/src/test/java/org/springframework/security/task/CurrentDelegatingSecurityContextTaskExecutorTests.java @@ -43,10 +43,12 @@ public class CurrentDelegatingSecurityContextTaskExecutorTests extends AbstractD currentSecurityContextPowermockSetup(); } + @Override protected Executor getExecutor() { return this.taskExecutorDelegate; } + @Override protected DelegatingSecurityContextExecutor create() { return new DelegatingSecurityContextTaskExecutor(this.taskExecutorDelegate); } diff --git a/core/src/test/java/org/springframework/security/task/ExplicitDelegatingSecurityContextTaskExecutorTests.java b/core/src/test/java/org/springframework/security/task/ExplicitDelegatingSecurityContextTaskExecutorTests.java index 2d1e5ce8b3..12f4e94798 100644 --- a/core/src/test/java/org/springframework/security/task/ExplicitDelegatingSecurityContextTaskExecutorTests.java +++ b/core/src/test/java/org/springframework/security/task/ExplicitDelegatingSecurityContextTaskExecutorTests.java @@ -43,10 +43,12 @@ public class ExplicitDelegatingSecurityContextTaskExecutorTests extends Abstract explicitSecurityContextPowermockSetup(); } + @Override protected Executor getExecutor() { return this.taskExecutorDelegate; } + @Override protected DelegatingSecurityContextExecutor create() { return new DelegatingSecurityContextTaskExecutor(this.taskExecutorDelegate, this.securityContext); } diff --git a/core/src/test/java/org/springframework/security/util/MethodInvocationUtilsTests.java b/core/src/test/java/org/springframework/security/util/MethodInvocationUtilsTests.java index 94b2063b06..eaaefdaefc 100644 --- a/core/src/test/java/org/springframework/security/util/MethodInvocationUtilsTests.java +++ b/core/src/test/java/org/springframework/security/util/MethodInvocationUtilsTests.java @@ -81,6 +81,7 @@ public class MethodInvocationUtilsTests { class AdvisedTarget extends AdvisedSupport implements Blah { + @Override public void blah() { } diff --git a/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCrypt.java b/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCrypt.java index d3ee504223..2c0f2257d7 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCrypt.java +++ b/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCrypt.java @@ -260,9 +260,10 @@ public class BCrypt { * @return the decoded value of x */ private static byte char64(char x) { - if ((int) x < 0 || (int) x >= index_64.length) + if (x < 0 || x >= index_64.length) { return -1; - return index_64[(int) x]; + } + return index_64[x]; } /** @@ -279,27 +280,32 @@ public class BCrypt { byte ret[]; byte c1, c2, c3, c4, o; - if (maxolen <= 0) + if (maxolen <= 0) { throw new IllegalArgumentException("Invalid maxolen"); + } while (off < slen - 1 && olen < maxolen) { c1 = char64(s.charAt(off++)); c2 = char64(s.charAt(off++)); - if (c1 == -1 || c2 == -1) + if (c1 == -1 || c2 == -1) { break; + } o = (byte) (c1 << 2); o |= (c2 & 0x30) >> 4; rs.append((char) o); - if (++olen >= maxolen || off >= slen) + if (++olen >= maxolen || off >= slen) { break; + } c3 = char64(s.charAt(off++)); - if (c3 == -1) + if (c3 == -1) { break; + } o = (byte) ((c2 & 0x0f) << 4); o |= (c3 & 0x3c) >> 2; rs.append((char) o); - if (++olen >= maxolen || off >= slen) + if (++olen >= maxolen || off >= slen) { break; + } c4 = char64(s.charAt(off++)); o = (byte) ((c3 & 0x03) << 6); o |= c4; @@ -308,8 +314,9 @@ public class BCrypt { } ret = new byte[olen]; - for (off = 0; off < olen; off++) + for (off = 0; off < olen; off++) { ret[off] = (byte) rs.charAt(off); + } return ret; } @@ -357,9 +364,10 @@ public class BCrypt { for (i = 0; i < 4; i++) { words[0] = (words[0] << 8) | (data[off] & 0xff); - words[1] = (words[1] << 8) | (int) data[off]; // sign extension bug - if (i > 0) + words[1] = (words[1] << 8) | data[off]; // sign extension bug + if (i > 0) { sign |= words[1] & 0x80; + } off = (off + 1) % data.length; } @@ -410,11 +418,14 @@ public class BCrypt { int lr[] = { 0, 0 }; int plen = this.P.length, slen = this.S.length; - for (i = 0; i < plen; i++) - if (!sign_ext_bug) + for (i = 0; i < plen; i++) { + if (!sign_ext_bug) { this.P[i] = this.P[i] ^ streamtoword(key, koffp); - else + } + else { this.P[i] = this.P[i] ^ streamtoword_bug(key, koffp); + } + } for (i = 0; i < plen; i += 2) { encipher(lr, 0); @@ -520,11 +531,13 @@ public class BCrypt { int clen = cdata.length; byte ret[]; - if (log_rounds < 4 || log_rounds > 31) + if (log_rounds < 4 || log_rounds > 31) { throw new IllegalArgumentException("Bad number of rounds"); + } rounds = 1 << log_rounds; - if (salt.length != BCRYPT_SALT_LEN) + if (salt.length != BCRYPT_SALT_LEN) { throw new IllegalArgumentException("Bad salt length"); + } init_key(); ekskey(salt, password, sign_ext_bug, safety); @@ -534,8 +547,9 @@ public class BCrypt { } for (i = 0; i < 64; i++) { - for (j = 0; j < (clen >> 1); j++) + for (j = 0; j < (clen >> 1); j++) { encipher(cdata, j << 1); + } } ret = new byte[clen * 4]; @@ -586,20 +600,24 @@ public class BCrypt { throw new IllegalArgumentException("Invalid salt"); } - if (salt.charAt(0) != '$' || salt.charAt(1) != '2') + if (salt.charAt(0) != '$' || salt.charAt(1) != '2') { throw new IllegalArgumentException("Invalid salt version"); - if (salt.charAt(2) == '$') + } + if (salt.charAt(2) == '$') { off = 3; + } else { minor = salt.charAt(2); - if ((minor != 'a' && minor != 'x' && minor != 'y' && minor != 'b') || salt.charAt(3) != '$') + if ((minor != 'a' && minor != 'x' && minor != 'y' && minor != 'b') || salt.charAt(3) != '$') { throw new IllegalArgumentException("Invalid salt revision"); + } off = 4; } // Extract number of rounds - if (salt.charAt(off + 2) > '$') + if (salt.charAt(off + 2) > '$') { throw new IllegalArgumentException("Missing salt rounds"); + } if (off == 4 && saltLength < 29) { throw new IllegalArgumentException("Invalid salt"); @@ -609,18 +627,21 @@ public class BCrypt { real_salt = salt.substring(off + 3, off + 25); saltb = decode_base64(real_salt, BCRYPT_SALT_LEN); - if (minor >= 'a') // add null terminator + if (minor >= 'a') { passwordb = Arrays.copyOf(passwordb, passwordb.length + 1); + } B = new BCrypt(); hashed = B.crypt_raw(passwordb, saltb, rounds, minor == 'x', minor == 'a' ? 0x10000 : 0); rs.append("$2"); - if (minor >= 'a') + if (minor >= 'a') { rs.append(minor); + } rs.append("$"); - if (rounds < 10) + if (rounds < 10) { rs.append("0"); + } rs.append(rounds); rs.append("$"); encode_base64(saltb, saltb.length, rs); @@ -654,8 +675,9 @@ public class BCrypt { rs.append("$2"); rs.append(prefix.charAt(2)); rs.append("$"); - if (log_rounds < 10) + if (log_rounds < 10) { rs.append("0"); + } rs.append(log_rounds); rs.append("$"); encode_base64(rnd, rnd.length, rs); diff --git a/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.java index d93d28a72f..63df062bec 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.java @@ -100,6 +100,7 @@ public class BCryptPasswordEncoder implements PasswordEncoder { this.random = random; } + @Override public String encode(CharSequence rawPassword) { if (rawPassword == null) { throw new IllegalArgumentException("rawPassword cannot be null"); @@ -115,6 +116,7 @@ public class BCryptPasswordEncoder implements PasswordEncoder { return BCrypt.hashpw(rawPassword.toString(), salt); } + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { if (rawPassword == null) { throw new IllegalArgumentException("rawPassword cannot be null"); diff --git a/crypto/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java b/crypto/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java index 41be9918e8..9a8f517371 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java +++ b/crypto/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java @@ -118,6 +118,7 @@ public final class AesBytesEncryptor implements BytesEncryptor { this.ivGenerator = ivGenerator != null ? ivGenerator : alg.defaultIvGenerator(); } + @Override public byte[] encrypt(byte[] bytes) { synchronized (this.encryptor) { byte[] iv = this.ivGenerator.generateKey(); @@ -127,6 +128,7 @@ public final class AesBytesEncryptor implements BytesEncryptor { } } + @Override public byte[] decrypt(byte[] encryptedBytes) { synchronized (this.decryptor) { byte[] iv = iv(encryptedBytes); @@ -151,10 +153,12 @@ public final class AesBytesEncryptor implements BytesEncryptor { private final byte[] VALUE = new byte[16]; + @Override public int getKeyLength() { return this.VALUE.length; } + @Override public byte[] generateKey() { return this.VALUE; } diff --git a/crypto/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java b/crypto/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java index 53270a01fa..7d44ab3700 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java +++ b/crypto/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java @@ -119,10 +119,12 @@ public final class Encryptors { private static final class NoOpTextEncryptor implements TextEncryptor { + @Override public String encrypt(String text) { return text; } + @Override public String decrypt(String encryptedText) { return encryptedText; } diff --git a/crypto/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java b/crypto/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java index e8c51d79cd..4bd12b4a53 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java +++ b/crypto/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java @@ -33,10 +33,12 @@ final class HexEncodingTextEncryptor implements TextEncryptor { this.encryptor = encryptor; } + @Override public String encrypt(String text) { return new String(Hex.encode(this.encryptor.encrypt(Utf8.encode(text)))); } + @Override public String decrypt(String encryptedText) { return Utf8.decode(this.encryptor.decrypt(Hex.decode(encryptedText))); } diff --git a/crypto/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java b/crypto/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java index fa00b501ce..82c39a3ed4 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java +++ b/crypto/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java @@ -31,6 +31,7 @@ final class HexEncodingStringKeyGenerator implements StringKeyGenerator { this.keyGenerator = keyGenerator; } + @Override public String generateKey() { return new String(Hex.encode(this.keyGenerator.generateKey())); } diff --git a/crypto/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java b/crypto/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java index e32cf34aae..d77d0093ae 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java +++ b/crypto/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java @@ -46,10 +46,12 @@ final class SecureRandomBytesKeyGenerator implements BytesKeyGenerator { this.keyLength = keyLength; } + @Override public int getKeyLength() { return this.keyLength; } + @Override public byte[] generateKey() { byte[] bytes = new byte[this.keyLength]; this.random.nextBytes(bytes); diff --git a/crypto/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java b/crypto/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java index 58b5f53645..87b47f180b 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java +++ b/crypto/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java @@ -30,10 +30,12 @@ final class SharedKeyGenerator implements BytesKeyGenerator { this.sharedKey = sharedKey; } + @Override public int getKeyLength() { return this.sharedKey.length; } + @Override public byte[] generateKey() { return this.sharedKey; } diff --git a/crypto/src/main/java/org/springframework/security/crypto/password/LdapShaPasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/password/LdapShaPasswordEncoder.java index d322d36aec..d5f42a92ad 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/password/LdapShaPasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/password/LdapShaPasswordEncoder.java @@ -91,6 +91,7 @@ public class LdapShaPasswordEncoder implements PasswordEncoder { * @return the encoded password in the specified format * */ + @Override public String encode(CharSequence rawPass) { byte[] salt = this.saltGenerator.generateKey(); return encode(rawPass, salt); @@ -143,6 +144,7 @@ public class LdapShaPasswordEncoder implements PasswordEncoder { * @param encodedPassword the actual SSHA or SHA encoded password * @return true if they match (independent of the case of the prefix). */ + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { return matches(rawPassword == null ? null : rawPassword.toString(), encodedPassword); } diff --git a/crypto/src/main/java/org/springframework/security/crypto/password/Md4PasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/password/Md4PasswordEncoder.java index 77618d4db3..ba8c965bca 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/password/Md4PasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/password/Md4PasswordEncoder.java @@ -98,6 +98,7 @@ public class Md4PasswordEncoder implements PasswordEncoder { * @return Hex string of password digest (or base64 encoded string if * encodeHashAsBase64 is enabled. */ + @Override public String encode(CharSequence rawPassword) { String salt = PREFIX + this.saltGenerator.generateKey() + SUFFIX; return digest(salt, rawPassword); @@ -134,6 +135,7 @@ public class Md4PasswordEncoder implements PasswordEncoder { * @param encodedPassword previously encoded password * @return true or false */ + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { String salt = extractSalt(encodedPassword); String rawPasswordEncoded = digest(salt, rawPassword); diff --git a/crypto/src/main/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoder.java index 99a8d11544..9791557505 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoder.java @@ -114,6 +114,7 @@ public class MessageDigestPasswordEncoder implements PasswordEncoder { * @return Hex string of password digest (or base64 encoded string if * encodeHashAsBase64 is enabled. */ + @Override public String encode(CharSequence rawPassword) { String salt = PREFIX + this.saltGenerator.generateKey() + SUFFIX; return digest(salt, rawPassword); @@ -143,6 +144,7 @@ public class MessageDigestPasswordEncoder implements PasswordEncoder { * @param encodedPassword previously encoded password * @return true or false */ + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { String salt = extractSalt(encodedPassword); String rawPasswordEncoded = digest(salt, rawPassword); diff --git a/crypto/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java index caffbb3a9d..c154d2c046 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java @@ -32,10 +32,12 @@ package org.springframework.security.crypto.password; @Deprecated public final class NoOpPasswordEncoder implements PasswordEncoder { + @Override public String encode(CharSequence rawPassword) { return rawPassword.toString(); } + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { return rawPassword.toString().equals(encodedPassword); } diff --git a/crypto/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java index f9160a4af0..016783c24c 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java @@ -73,10 +73,12 @@ public final class StandardPasswordEncoder implements PasswordEncoder { this("SHA-256", secret); } + @Override public String encode(CharSequence rawPassword) { return encode(rawPassword, this.saltGenerator.generateKey()); } + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { byte[] digested = decode(encodedPassword); byte[] salt = subArray(digested, 0, this.saltGenerator.getKeyLength()); diff --git a/crypto/src/main/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoder.java b/crypto/src/main/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoder.java index c496c6c907..b591794ede 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoder.java +++ b/crypto/src/main/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoder.java @@ -116,10 +116,12 @@ public class SCryptPasswordEncoder implements PasswordEncoder { this.saltGenerator = KeyGenerators.secureRandom(saltLength); } + @Override public String encode(CharSequence rawPassword) { return digest(rawPassword, this.saltGenerator.generateKey()); } + @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { if (encodedPassword == null || encodedPassword.length() < this.keyLength) { this.logger.warn("Empty encoded password"); diff --git a/crypto/src/test/java/org/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptorEquivalencyTests.java b/crypto/src/test/java/org/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptorEquivalencyTests.java index 199d213d52..828b2d32b0 100644 --- a/crypto/src/test/java/org/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptorEquivalencyTests.java +++ b/crypto/src/test/java/org/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptorEquivalencyTests.java @@ -133,10 +133,12 @@ public class BouncyCastleAesBytesEncryptorEquivalencyTests { this.keyLength = keyLength; } + @Override public int getKeyLength() { return this.keyLength; } + @Override public byte[] generateKey() { byte[] bytes = new byte[this.keyLength]; this.random.nextBytes(bytes); diff --git a/data/src/test/java/org/springframework/security/data/repository/query/SecurityEvaluationContextExtensionTests.java b/data/src/test/java/org/springframework/security/data/repository/query/SecurityEvaluationContextExtensionTests.java index a74b296078..cdf1097d70 100644 --- a/data/src/test/java/org/springframework/security/data/repository/query/SecurityEvaluationContextExtensionTests.java +++ b/data/src/test/java/org/springframework/security/data/repository/query/SecurityEvaluationContextExtensionTests.java @@ -72,7 +72,7 @@ public class SecurityEvaluationContextExtensionTests { } private SecurityExpressionRoot getRoot() { - return (SecurityExpressionRoot) this.securityExtension.getRootObject(); + return this.securityExtension.getRootObject(); } } \ No newline at end of file diff --git a/itest/context/src/integration-test/java/org/springframework/security/integration/StubUserRepository.java b/itest/context/src/integration-test/java/org/springframework/security/integration/StubUserRepository.java index 8d272048b9..80c47c5700 100644 --- a/itest/context/src/integration-test/java/org/springframework/security/integration/StubUserRepository.java +++ b/itest/context/src/integration-test/java/org/springframework/security/integration/StubUserRepository.java @@ -17,6 +17,7 @@ package org.springframework.security.integration; public class StubUserRepository implements UserRepository { + @Override public void doSomething() { } diff --git a/itest/context/src/integration-test/java/org/springframework/security/performance/ProtectPointcutPerformanceTests.java b/itest/context/src/integration-test/java/org/springframework/security/performance/ProtectPointcutPerformanceTests.java index 3196c019c9..79b7f90088 100644 --- a/itest/context/src/integration-test/java/org/springframework/security/performance/ProtectPointcutPerformanceTests.java +++ b/itest/context/src/integration-test/java/org/springframework/security/performance/ProtectPointcutPerformanceTests.java @@ -64,6 +64,7 @@ public class ProtectPointcutPerformanceTests implements ApplicationContextAware } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.ctx = applicationContext; } diff --git a/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java b/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java index 7aff3a25ba..d616b95eeb 100755 --- a/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java +++ b/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java @@ -25,6 +25,7 @@ public class UserDetailsServiceImpl implements UserDetailsService { @SuppressWarnings({ "unused", "FieldCanBeLocal" }) private UserRepository userRepository; + @Override @Transactional(readOnly = true) public UserDetails loadUserByUsername(String username) { return null; diff --git a/itest/context/src/main/java/org/springframework/security/integration/multiannotation/MultiAnnotationServiceImpl.java b/itest/context/src/main/java/org/springframework/security/integration/multiannotation/MultiAnnotationServiceImpl.java index 50e8a1c282..0be8aed332 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/multiannotation/MultiAnnotationServiceImpl.java +++ b/itest/context/src/main/java/org/springframework/security/integration/multiannotation/MultiAnnotationServiceImpl.java @@ -17,15 +17,19 @@ package org.springframework.security.integration.multiannotation; public class MultiAnnotationServiceImpl implements MultiAnnotationService { + @Override public void preAuthorizeDenyAllMethod() { } + @Override public void preAuthorizeHasRoleAMethod() { } + @Override public void securedAnonymousMethod() { } + @Override public void securedRoleAMethod() { } diff --git a/itest/context/src/main/java/org/springframework/security/integration/multiannotation/PreAuthorizeServiceImpl.java b/itest/context/src/main/java/org/springframework/security/integration/multiannotation/PreAuthorizeServiceImpl.java index ff2b4c50b2..32602d556e 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/multiannotation/PreAuthorizeServiceImpl.java +++ b/itest/context/src/main/java/org/springframework/security/integration/multiannotation/PreAuthorizeServiceImpl.java @@ -20,6 +20,7 @@ package org.springframework.security.integration.multiannotation; */ public class PreAuthorizeServiceImpl implements PreAuthorizeService { + @Override public void preAuthorizedMethod() { } diff --git a/itest/context/src/main/java/org/springframework/security/integration/multiannotation/SecuredServiceImpl.java b/itest/context/src/main/java/org/springframework/security/integration/multiannotation/SecuredServiceImpl.java index 349f6da5d1..45302b2abe 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/multiannotation/SecuredServiceImpl.java +++ b/itest/context/src/main/java/org/springframework/security/integration/multiannotation/SecuredServiceImpl.java @@ -20,6 +20,7 @@ package org.springframework.security.integration.multiannotation; */ public class SecuredServiceImpl implements SecuredService { + @Override public void securedMethod() { } diff --git a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPostInvocationAdvice.java b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPostInvocationAdvice.java index 21cda9c594..7c09ba0e19 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPostInvocationAdvice.java +++ b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPostInvocationAdvice.java @@ -24,6 +24,7 @@ import org.springframework.security.core.Authentication; public class PythonInterpreterPostInvocationAdvice implements PostInvocationAuthorizationAdvice { + @Override public Object after(Authentication authentication, MethodInvocation mi, PostInvocationAttribute pia, Object returnedObject) throws AccessDeniedException { return returnedObject; diff --git a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAdvice.java b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAdvice.java index f510e8a613..8ae2b7fbd9 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAdvice.java +++ b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAdvice.java @@ -38,6 +38,7 @@ public class PythonInterpreterPreInvocationAdvice implements PreInvocationAuthor private final ParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); + @Override public boolean before(Authentication authentication, MethodInvocation mi, PreInvocationAttribute preAttr) { PythonInterpreterPreInvocationAttribute pythonAttr = (PythonInterpreterPreInvocationAttribute) preAttr; String script = pythonAttr.getScript(); diff --git a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAttribute.java b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAttribute.java index 3fb06bd3ef..6fda94603b 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAttribute.java +++ b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPreInvocationAttribute.java @@ -25,6 +25,7 @@ public class PythonInterpreterPreInvocationAttribute implements PreInvocationAtt this.script = script; } + @Override public String getAttribute() { return null; } diff --git a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPrePostInvocationAttributeFactory.java b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPrePostInvocationAttributeFactory.java index 2b6c4599cb..58c98d813b 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPrePostInvocationAttributeFactory.java +++ b/itest/context/src/main/java/org/springframework/security/integration/python/PythonInterpreterPrePostInvocationAttributeFactory.java @@ -27,11 +27,13 @@ public class PythonInterpreterPrePostInvocationAttributeFactory implements PrePo PythonInterpreter.initialize(System.getProperties(), null, new String[] {}); } + @Override public PreInvocationAttribute createPreInvocationAttribute(String preFilterAttribute, String filterObject, String preAuthorizeAttribute) { return new PythonInterpreterPreInvocationAttribute(preAuthorizeAttribute); } + @Override public PostInvocationAttribute createPostInvocationAttribute(String postFilterAttribute, String postAuthorizeAttribute) { return null; diff --git a/itest/context/src/main/java/org/springframework/security/integration/python/TestServiceImpl.java b/itest/context/src/main/java/org/springframework/security/integration/python/TestServiceImpl.java index 98081e347e..353cc3cf2e 100644 --- a/itest/context/src/main/java/org/springframework/security/integration/python/TestServiceImpl.java +++ b/itest/context/src/main/java/org/springframework/security/integration/python/TestServiceImpl.java @@ -17,6 +17,7 @@ package org.springframework.security.integration.python; public class TestServiceImpl implements TestService { + @Override public void someMethod() { System.out.print("Invoked someMethod()"); } diff --git a/ldap/src/main/java/org/springframework/security/ldap/DefaultLdapUsernameToDnMapper.java b/ldap/src/main/java/org/springframework/security/ldap/DefaultLdapUsernameToDnMapper.java index 8d15870ab6..5c0fe7823f 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/DefaultLdapUsernameToDnMapper.java +++ b/ldap/src/main/java/org/springframework/security/ldap/DefaultLdapUsernameToDnMapper.java @@ -43,6 +43,7 @@ public class DefaultLdapUsernameToDnMapper implements LdapUsernameToDnMapper { /** * Assembles the Distinguished Name that should be used the given username. */ + @Override public DistinguishedName buildDn(String username) { DistinguishedName dn = new DistinguishedName(this.userDnBase); diff --git a/ldap/src/main/java/org/springframework/security/ldap/SpringSecurityLdapTemplate.java b/ldap/src/main/java/org/springframework/security/ldap/SpringSecurityLdapTemplate.java index 8a855cefe8..5a7465437a 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/SpringSecurityLdapTemplate.java +++ b/ldap/src/main/java/org/springframework/security/ldap/SpringSecurityLdapTemplate.java @@ -92,6 +92,7 @@ public class SpringSecurityLdapTemplate extends LdapTemplate { class LdapCompareCallback implements ContextExecutor { + @Override public Object executeWithContext(DirContext ctx) throws NamingException { SearchControls ctls = new SearchControls(); ctls.setReturningAttributes(NO_ATTRS); diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticationProvider.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticationProvider.java index 957fd007e9..bb7f494072 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticationProvider.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticationProvider.java @@ -58,6 +58,7 @@ public abstract class AbstractLdapAuthenticationProvider implements Authenticati protected UserDetailsContextMapper userDetailsContextMapper = new LdapUserDetailsMapper(); + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { Assert.isInstanceOf(UsernamePasswordAuthenticationToken.class, authentication, () -> this.messages.getMessage("LdapAuthenticationProvider.onlySupports", @@ -117,6 +118,7 @@ public abstract class AbstractLdapAuthenticationProvider implements Authenticati return result; } + @Override public boolean supports(Class authentication) { return UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication); } @@ -133,6 +135,7 @@ public abstract class AbstractLdapAuthenticationProvider implements Authenticati this.useAuthenticationRequestCredentials = useAuthenticationRequestCredentials; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java index 79890a2022..e3f5148c8b 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/AbstractLdapAuthenticator.java @@ -66,6 +66,7 @@ public abstract class AbstractLdapAuthenticator implements LdapAuthenticator, In this.contextSource = contextSource; } + @Override public void afterPropertiesSet() { Assert.isTrue((this.userDnFormat != null) || (this.userSearch != null), "Either an LdapUserSearch or DN pattern (or both) must be supplied."); @@ -107,6 +108,7 @@ public abstract class AbstractLdapAuthenticator implements LdapAuthenticator, In return this.userSearch; } + @Override public void setMessageSource(MessageSource messageSource) { Assert.notNull(messageSource, "Message source must not be null"); this.messages = new MessageSourceAccessor(messageSource); diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/BindAuthenticator.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/BindAuthenticator.java index a374b5bf6e..d45b72df7e 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/BindAuthenticator.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/BindAuthenticator.java @@ -57,6 +57,7 @@ public class BindAuthenticator extends AbstractLdapAuthenticator { super(contextSource); } + @Override public DirContextOperations authenticate(Authentication authentication) { DirContextOperations user = null; Assert.isInstanceOf(UsernamePasswordAuthenticationToken.class, authentication, diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/NullLdapAuthoritiesPopulator.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/NullLdapAuthoritiesPopulator.java index 8f32bc29e3..21b70d0804 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/NullLdapAuthoritiesPopulator.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/NullLdapAuthoritiesPopulator.java @@ -28,6 +28,7 @@ import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator; */ public final class NullLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator { + @Override public Collection getGrantedAuthorities(DirContextOperations userDetails, String username) { return AuthorityUtils.NO_AUTHORITIES; } diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticator.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticator.java index 6a8eda48ce..790b513f7e 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticator.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticator.java @@ -61,6 +61,7 @@ public final class PasswordComparisonAuthenticator extends AbstractLdapAuthentic super(contextSource); } + @Override public DirContextOperations authenticate(final Authentication authentication) { Assert.isInstanceOf(UsernamePasswordAuthenticationToken.class, authentication, "Can only process UsernamePasswordAuthenticationToken objects"); diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/SpringSecurityAuthenticationSource.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/SpringSecurityAuthenticationSource.java index 08e6a5f297..9a57616525 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/SpringSecurityAuthenticationSource.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/SpringSecurityAuthenticationSource.java @@ -43,6 +43,7 @@ public class SpringSecurityAuthenticationSource implements AuthenticationSource * Get the principals of the logged in user, in this case the distinguished name. * @return the distinguished name of the logged in user. */ + @Override public String getPrincipal() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); @@ -72,6 +73,7 @@ public class SpringSecurityAuthenticationSource implements AuthenticationSource /** * @see org.springframework.ldap.core.AuthenticationSource#getCredentials() */ + @Override public String getCredentials() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); diff --git a/ldap/src/main/java/org/springframework/security/ldap/authentication/UserDetailsServiceLdapAuthoritiesPopulator.java b/ldap/src/main/java/org/springframework/security/ldap/authentication/UserDetailsServiceLdapAuthoritiesPopulator.java index fbf4682871..ccfbd15c24 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/authentication/UserDetailsServiceLdapAuthoritiesPopulator.java +++ b/ldap/src/main/java/org/springframework/security/ldap/authentication/UserDetailsServiceLdapAuthoritiesPopulator.java @@ -39,6 +39,7 @@ public class UserDetailsServiceLdapAuthoritiesPopulator implements LdapAuthoriti this.userDetailsService = userService; } + @Override public Collection getGrantedAuthorities(DirContextOperations userData, String username) { return this.userDetailsService.loadUserByUsername(username).getAuthorities(); diff --git a/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControl.java b/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControl.java index 73a865446e..36b5832c94 100755 --- a/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControl.java +++ b/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControl.java @@ -57,6 +57,7 @@ public class PasswordPolicyControl implements Control { * this control is always empty. * @return always null */ + @Override public byte[] getEncodedValue() { return null; } @@ -64,6 +65,7 @@ public class PasswordPolicyControl implements Control { /** * Returns the OID of the Password Policy Control ("1.3.6.1.4.1.42.2.27.8.5.1"). */ + @Override public String getID() { return OID; } @@ -71,6 +73,7 @@ public class PasswordPolicyControl implements Control { /** * Returns whether the control is critical for the client. */ + @Override public boolean isCritical() { return this.critical; } diff --git a/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactory.java b/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactory.java index dba0b67d83..84780ae9f5 100755 --- a/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactory.java +++ b/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactory.java @@ -34,6 +34,7 @@ public class PasswordPolicyControlFactory extends ControlFactory { * @param ctl the control the check * @return a response control of type PasswordPolicyResponseControl, or null */ + @Override public Control getControlInstance(Control ctl) { if (ctl.getID().equals(PasswordPolicyControl.OID)) { return new PasswordPolicyResponseControl(ctl.getEncodedValue()); diff --git a/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControl.java b/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControl.java index 6c43c1921b..42cb34e11f 100755 --- a/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControl.java +++ b/ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControl.java @@ -193,6 +193,7 @@ public class PasswordPolicyResponseControl extends PasswordPolicyControl { */ private class NetscapeDecoder implements PPolicyDecoder { + @Override public void decode() throws IOException { int[] bread = { 0 }; BERSequence seq = (BERSequence) BERElement.getElement(new SpecificTagDecoder(), diff --git a/ldap/src/main/java/org/springframework/security/ldap/server/ApacheDSContainer.java b/ldap/src/main/java/org/springframework/security/ldap/server/ApacheDSContainer.java index d4a0bb628e..9e1ff976f1 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/server/ApacheDSContainer.java +++ b/ldap/src/main/java/org/springframework/security/ldap/server/ApacheDSContainer.java @@ -140,6 +140,7 @@ public class ApacheDSContainer implements InitializingBean, DisposableBean, Life this.service.setDenormalizeOpAttrsEnabled(true); } + @Override public void afterPropertiesSet() throws Exception { if (this.workingDir == null) { String apacheWorkDir = System.getProperty("apacheDSWorkDir"); @@ -168,10 +169,12 @@ public class ApacheDSContainer implements InitializingBean, DisposableBean, Life start(); } + @Override public void destroy() { stop(); } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.ctxt = applicationContext; } @@ -241,6 +244,7 @@ public class ApacheDSContainer implements InitializingBean, DisposableBean, Life return this.service; } + @Override public void start() { if (isRunning()) { return; @@ -294,6 +298,7 @@ public class ApacheDSContainer implements InitializingBean, DisposableBean, Life } } + @Override public void stop() { if (!isRunning()) { return; @@ -390,6 +395,7 @@ public class ApacheDSContainer implements InitializingBean, DisposableBean, Life return dir.delete(); } + @Override public boolean isRunning() { return this.running; } diff --git a/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPerson.java b/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPerson.java index 8aa9e47766..77e674309b 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPerson.java +++ b/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPerson.java @@ -144,6 +144,7 @@ public class InetOrgPerson extends Person { return this.street; } + @Override protected void populateContext(DirContextAdapter adapter) { super.populateContext(adapter); adapter.setAttributeValue("carLicense", this.carLicense); @@ -216,6 +217,7 @@ public class InetOrgPerson extends Person { setUid(ctx.getStringAttribute("uid")); } + @Override protected LdapUserDetailsImpl createTarget() { return new InetOrgPerson(); } diff --git a/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPersonContextMapper.java b/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPersonContextMapper.java index 3d11bf884a..ff7824acda 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPersonContextMapper.java +++ b/ldap/src/main/java/org/springframework/security/ldap/userdetails/InetOrgPersonContextMapper.java @@ -28,6 +28,7 @@ import org.springframework.util.Assert; */ public class InetOrgPersonContextMapper implements UserDetailsContextMapper { + @Override public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection authorities) { InetOrgPerson.Essence p = new InetOrgPerson.Essence(ctx); @@ -39,6 +40,7 @@ public class InetOrgPersonContextMapper implements UserDetailsContextMapper { } + @Override public void mapUserToContext(UserDetails user, DirContextAdapter ctx) { Assert.isInstanceOf(InetOrgPerson.class, user, "UserDetails must be an InetOrgPerson instance"); diff --git a/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManager.java b/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManager.java index e44d8df42d..a6beab4808 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManager.java +++ b/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManager.java @@ -132,6 +132,7 @@ public class LdapUserDetailsManager implements UserDetailsManager { this.template = new LdapTemplate(contextSource); } + @Override public UserDetails loadUserByUsername(String username) { DistinguishedName dn = this.usernameMapper.buildDn(username); List authorities = getUserAuthorities(dn, username); @@ -180,6 +181,7 @@ public class LdapUserDetailsManager implements UserDetailsManager { * @param oldPassword the old password * @param newPassword the new value of the password. */ + @Override public void changePassword(final String oldPassword, final String newPassword) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); Assert.notNull(authentication, @@ -222,6 +224,7 @@ public class LdapUserDetailsManager implements UserDetailsManager { return roleCollector.getList(); } + @Override public void createUser(UserDetails user) { DirContextAdapter ctx = new DirContextAdapter(); copyToContext(user, ctx); @@ -242,6 +245,7 @@ public class LdapUserDetailsManager implements UserDetailsManager { addAuthorities(dn, user.getAuthorities()); } + @Override public void updateUser(UserDetails user) { DistinguishedName dn = this.usernameMapper.buildDn(user.getUsername()); @@ -273,12 +277,14 @@ public class LdapUserDetailsManager implements UserDetailsManager { addAuthorities(dn, user.getAuthorities()); } + @Override public void deleteUser(String username) { DistinguishedName dn = this.usernameMapper.buildDn(username); removeAuthorities(dn, getUserAuthorities(dn, username)); this.template.unbind(dn); } + @Override public boolean userExists(String username) { DistinguishedName dn = this.usernameMapper.buildDn(username); diff --git a/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsService.java b/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsService.java index d40111cbf9..467d781b59 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsService.java +++ b/ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsService.java @@ -53,6 +53,7 @@ public class LdapUserDetailsService implements UserDetailsService { this.authoritiesPopulator = authoritiesPopulator; } + @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { DirContextOperations userData = this.userSearch.searchForUser(username); @@ -67,6 +68,7 @@ public class LdapUserDetailsService implements UserDetailsService { private static final class NullLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator { + @Override public Collection getGrantedAuthorities(DirContextOperations userDetails, String username) { return AuthorityUtils.NO_AUTHORITIES; } diff --git a/ldap/src/main/java/org/springframework/security/ldap/userdetails/Person.java b/ldap/src/main/java/org/springframework/security/ldap/userdetails/Person.java index 4237757c60..21e08f7e99 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/userdetails/Person.java +++ b/ldap/src/main/java/org/springframework/security/ldap/userdetails/Person.java @@ -111,6 +111,7 @@ public class Person extends LdapUserDetailsImpl { ((Person) this.instance).cn = new ArrayList<>(copyMe.cn); } + @Override protected LdapUserDetailsImpl createTarget() { return new Person(); } @@ -139,6 +140,7 @@ public class Person extends LdapUserDetailsImpl { ((Person) this.instance).description = desc; } + @Override public LdapUserDetails createUserDetails() { Person p = (Person) super.createUserDetails(); Assert.notNull(p.cn, "person.sn cannot be null"); diff --git a/ldap/src/main/java/org/springframework/security/ldap/userdetails/PersonContextMapper.java b/ldap/src/main/java/org/springframework/security/ldap/userdetails/PersonContextMapper.java index bc4e6438b3..542bfe7548 100644 --- a/ldap/src/main/java/org/springframework/security/ldap/userdetails/PersonContextMapper.java +++ b/ldap/src/main/java/org/springframework/security/ldap/userdetails/PersonContextMapper.java @@ -28,6 +28,7 @@ import org.springframework.util.Assert; */ public class PersonContextMapper implements UserDetailsContextMapper { + @Override public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection authorities) { Person.Essence p = new Person.Essence(ctx); @@ -39,6 +40,7 @@ public class PersonContextMapper implements UserDetailsContextMapper { } + @Override public void mapUserToContext(UserDetails user, DirContextAdapter ctx) { Assert.isInstanceOf(Person.class, user, "UserDetails must be a Person instance"); diff --git a/ldap/src/test/java/org/springframework/security/ldap/authentication/LdapAuthenticationProviderTests.java b/ldap/src/test/java/org/springframework/security/ldap/authentication/LdapAuthenticationProviderTests.java index 7bf18ee4e2..c2504eb53b 100644 --- a/ldap/src/test/java/org/springframework/security/ldap/authentication/LdapAuthenticationProviderTests.java +++ b/ldap/src/test/java/org/springframework/security/ldap/authentication/LdapAuthenticationProviderTests.java @@ -179,6 +179,7 @@ public class LdapAuthenticationProviderTests { class MockAuthenticator implements LdapAuthenticator { + @Override public DirContextOperations authenticate(Authentication authentication) { DirContextAdapter ctx = new DirContextAdapter(); ctx.setAttributeValue("ou", "FROM_ENTRY"); @@ -206,6 +207,7 @@ public class LdapAuthenticationProviderTests { String username; + @Override public Collection getGrantedAuthorities(DirContextOperations userCtx, String username) { this.username = username; return AuthorityUtils.createAuthorityList("ROLE_FROM_POPULATOR"); diff --git a/ldap/src/test/java/org/springframework/security/ldap/authentication/MockUserSearch.java b/ldap/src/test/java/org/springframework/security/ldap/authentication/MockUserSearch.java index 3e4cd05135..7d581a1f72 100644 --- a/ldap/src/test/java/org/springframework/security/ldap/authentication/MockUserSearch.java +++ b/ldap/src/test/java/org/springframework/security/ldap/authentication/MockUserSearch.java @@ -33,6 +33,7 @@ public class MockUserSearch implements LdapUserSearch { this.user = user; } + @Override public DirContextOperations searchForUser(String username) { return this.user; } diff --git a/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java b/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java index de9defc321..c1a11c0980 100644 --- a/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java +++ b/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java @@ -290,12 +290,14 @@ public class ActiveDirectoryLdapAuthenticationProviderTests { private Matcher causeDataCode = CoreMatchers.equalTo(dataCode); + @Override public boolean matches(Object that) { Throwable t = (Throwable) that; ActiveDirectoryAuthenticationException cause = (ActiveDirectoryAuthenticationException) t.getCause(); return this.causeInstance.matches(cause) && this.causeDataCode.matches(cause.getDataCode()); } + @Override public void describeTo(Description desc) { desc.appendText("getCause() "); this.causeInstance.describeTo(desc); @@ -468,23 +470,28 @@ public class ActiveDirectoryLdapAuthenticationProviderTests { this.sr = sr; } + @Override public SearchResult next() { SearchResult result = this.sr; this.sr = null; return result; } + @Override public boolean hasMore() { return this.sr != null; } + @Override public void close() { } + @Override public boolean hasMoreElements() { return hasMore(); } + @Override public SearchResult nextElement() { return next(); } diff --git a/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsServiceTests.java b/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsServiceTests.java index a7788003db..5fd8e1a295 100644 --- a/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsServiceTests.java +++ b/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsServiceTests.java @@ -74,6 +74,7 @@ public class LdapUserDetailsServiceTests { class MockAuthoritiesPopulator implements LdapAuthoritiesPopulator { + @Override public Collection getGrantedAuthorities(DirContextOperations userCtx, String username) { return AuthorityUtils.createAuthorityList("ROLE_FROM_POPULATOR"); } diff --git a/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttribute.java b/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttribute.java index 66bbd3e237..a38abb344f 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttribute.java +++ b/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttribute.java @@ -55,6 +55,7 @@ class MessageExpressionConfigAttribute implements ConfigAttribute, EvaluationCon return this.authorizeExpression; } + @Override public String getAttribute() { return null; } diff --git a/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionVoter.java b/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionVoter.java index dc517a42bb..a98e6c341a 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionVoter.java +++ b/messaging/src/main/java/org/springframework/security/messaging/access/expression/MessageExpressionVoter.java @@ -41,6 +41,7 @@ public class MessageExpressionVoter implements AccessDecisionVoter private SecurityExpressionHandler> expressionHandler = new DefaultMessageSecurityExpressionHandler<>(); + @Override public int vote(Authentication authentication, Message message, Collection attributes) { assert authentication != null; assert message != null; @@ -67,10 +68,12 @@ public class MessageExpressionVoter implements AccessDecisionVoter return null; } + @Override public boolean supports(ConfigAttribute attribute) { return attribute instanceof MessageExpressionConfigAttribute; } + @Override public boolean supports(Class clazz) { return Message.class.isAssignableFrom(clazz); } diff --git a/messaging/src/main/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptor.java b/messaging/src/main/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptor.java index 6f3c9871a9..7e9071478c 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptor.java +++ b/messaging/src/main/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptor.java @@ -64,6 +64,7 @@ public final class ChannelSecurityInterceptor extends AbstractSecurityIntercepto return this.metadataSource; } + @Override public Message preSend(Message message, MessageChannel channel) { InterceptorStatusToken token = beforeInvocation(message); if (token != null) { @@ -72,24 +73,29 @@ public final class ChannelSecurityInterceptor extends AbstractSecurityIntercepto return message; } + @Override public void postSend(Message message, MessageChannel channel, boolean sent) { InterceptorStatusToken token = clearToken(); afterInvocation(token, null); } + @Override public void afterSendCompletion(Message message, MessageChannel channel, boolean sent, Exception ex) { InterceptorStatusToken token = clearToken(); finallyInvocation(token); } + @Override public boolean preReceive(MessageChannel channel) { return true; } + @Override public Message postReceive(Message message, MessageChannel channel) { return message; } + @Override public void afterReceiveCompletion(Message message, MessageChannel channel, Exception ex) { } diff --git a/messaging/src/main/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSource.java b/messaging/src/main/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSource.java index 98228e56e9..e7d77c0f32 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSource.java +++ b/messaging/src/main/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSource.java @@ -49,6 +49,7 @@ public final class DefaultMessageSecurityMetadataSource implements MessageSecuri this.messageMap = messageMap; } + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public Collection getAttributes(Object object) throws IllegalArgumentException { final Message message = (Message) object; @@ -60,6 +61,7 @@ public final class DefaultMessageSecurityMetadataSource implements MessageSecuri return null; } + @Override public Collection getAllConfigAttributes() { Set allAttributes = new HashSet<>(); @@ -70,6 +72,7 @@ public final class DefaultMessageSecurityMetadataSource implements MessageSecuri return allAttributes; } + @Override public boolean supports(Class clazz) { return Message.class.isAssignableFrom(clazz); } diff --git a/messaging/src/main/java/org/springframework/security/messaging/context/AuthenticationPrincipalArgumentResolver.java b/messaging/src/main/java/org/springframework/security/messaging/context/AuthenticationPrincipalArgumentResolver.java index ea1869a3d2..c9e5373188 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/context/AuthenticationPrincipalArgumentResolver.java +++ b/messaging/src/main/java/org/springframework/security/messaging/context/AuthenticationPrincipalArgumentResolver.java @@ -92,6 +92,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet * org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver# * supportsParameter(org.springframework.core.MethodParameter) */ + @Override public boolean supportsParameter(MethodParameter parameter) { return findMethodAnnotation(AuthenticationPrincipal.class, parameter) != null; } @@ -104,6 +105,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet * resolveArgument(org.springframework.core.MethodParameter, * org.springframework.messaging.Message) */ + @Override public Object resolveArgument(MethodParameter parameter, Message message) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication == null) { diff --git a/messaging/src/main/java/org/springframework/security/messaging/context/SecurityContextChannelInterceptor.java b/messaging/src/main/java/org/springframework/security/messaging/context/SecurityContextChannelInterceptor.java index ab9ea4c9eb..bfff7c659d 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/context/SecurityContextChannelInterceptor.java +++ b/messaging/src/main/java/org/springframework/security/messaging/context/SecurityContextChannelInterceptor.java @@ -96,11 +96,13 @@ public final class SecurityContextChannelInterceptor extends ChannelInterceptorA cleanup(); } + @Override public Message beforeHandle(Message message, MessageChannel channel, MessageHandler handler) { setup(message); return message; } + @Override public void afterMessageHandled(Message message, MessageChannel channel, MessageHandler handler, Exception ex) { cleanup(); } diff --git a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java index 1e3e90eafd..c2d9fb6483 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java +++ b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java @@ -122,6 +122,7 @@ public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArg return findMethodAnnotation(AuthenticationPrincipal.class, parameter) != null; } + @Override public Mono resolveArgument(MethodParameter parameter, Message message) { ReactiveAdapter adapter = this.adapterRegistry.getAdapter(parameter.getParameterType()); return ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication).flatMap(a -> { diff --git a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java index f8ea0528de..ed07e9e893 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java +++ b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java @@ -121,6 +121,7 @@ public class CurrentSecurityContextArgumentResolver implements HandlerMethodArgu return findMethodAnnotation(CurrentSecurityContext.class, parameter) != null; } + @Override public Mono resolveArgument(MethodParameter parameter, Message message) { ReactiveAdapter adapter = this.adapterRegistry.getAdapter(parameter.getParameterType()); return ReactiveSecurityContextHolder.getContext().flatMap(securityContext -> { diff --git a/messaging/src/main/java/org/springframework/security/messaging/util/matcher/AndMessageMatcher.java b/messaging/src/main/java/org/springframework/security/messaging/util/matcher/AndMessageMatcher.java index 164d799ecf..f6bcc6ba9d 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/util/matcher/AndMessageMatcher.java +++ b/messaging/src/main/java/org/springframework/security/messaging/util/matcher/AndMessageMatcher.java @@ -45,6 +45,7 @@ public final class AndMessageMatcher extends AbstractMessageMatcherComposite< } + @Override public boolean matches(Message message) { for (MessageMatcher matcher : getMessageMatchers()) { if (this.LOGGER.isDebugEnabled()) { diff --git a/messaging/src/main/java/org/springframework/security/messaging/util/matcher/OrMessageMatcher.java b/messaging/src/main/java/org/springframework/security/messaging/util/matcher/OrMessageMatcher.java index b7f2a6ace9..62c46719f5 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/util/matcher/OrMessageMatcher.java +++ b/messaging/src/main/java/org/springframework/security/messaging/util/matcher/OrMessageMatcher.java @@ -45,6 +45,7 @@ public final class OrMessageMatcher extends AbstractMessageMatcherComposite message) { for (MessageMatcher matcher : getMessageMatchers()) { if (this.LOGGER.isDebugEnabled()) { diff --git a/messaging/src/main/java/org/springframework/security/messaging/util/matcher/SimpDestinationMessageMatcher.java b/messaging/src/main/java/org/springframework/security/messaging/util/matcher/SimpDestinationMessageMatcher.java index fe24d4a766..4d7ff037da 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/util/matcher/SimpDestinationMessageMatcher.java +++ b/messaging/src/main/java/org/springframework/security/messaging/util/matcher/SimpDestinationMessageMatcher.java @@ -116,6 +116,7 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher message) { if (!this.messageTypeMatcher.matches(message)) { return false; diff --git a/messaging/src/main/java/org/springframework/security/messaging/web/socket/server/CsrfTokenHandshakeInterceptor.java b/messaging/src/main/java/org/springframework/security/messaging/web/socket/server/CsrfTokenHandshakeInterceptor.java index 0918f6f2bb..d2dfd2cc99 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/web/socket/server/CsrfTokenHandshakeInterceptor.java +++ b/messaging/src/main/java/org/springframework/security/messaging/web/socket/server/CsrfTokenHandshakeInterceptor.java @@ -36,6 +36,7 @@ import org.springframework.web.socket.server.HandshakeInterceptor; */ public final class CsrfTokenHandshakeInterceptor implements HandshakeInterceptor { + @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) { HttpServletRequest httpRequest = ((ServletServerHttpRequest) request).getServletRequest(); @@ -47,6 +48,7 @@ public final class CsrfTokenHandshakeInterceptor implements HandshakeInterceptor return true; } + @Override public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) { } diff --git a/messaging/src/test/java/org/springframework/security/messaging/util/matcher/AndMessageMatcherTests.java b/messaging/src/test/java/org/springframework/security/messaging/util/matcher/AndMessageMatcherTests.java index 9b98cd63ef..68e50f17e5 100644 --- a/messaging/src/test/java/org/springframework/security/messaging/util/matcher/AndMessageMatcherTests.java +++ b/messaging/src/test/java/org/springframework/security/messaging/util/matcher/AndMessageMatcherTests.java @@ -56,7 +56,7 @@ public class AndMessageMatcherTests { @SuppressWarnings("unchecked") @Test(expected = IllegalArgumentException.class) public void constructorEmptyArray() { - new AndMessageMatcher<>((MessageMatcher[]) new MessageMatcher[0]); + new AndMessageMatcher<>(new MessageMatcher[0]); } @Test(expected = IllegalArgumentException.class) diff --git a/messaging/src/test/java/org/springframework/security/messaging/util/matcher/OrMessageMatcherTests.java b/messaging/src/test/java/org/springframework/security/messaging/util/matcher/OrMessageMatcherTests.java index fb35b0cebf..bc1b89e9c2 100644 --- a/messaging/src/test/java/org/springframework/security/messaging/util/matcher/OrMessageMatcherTests.java +++ b/messaging/src/test/java/org/springframework/security/messaging/util/matcher/OrMessageMatcherTests.java @@ -56,7 +56,7 @@ public class OrMessageMatcherTests { @SuppressWarnings("unchecked") @Test(expected = IllegalArgumentException.class) public void constructorEmptyArray() { - new OrMessageMatcher<>((MessageMatcher[]) new MessageMatcher[0]); + new OrMessageMatcher<>(new MessageMatcher[0]); } @Test(expected = IllegalArgumentException.class) diff --git a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/jackson2/JsonNodeUtils.java b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/jackson2/JsonNodeUtils.java index ce0d7b65d4..6491424e09 100644 --- a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/jackson2/JsonNodeUtils.java +++ b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/jackson2/JsonNodeUtils.java @@ -53,7 +53,7 @@ abstract class JsonNodeUtils { } JsonNode nodeValue = jsonNode.findValue(fieldName); if (nodeValue != null && nodeValue.isContainerNode()) { - return (T) mapper.convertValue(nodeValue, valueTypeReference); + return mapper.convertValue(nodeValue, valueTypeReference); } return null; } diff --git a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/OAuth2AuthorizationRequestRedirectFilter.java b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/OAuth2AuthorizationRequestRedirectFilter.java index 2688f65c9d..c1a667c91a 100644 --- a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/OAuth2AuthorizationRequestRedirectFilter.java +++ b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/OAuth2AuthorizationRequestRedirectFilter.java @@ -235,6 +235,7 @@ public class OAuth2AuthorizationRequestRedirectFilter extends OncePerRequestFilt private static final class DefaultThrowableAnalyzer extends ThrowableAnalyzer { + @Override protected void initExtractorMap() { super.initExtractorMap(); registerExtractor(ServletException.class, throwable -> { diff --git a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/InMemoryOAuth2AuthorizedClientServiceTests.java b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/InMemoryOAuth2AuthorizedClientServiceTests.java index 49af3ef323..ff8f9988db 100644 --- a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/InMemoryOAuth2AuthorizedClientServiceTests.java +++ b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/InMemoryOAuth2AuthorizedClientServiceTests.java @@ -81,8 +81,8 @@ public class InMemoryOAuth2AuthorizedClientServiceTests { InMemoryOAuth2AuthorizedClientService authorizedClientService = new InMemoryOAuth2AuthorizedClientService( clientRegistrationRepository, authorizedClients); - assertThat((OAuth2AuthorizedClient) authorizedClientService.loadAuthorizedClient(registrationId, - this.principalName1)).isNotNull(); + assertThat((Object) authorizedClientService.loadAuthorizedClient(registrationId, this.principalName1)) + .isNotNull(); } @Test(expected = IllegalArgumentException.class) diff --git a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/DefaultOAuth2AuthorizationRequestResolverTests.java b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/DefaultOAuth2AuthorizationRequestResolverTests.java index 44ddf1ef28..108e3f1b1d 100644 --- a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/DefaultOAuth2AuthorizationRequestResolverTests.java +++ b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/DefaultOAuth2AuthorizationRequestResolverTests.java @@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletRequest; import org.junit.Before; import org.junit.Test; +import org.mockito.ArgumentMatchers; import org.mockito.Mockito; import org.springframework.mock.web.MockHttpServletRequest; @@ -123,10 +124,10 @@ public class DefaultOAuth2AuthorizationRequestResolverTests { Mockito.verify(spyRequest, Mockito.never()).getReader(); Mockito.verify(spyRequest, Mockito.never()).getInputStream(); - Mockito.verify(spyRequest, Mockito.never()).getParameter(Mockito.anyString()); + Mockito.verify(spyRequest, Mockito.never()).getParameter(ArgumentMatchers.anyString()); Mockito.verify(spyRequest, Mockito.never()).getParameterMap(); Mockito.verify(spyRequest, Mockito.never()).getParameterNames(); - Mockito.verify(spyRequest, Mockito.never()).getParameterValues(Mockito.anyString()); + Mockito.verify(spyRequest, Mockito.never()).getParameterValues(ArgumentMatchers.anyString()); } @Test diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/DefaultOAuth2AuthenticatedPrincipal.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/DefaultOAuth2AuthenticatedPrincipal.java index e32052c943..66aaf058a5 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/DefaultOAuth2AuthenticatedPrincipal.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/DefaultOAuth2AuthenticatedPrincipal.java @@ -73,6 +73,7 @@ public final class DefaultOAuth2AuthenticatedPrincipal implements OAuth2Authenti * Gets the attributes of the OAuth 2.0 token in map form. * @return a {@link Map} of the attribute's objects keyed by the attribute's names */ + @Override public Map getAttributes() { return this.attributes; } diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/IdTokenClaimAccessor.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/IdTokenClaimAccessor.java index e0900300cc..5628e33f9b 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/IdTokenClaimAccessor.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/IdTokenClaimAccessor.java @@ -53,6 +53,7 @@ public interface IdTokenClaimAccessor extends StandardClaimAccessor { * Returns the Subject identifier {@code (sub)}. * @return the Subject identifier */ + @Override default String getSubject() { return this.getClaimAsString(IdTokenClaimNames.SUB); } diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java index 278bb08742..38c6345b88 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java @@ -60,6 +60,7 @@ public interface OidcUser extends OAuth2User, IdTokenClaimAccessor { * {@link #getIdToken()} and {@link #getUserInfo()} (if available). * @return a {@code Map} of claims about the user */ + @Override Map getClaims(); /** diff --git a/oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/ReactiveRemoteJWKSource.java b/oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/ReactiveRemoteJWKSource.java index 922a279ee2..b3652ae3be 100644 --- a/oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/ReactiveRemoteJWKSource.java +++ b/oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/ReactiveRemoteJWKSource.java @@ -52,6 +52,7 @@ class ReactiveRemoteJWKSource implements ReactiveJWKSource { this.jwkSetURL = jwkSetURL; } + @Override public Mono> get(JWKSelector jwkSelector) { return this.cachedJWKSet.get().switchIfEmpty(Mono.defer(() -> getJWKSet())) .flatMap(jwkSet -> get(jwkSelector, jwkSet)) diff --git a/oauth2/oauth2-jose/src/test/java/org/springframework/security/oauth2/jwt/JwtClaimValidatorTests.java b/oauth2/oauth2-jose/src/test/java/org/springframework/security/oauth2/jwt/JwtClaimValidatorTests.java index 57d1d28c04..609383ff46 100644 --- a/oauth2/oauth2-jose/src/test/java/org/springframework/security/oauth2/jwt/JwtClaimValidatorTests.java +++ b/oauth2/oauth2-jose/src/test/java/org/springframework/security/oauth2/jwt/JwtClaimValidatorTests.java @@ -51,8 +51,7 @@ public class JwtClaimValidatorTests { @Test public void validateWhenClaimIsNullThenThrowsIllegalArgumentException() { - assertThatThrownBy(() -> new JwtClaimValidator(null, test)) - .isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> new JwtClaimValidator<>(null, test)).isInstanceOf(IllegalArgumentException.class); } @Test diff --git a/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/ReactiveJwtAuthenticationConverterAdapter.java b/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/ReactiveJwtAuthenticationConverterAdapter.java index c868cacfdb..a55e130815 100644 --- a/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/ReactiveJwtAuthenticationConverterAdapter.java +++ b/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/ReactiveJwtAuthenticationConverterAdapter.java @@ -38,6 +38,7 @@ public class ReactiveJwtAuthenticationConverterAdapter implements Converter convert(Jwt jwt) { return Mono.just(jwt).map(this.delegate::convert); } diff --git a/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/server/ServerBearerTokenAuthenticationConverter.java b/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/server/ServerBearerTokenAuthenticationConverter.java index d2885fcb4f..37edea4e99 100644 --- a/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/server/ServerBearerTokenAuthenticationConverter.java +++ b/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/server/ServerBearerTokenAuthenticationConverter.java @@ -54,6 +54,7 @@ public class ServerBearerTokenAuthenticationConverter implements ServerAuthentic private String bearerTokenHeaderName = HttpHeaders.AUTHORIZATION; + @Override public Mono convert(ServerWebExchange exchange) { return Mono.fromCallable(() -> token(exchange.getRequest())).map(token -> { if (token.isEmpty()) { diff --git a/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospectorTests.java b/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospectorTests.java index b2791a83cc..5e33638382 100644 --- a/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospectorTests.java +++ b/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospectorTests.java @@ -223,7 +223,6 @@ public class NimbusOpaqueTokenIntrospectorTests { OAuth2AuthenticatedPrincipal principal = introspectionClient.introspect("token"); assertThat(principal.getAuthorities()).isEmpty(); - assertThat((Object) principal.getAttribute("scope")).isNotNull().isInstanceOf(JSONArray.class); JSONArray scope = principal.getAttribute("scope"); assertThat(scope).containsExactly("read", "write", "dolphin"); } diff --git a/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/OAuth2IntrospectionAuthenticatedPrincipalTests.java b/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/OAuth2IntrospectionAuthenticatedPrincipalTests.java index 2ebc828f33..0a49e6691a 100644 --- a/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/OAuth2IntrospectionAuthenticatedPrincipalTests.java +++ b/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/OAuth2IntrospectionAuthenticatedPrincipalTests.java @@ -189,18 +189,22 @@ public class OAuth2IntrospectionAuthenticatedPrincipalTests { @Test public void getAttributeWhenGivenKeyThenReturnsValue() { OAuth2AuthenticatedPrincipal principal = new OAuth2IntrospectionAuthenticatedPrincipal(CLAIMS, AUTHORITIES); + assertHasEqualAttribute(principal, ACTIVE_CLAIM, ACTIVE_VALUE); + assertHasEqualAttribute(principal, CLIENT_ID_CLAIM, CLIENT_ID_VALUE); + assertHasEqualAttribute(principal, USERNAME_CLAIM, USERNAME_VALUE); + assertHasEqualAttribute(principal, TOKEN_TYPE_CLAIM, TOKEN_TYPE_VALUE); + assertHasEqualAttribute(principal, EXP_CLAIM, EXP_VALUE); + assertHasEqualAttribute(principal, IAT_CLAIM, IAT_VALUE); + assertHasEqualAttribute(principal, NBF_CLAIM, NBF_VALUE); + assertHasEqualAttribute(principal, SUB_CLAIM, SUB_VALUE); + assertHasEqualAttribute(principal, AUD_CLAIM, AUD_VALUE); + assertHasEqualAttribute(principal, ISS_CLAIM, ISS_VALUE); + assertHasEqualAttribute(principal, JTI_CLAIM, JTI_VALUE); + } - assertThat((Object) principal.getAttribute(ACTIVE_CLAIM)).isEqualTo(ACTIVE_VALUE); - assertThat((Object) principal.getAttribute(CLIENT_ID_CLAIM)).isEqualTo(CLIENT_ID_VALUE); - assertThat((Object) principal.getAttribute(USERNAME_CLAIM)).isEqualTo(USERNAME_VALUE); - assertThat((Object) principal.getAttribute(TOKEN_TYPE_CLAIM)).isEqualTo(TOKEN_TYPE_VALUE); - assertThat((Object) principal.getAttribute(EXP_CLAIM)).isEqualTo(EXP_VALUE); - assertThat((Object) principal.getAttribute(IAT_CLAIM)).isEqualTo(IAT_VALUE); - assertThat((Object) principal.getAttribute(NBF_CLAIM)).isEqualTo(NBF_VALUE); - assertThat((Object) principal.getAttribute(SUB_CLAIM)).isEqualTo(SUB_VALUE); - assertThat((Object) principal.getAttribute(AUD_CLAIM)).isEqualTo(AUD_VALUE); - assertThat((Object) principal.getAttribute(ISS_CLAIM)).isEqualTo(ISS_VALUE); - assertThat((Object) principal.getAttribute(JTI_CLAIM)).isEqualTo(JTI_VALUE); + private void assertHasEqualAttribute(OAuth2AuthenticatedPrincipal principal, String name, Object expected) { + Object value = principal.getAttribute(name); + assertThat(value).isEqualTo(expected); } } diff --git a/openid/src/main/java/org/springframework/security/openid/AuthenticationCancelledException.java b/openid/src/main/java/org/springframework/security/openid/AuthenticationCancelledException.java index 01d9f9840f..2e9435ae63 100644 --- a/openid/src/main/java/org/springframework/security/openid/AuthenticationCancelledException.java +++ b/openid/src/main/java/org/springframework/security/openid/AuthenticationCancelledException.java @@ -26,6 +26,7 @@ import org.springframework.security.core.AuthenticationException; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class AuthenticationCancelledException extends AuthenticationException { public AuthenticationCancelledException(String msg) { diff --git a/openid/src/main/java/org/springframework/security/openid/AxFetchListFactory.java b/openid/src/main/java/org/springframework/security/openid/AxFetchListFactory.java index 57d5287702..1171feb756 100644 --- a/openid/src/main/java/org/springframework/security/openid/AxFetchListFactory.java +++ b/openid/src/main/java/org/springframework/security/openid/AxFetchListFactory.java @@ -31,6 +31,7 @@ import java.util.List; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public interface AxFetchListFactory { /** diff --git a/openid/src/main/java/org/springframework/security/openid/NullAxFetchListFactory.java b/openid/src/main/java/org/springframework/security/openid/NullAxFetchListFactory.java index 152eb442db..ad8ff48033 100644 --- a/openid/src/main/java/org/springframework/security/openid/NullAxFetchListFactory.java +++ b/openid/src/main/java/org/springframework/security/openid/NullAxFetchListFactory.java @@ -26,8 +26,10 @@ import java.util.List; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class NullAxFetchListFactory implements AxFetchListFactory { + @Override public List createAttributeList(String identifier) { return Collections.emptyList(); } diff --git a/openid/src/main/java/org/springframework/security/openid/OpenID4JavaConsumer.java b/openid/src/main/java/org/springframework/security/openid/OpenID4JavaConsumer.java index 741b81af09..391e8e152e 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenID4JavaConsumer.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenID4JavaConsumer.java @@ -49,6 +49,7 @@ import org.springframework.util.StringUtils; * @author Ray Krueger * @author Luke Taylor */ +@Deprecated @SuppressWarnings("unchecked") public class OpenID4JavaConsumer implements OpenIDConsumer { @@ -75,6 +76,7 @@ public class OpenID4JavaConsumer implements OpenIDConsumer { this.attributesToFetchFactory = attributesToFetchFactory; } + @Override public String beginConsumption(HttpServletRequest req, String identityUrl, String returnToUrl, String realm) throws OpenIDConsumerException { List discoveries; @@ -117,6 +119,7 @@ public class OpenID4JavaConsumer implements OpenIDConsumer { return authReq.getDestinationUrl(true); } + @Override public OpenIDAuthenticationToken endConsumption(HttpServletRequest request) throws OpenIDConsumerException { // extract the parameters from the authentication response // (which comes in as a HTTP request from the OpenID provider) diff --git a/openid/src/main/java/org/springframework/security/openid/OpenIDAttribute.java b/openid/src/main/java/org/springframework/security/openid/OpenIDAttribute.java index c60cb995e6..dcb41d697c 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenIDAttribute.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenIDAttribute.java @@ -34,6 +34,7 @@ import org.springframework.util.Assert; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDAttribute implements Serializable { private final String name; diff --git a/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationFilter.java b/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationFilter.java index 97c51d27db..36adebf2c8 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationFilter.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationFilter.java @@ -75,6 +75,7 @@ import org.springframework.util.StringUtils; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDAuthenticationFilter extends AbstractAuthenticationProcessingFilter { public static final String DEFAULT_CLAIMED_IDENTITY_FIELD = "openid_identifier"; diff --git a/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationProvider.java b/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationProvider.java index bdc9ee62fc..9defb71032 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationProvider.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationProvider.java @@ -51,12 +51,14 @@ import org.springframework.util.Assert; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDAuthenticationProvider implements AuthenticationProvider, InitializingBean { private AuthenticationUserDetailsService userDetailsService; private GrantedAuthoritiesMapper authoritiesMapper = new NullAuthoritiesMapper(); + @Override public void afterPropertiesSet() { Assert.notNull(this.userDetailsService, "The userDetailsService must be set"); } @@ -68,6 +70,7 @@ public class OpenIDAuthenticationProvider implements AuthenticationProvider, Ini * org.springframework.security.authentication.AuthenticationProvider#authenticate * (org.springframework.security.Authentication) */ + @Override public Authentication authenticate(final Authentication authentication) throws AuthenticationException { if (!supports(authentication.getClass())) { @@ -146,6 +149,7 @@ public class OpenIDAuthenticationProvider implements AuthenticationProvider, Ini * org.springframework.security.authentication.AuthenticationProvider#supports(java * .lang.Class) */ + @Override public boolean supports(Class authentication) { return OpenIDAuthenticationToken.class.isAssignableFrom(authentication); } diff --git a/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationToken.java b/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationToken.java index f8ba9eb443..bb4d831a36 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationToken.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationToken.java @@ -32,6 +32,7 @@ import org.springframework.security.core.SpringSecurityCoreVersion; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDAuthenticationToken extends AbstractAuthenticationToken { private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; @@ -79,6 +80,7 @@ public class OpenIDAuthenticationToken extends AbstractAuthenticationToken { * Returns 'null' always, as no credentials are processed by the OpenID provider. * @see org.springframework.security.core.Authentication#getCredentials() */ + @Override public Object getCredentials() { return null; } @@ -96,6 +98,7 @@ public class OpenIDAuthenticationToken extends AbstractAuthenticationToken { * * @see org.springframework.security.core.Authentication#getPrincipal() */ + @Override public Object getPrincipal() { return this.principal; } diff --git a/openid/src/main/java/org/springframework/security/openid/OpenIDConsumer.java b/openid/src/main/java/org/springframework/security/openid/OpenIDConsumer.java index d49143b9f4..5d8711e32c 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenIDConsumer.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenIDConsumer.java @@ -27,6 +27,7 @@ import javax.servlet.http.HttpServletRequest; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public interface OpenIDConsumer { /** diff --git a/openid/src/main/java/org/springframework/security/openid/OpenIDConsumerException.java b/openid/src/main/java/org/springframework/security/openid/OpenIDConsumerException.java index 1410eb32c0..66f0b7fb4d 100644 --- a/openid/src/main/java/org/springframework/security/openid/OpenIDConsumerException.java +++ b/openid/src/main/java/org/springframework/security/openid/OpenIDConsumerException.java @@ -24,6 +24,7 @@ package org.springframework.security.openid; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDConsumerException extends Exception { public OpenIDConsumerException(String message) { diff --git a/openid/src/main/java/org/springframework/security/openid/RegexBasedAxFetchListFactory.java b/openid/src/main/java/org/springframework/security/openid/RegexBasedAxFetchListFactory.java index dd86fd276d..a18949ab15 100644 --- a/openid/src/main/java/org/springframework/security/openid/RegexBasedAxFetchListFactory.java +++ b/openid/src/main/java/org/springframework/security/openid/RegexBasedAxFetchListFactory.java @@ -29,6 +29,7 @@ import java.util.regex.Pattern; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class RegexBasedAxFetchListFactory implements AxFetchListFactory { private final Map> idToAttributes; @@ -48,6 +49,7 @@ public class RegexBasedAxFetchListFactory implements AxFetchListFactory { * Iterates through the patterns stored in the map and returns the list of attributes * defined for the first match. If no match is found, returns an empty list. */ + @Override public List createAttributeList(String identifier) { for (Map.Entry> entry : this.idToAttributes.entrySet()) { if (entry.getKey().matcher(identifier).matches()) { diff --git a/openid/src/test/java/org/springframework/security/openid/MockOpenIDConsumer.java b/openid/src/test/java/org/springframework/security/openid/MockOpenIDConsumer.java index 1b33455e2c..7c5b7a64ca 100644 --- a/openid/src/test/java/org/springframework/security/openid/MockOpenIDConsumer.java +++ b/openid/src/test/java/org/springframework/security/openid/MockOpenIDConsumer.java @@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class MockOpenIDConsumer implements OpenIDConsumer { private OpenIDAuthenticationToken token; @@ -46,10 +47,12 @@ public class MockOpenIDConsumer implements OpenIDConsumer { this.token = token; } + @Override public String beginConsumption(HttpServletRequest req, String claimedIdentity, String returnToUrl, String realm) { return this.redirectUrl; } + @Override public OpenIDAuthenticationToken endConsumption(HttpServletRequest req) { return this.token; } diff --git a/openid/src/test/java/org/springframework/security/openid/OpenID4JavaConsumerTests.java b/openid/src/test/java/org/springframework/security/openid/OpenID4JavaConsumerTests.java index e22514236a..aa7b8fa459 100644 --- a/openid/src/test/java/org/springframework/security/openid/OpenID4JavaConsumerTests.java +++ b/openid/src/test/java/org/springframework/security/openid/OpenID4JavaConsumerTests.java @@ -49,6 +49,7 @@ import static org.mockito.Mockito.when; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenID4JavaConsumerTests { List attributes = Arrays.asList(new OpenIDAttribute("a", "b"), @@ -228,6 +229,7 @@ public class OpenID4JavaConsumerTests { private class MockAttributesFactory implements AxFetchListFactory { + @Override public List createAttributeList(String identifier) { return OpenID4JavaConsumerTests.this.attributes; } diff --git a/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationFilterTests.java b/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationFilterTests.java index e2883a94a0..eaee4fa19b 100644 --- a/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationFilterTests.java +++ b/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationFilterTests.java @@ -41,6 +41,7 @@ import static org.mockito.Mockito.verify; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDAuthenticationFilterTests { OpenIDAuthenticationFilter filter; @@ -78,6 +79,7 @@ public class OpenIDAuthenticationFilterTests { req.setRemoteHost("www.example.com"); this.filter.setConsumer(new MockOpenIDConsumer() { + @Override public String beginConsumption(HttpServletRequest req, String claimedIdentity, String returnToUrl, String realm) { assertThat(claimedIdentity).isEqualTo(CLAIMED_IDENTITY_URL); diff --git a/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationProviderTests.java b/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationProviderTests.java index de3e1a6b3d..a25391b8c0 100644 --- a/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationProviderTests.java +++ b/openid/src/test/java/org/springframework/security/openid/OpenIDAuthenticationProviderTests.java @@ -42,6 +42,7 @@ import static org.assertj.core.api.Assertions.fail; * migrate to OpenID Connect, which is * supported by spring-security-oauth2. */ +@Deprecated public class OpenIDAuthenticationProviderTests { private static final String USERNAME = "user.acegiopenid.com"; @@ -241,6 +242,7 @@ public class OpenIDAuthenticationProviderTests { static class MockUserDetailsService implements UserDetailsService { + @Override public UserDetails loadUserByUsername(String ssoUserId) throws AuthenticationException { return new User(ssoUserId, "password", true, true, true, true, AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B")); diff --git a/remoting/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java b/remoting/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java index ef2c63858c..5bfcb31f9b 100644 --- a/remoting/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java +++ b/remoting/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java @@ -61,6 +61,7 @@ public class JndiDnsResolver implements DnsResolver { * org.springframework.security.remoting.dns.DnsResolver#resolveIpAddress(java.lang * .String) */ + @Override public String resolveIpAddress(String hostname) { return resolveIpAddress(hostname, this.ctxFactory.getCtx()); } @@ -72,6 +73,7 @@ public class JndiDnsResolver implements DnsResolver { * org.springframework.security.remoting.dns.DnsResolver#resolveServiceEntry(java. * lang.String, java.lang.String) */ + @Override public String resolveServiceEntry(String serviceType, String domain) { return resolveServiceEntry(serviceType, domain, this.ctxFactory.getCtx()); } @@ -83,6 +85,7 @@ public class JndiDnsResolver implements DnsResolver { * org.springframework.security.remoting.dns.DnsResolver#resolveServiceIpAddress(java * .lang.String, java.lang.String) */ + @Override public String resolveServiceIpAddress(String serviceType, String domain) { DirContext ctx = this.ctxFactory.getCtx(); String hostname = resolveServiceEntry(serviceType, domain, ctx); @@ -165,6 +168,7 @@ public class JndiDnsResolver implements DnsResolver { private static class DefaultInitialContextFactory implements InitialContextFactory { + @Override public DirContext getCtx() { Hashtable env = new Hashtable<>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory"); diff --git a/remoting/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java b/remoting/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java index 789e77ceb4..648c886428 100644 --- a/remoting/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java +++ b/remoting/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java @@ -66,6 +66,7 @@ public class AuthenticationSimpleHttpInvokerRequestExecutor extends SimpleHttpIn * @param contentLength the length of the content to send * @throws IOException if thrown by HttpURLConnection methods */ + @Override protected void prepareConnection(HttpURLConnection con, int contentLength) throws IOException { super.prepareConnection(con, contentLength); diff --git a/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java b/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java index 6967ee7ff2..844fd6ec42 100644 --- a/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java +++ b/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java @@ -91,6 +91,7 @@ public class ContextPropagatingRemoteInvocation extends RemoteInvocation { * @throws IllegalAccessException if the method could not be accessed * @throws InvocationTargetException if the method invocation resulted in an exception */ + @Override public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { diff --git a/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java b/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java index 8436e8efa5..6ea30971a4 100644 --- a/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java +++ b/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java @@ -35,6 +35,7 @@ import org.springframework.remoting.support.RemoteInvocationFactory; */ public class ContextPropagatingRemoteInvocationFactory implements RemoteInvocationFactory { + @Override public RemoteInvocation createRemoteInvocation(MethodInvocation methodInvocation) { return new ContextPropagatingRemoteInvocation(methodInvocation); } diff --git a/remoting/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java b/remoting/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java index e6d1ad584a..e6b75ac958 100644 --- a/remoting/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java +++ b/remoting/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java @@ -102,22 +102,27 @@ public class AuthenticationSimpleHttpInvokerRequestExecutorTests { super(u); } + @Override public void connect() { throw new UnsupportedOperationException("mock not implemented"); } + @Override public void disconnect() { throw new UnsupportedOperationException("mock not implemented"); } + @Override public String getRequestProperty(String key) { return this.requestProperties.get(key); } + @Override public void setRequestProperty(String key, String value) { this.requestProperties.put(key, value); } + @Override public boolean usingProxy() { throw new UnsupportedOperationException("mock not implemented"); } diff --git a/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadExchangeConverter.java b/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadExchangeConverter.java index cc084f6e07..aaf4f1c3ac 100644 --- a/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadExchangeConverter.java +++ b/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadExchangeConverter.java @@ -61,8 +61,8 @@ public class AuthenticationPayloadExchangeConverter implements PayloadExchangeAu @Override public Mono convert(PayloadExchange exchange) { return Mono - .fromCallable( - () -> this.metadataExtractor.extract(exchange.getPayload(), this.COMPOSITE_METADATA_MIME_TYPE)) + .fromCallable(() -> this.metadataExtractor.extract(exchange.getPayload(), + AuthenticationPayloadExchangeConverter.COMPOSITE_METADATA_MIME_TYPE)) .flatMap(metadata -> Mono.justOrEmpty(authentication(metadata))); } diff --git a/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadInterceptor.java b/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadInterceptor.java index 468ca39add..6a3e94b2a6 100644 --- a/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadInterceptor.java +++ b/rsocket/src/main/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadInterceptor.java @@ -70,6 +70,7 @@ public class AuthenticationPayloadInterceptor implements PayloadInterceptor, Ord this.authenticationConverter = authenticationConverter; } + @Override public Mono intercept(PayloadExchange exchange, PayloadInterceptorChain chain) { return this.authenticationConverter.convert(exchange).switchIfEmpty(chain.next(exchange).then(Mono.empty())) .flatMap(a -> this.authenticationManager.authenticate(a)) diff --git a/rsocket/src/main/java/org/springframework/security/rsocket/core/ContextPayloadInterceptorChain.java b/rsocket/src/main/java/org/springframework/security/rsocket/core/ContextPayloadInterceptorChain.java index 319ba043cb..601abccd90 100644 --- a/rsocket/src/main/java/org/springframework/security/rsocket/core/ContextPayloadInterceptorChain.java +++ b/rsocket/src/main/java/org/springframework/security/rsocket/core/ContextPayloadInterceptorChain.java @@ -73,6 +73,7 @@ class ContextPayloadInterceptorChain implements PayloadInterceptorChain { this.next = next; } + @Override public Mono next(PayloadExchange exchange) { return Mono.defer(() -> shouldIntercept() ? this.currentInterceptor.intercept(exchange, this.next) : Mono.subscriberContext().doOnNext(c -> this.context = c).then()); diff --git a/rsocket/src/main/java/org/springframework/security/rsocket/util/matcher/PayloadExchangeMatchers.java b/rsocket/src/main/java/org/springframework/security/rsocket/util/matcher/PayloadExchangeMatchers.java index 264715cdb0..4285f158e4 100644 --- a/rsocket/src/main/java/org/springframework/security/rsocket/util/matcher/PayloadExchangeMatchers.java +++ b/rsocket/src/main/java/org/springframework/security/rsocket/util/matcher/PayloadExchangeMatchers.java @@ -28,6 +28,7 @@ public abstract class PayloadExchangeMatchers { public static PayloadExchangeMatcher setup() { return new PayloadExchangeMatcher() { + @Override public Mono matches(PayloadExchange exchange) { return PayloadExchangeType.SETUP.equals(exchange.getType()) ? MatchResult.match() : MatchResult.notMatch(); @@ -37,6 +38,7 @@ public abstract class PayloadExchangeMatchers { public static PayloadExchangeMatcher anyRequest() { return new PayloadExchangeMatcher() { + @Override public Mono matches(PayloadExchange exchange) { return exchange.getType().isRequest() ? MatchResult.match() : MatchResult.notMatch(); } @@ -45,6 +47,7 @@ public abstract class PayloadExchangeMatchers { public static PayloadExchangeMatcher anyExchange() { return new PayloadExchangeMatcher() { + @Override public Mono matches(PayloadExchange exchange) { return MatchResult.match(); } diff --git a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/core/Saml2X509Credential.java b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/core/Saml2X509Credential.java index 4ce1cd7530..eada82bdd5 100644 --- a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/core/Saml2X509Credential.java +++ b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/core/Saml2X509Credential.java @@ -199,10 +199,12 @@ public final class Saml2X509Credential { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } Saml2X509Credential that = (Saml2X509Credential) o; return Objects.equals(this.privateKey, that.privateKey) && this.certificate.equals(that.certificate) && this.credentialTypes.equals(that.credentialTypes); diff --git a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/credentials/Saml2X509Credential.java b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/credentials/Saml2X509Credential.java index 648cb0d715..03a5e5a3cc 100644 --- a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/credentials/Saml2X509Credential.java +++ b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/credentials/Saml2X509Credential.java @@ -173,10 +173,12 @@ public class Saml2X509Credential { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } Saml2X509Credential that = (Saml2X509Credential) o; return Objects.equals(this.privateKey, that.privateKey) && this.certificate.equals(that.certificate) && this.credentialTypes.equals(that.credentialTypes); diff --git a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistration.java b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistration.java index f739e7e427..7a5db9ed5d 100644 --- a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistration.java +++ b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistration.java @@ -28,8 +28,6 @@ import java.util.function.Consumer; import java.util.function.Function; import org.springframework.security.saml2.core.Saml2X509Credential; -import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration.AssertingPartyDetails; -import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration.ProviderDetails; import org.springframework.security.saml2.provider.service.servlet.filter.Saml2WebSsoAuthenticationFilter; import org.springframework.util.Assert; diff --git a/taglibs/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java index 9da1c52e56..e893bb8d1e 100644 --- a/taglibs/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java +++ b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java @@ -66,6 +66,7 @@ public class AccessControlListTag extends TagSupport { private String var; + @Override public int doStartTag() throws JspException { if ((null == this.hasPermission) || "".equals(this.hasPermission)) { return skipBody(); diff --git a/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java index 25eb513c6f..993877a851 100644 --- a/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java +++ b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java @@ -76,10 +76,12 @@ public class AuthenticationTag extends TagSupport { this.scopeSpecified = true; } + @Override public int doStartTag() throws JspException { return super.doStartTag(); } + @Override public int doEndTag() throws JspException { Object result = null; // determine the value by... diff --git a/taglibs/src/main/java/org/springframework/security/taglibs/authz/JspAuthorizeTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/JspAuthorizeTag.java index 74f3669c49..2cb8acdd86 100644 --- a/taglibs/src/main/java/org/springframework/security/taglibs/authz/JspAuthorizeTag.java +++ b/taglibs/src/main/java/org/springframework/security/taglibs/authz/JspAuthorizeTag.java @@ -63,6 +63,7 @@ public class JspAuthorizeTag extends AbstractAuthorizeTag implements Tag { * the body of the tag should be skipped or not. * @return {@link Tag#SKIP_BODY} or {@link Tag#EVAL_BODY_INCLUDE} */ + @Override public int doStartTag() throws JspException { try { this.authorized = super.authorize(); @@ -93,6 +94,7 @@ public class JspAuthorizeTag extends AbstractAuthorizeTag implements Tag { * @return EVAL_PAGE * @see Tag#doEndTag() */ + @Override public int doEndTag() throws JspException { try { if (!this.authorized && TagLibConfig.isUiSecurityDisabled()) { @@ -114,10 +116,12 @@ public class JspAuthorizeTag extends AbstractAuthorizeTag implements Tag { this.id = id; } + @Override public Tag getParent() { return this.parent; } + @Override public void setParent(Tag parent) { this.parent = parent; } @@ -130,11 +134,13 @@ public class JspAuthorizeTag extends AbstractAuthorizeTag implements Tag { this.var = var; } + @Override public void release() { this.parent = null; this.id = null; } + @Override public void setPageContext(PageContext pageContext) { this.pageContext = pageContext; } @@ -162,46 +168,57 @@ public class JspAuthorizeTag extends AbstractAuthorizeTag implements Tag { this.delegate = delegate; } + @Override public TypedValue getRootObject() { return this.delegate.getRootObject(); } + @Override public List getConstructorResolvers() { return this.delegate.getConstructorResolvers(); } + @Override public List getMethodResolvers() { return this.delegate.getMethodResolvers(); } + @Override public List getPropertyAccessors() { return this.delegate.getPropertyAccessors(); } + @Override public TypeLocator getTypeLocator() { return this.delegate.getTypeLocator(); } + @Override public TypeConverter getTypeConverter() { return this.delegate.getTypeConverter(); } + @Override public TypeComparator getTypeComparator() { return this.delegate.getTypeComparator(); } + @Override public OperatorOverloader getOperatorOverloader() { return this.delegate.getOperatorOverloader(); } + @Override public BeanResolver getBeanResolver() { return this.delegate.getBeanResolver(); } + @Override public void setVariable(String name, Object value) { this.delegate.setVariable(name, value); } + @Override public Object lookupVariable(String name) { Object result = this.delegate.lookupVariable(name); diff --git a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java index f91977a420..09ee82c7dd 100644 --- a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java +++ b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java @@ -148,6 +148,7 @@ public class AuthenticationTagTests { return this.lastMessage; } + @Override protected void writeMessage(String msg) { this.lastMessage = msg; } diff --git a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java index 5e78631b89..c89a4f6975 100644 --- a/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java +++ b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java @@ -152,10 +152,12 @@ public class AuthorizeTagTests { public static class MockWebInvocationPrivilegeEvaluator implements WebInvocationPrivilegeEvaluator { + @Override public boolean isAllowed(String uri, Authentication authentication) { return "/allowed".equals(uri); } + @Override public boolean isAllowed(String contextPath, String uri, String method, Authentication authentication) { return "/allowed".equals(uri) && (method == null || "GET".equals(method)); } diff --git a/taglibs/src/test/java/org/springframework/security/taglibs/csrf/AbstractCsrfTagTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/csrf/AbstractCsrfTagTests.java index eaa680f080..2075eaba4b 100644 --- a/taglibs/src/test/java/org/springframework/security/taglibs/csrf/AbstractCsrfTagTests.java +++ b/taglibs/src/test/java/org/springframework/security/taglibs/csrf/AbstractCsrfTagTests.java @@ -18,7 +18,7 @@ package org.springframework.security.taglibs.csrf; import java.io.UnsupportedEncodingException; import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; +import javax.servlet.jsp.tagext.Tag; import org.junit.Before; import org.junit.Test; @@ -60,7 +60,7 @@ public class AbstractCsrfTagTests { int returned = this.tag.doEndTag(); - assertThat(returned).as("The returned value is not correct.").isEqualTo(TagSupport.EVAL_PAGE); + assertThat(returned).as("The returned value is not correct.").isEqualTo(Tag.EVAL_PAGE); assertThat(this.response.getContentAsString()).withFailMessage("The output value is not correct.") .isEqualTo(""); } @@ -75,7 +75,7 @@ public class AbstractCsrfTagTests { int returned = this.tag.doEndTag(); - assertThat(returned).as("The returned value is not correct.").isEqualTo(TagSupport.EVAL_PAGE); + assertThat(returned).as("The returned value is not correct.").isEqualTo(Tag.EVAL_PAGE); assertThat(this.response.getContentAsString()).withFailMessage("The output value is not correct.") .isEqualTo("fooBarBazQux"); assertThat(this.tag.token).as("The token is not correct.").isSameAs(token); @@ -91,7 +91,7 @@ public class AbstractCsrfTagTests { int returned = this.tag.doEndTag(); - assertThat(returned).as("The returned value is not correct.").isEqualTo(TagSupport.EVAL_PAGE); + assertThat(returned).as("The returned value is not correct.").isEqualTo(Tag.EVAL_PAGE); assertThat(this.response.getContentAsString()).withFailMessage("The output value is not correct.") .isEqualTo(""); assertThat(this.tag.token).as("The token is not correct.").isSameAs(token); diff --git a/test/src/main/java/org/springframework/security/test/context/support/WithAnonymousUserSecurityContextFactory.java b/test/src/main/java/org/springframework/security/test/context/support/WithAnonymousUserSecurityContextFactory.java index b5e35ee06c..8a02e2cca9 100644 --- a/test/src/main/java/org/springframework/security/test/context/support/WithAnonymousUserSecurityContextFactory.java +++ b/test/src/main/java/org/springframework/security/test/context/support/WithAnonymousUserSecurityContextFactory.java @@ -34,6 +34,7 @@ import org.springframework.security.core.context.SecurityContextHolder; */ final class WithAnonymousUserSecurityContextFactory implements WithSecurityContextFactory { + @Override public SecurityContext createSecurityContext(WithAnonymousUser withUser) { List authorities = AuthorityUtils.createAuthorityList("ROLE_ANONYMOUS"); Authentication authentication = new AnonymousAuthenticationToken("key", "anonymous", authorities); diff --git a/test/src/main/java/org/springframework/security/test/context/support/WithMockUserSecurityContextFactory.java b/test/src/main/java/org/springframework/security/test/context/support/WithMockUserSecurityContextFactory.java index 5de64847e2..9256f535b2 100644 --- a/test/src/main/java/org/springframework/security/test/context/support/WithMockUserSecurityContextFactory.java +++ b/test/src/main/java/org/springframework/security/test/context/support/WithMockUserSecurityContextFactory.java @@ -37,6 +37,7 @@ import org.springframework.util.StringUtils; */ final class WithMockUserSecurityContextFactory implements WithSecurityContextFactory { + @Override public SecurityContext createSecurityContext(WithMockUser withUser) { String username = StringUtils.hasLength(withUser.username()) ? withUser.username() : withUser.value(); if (username == null) { diff --git a/test/src/main/java/org/springframework/security/test/context/support/WithUserDetailsSecurityContextFactory.java b/test/src/main/java/org/springframework/security/test/context/support/WithUserDetailsSecurityContextFactory.java index c1be09f80c..a9405e97c1 100644 --- a/test/src/main/java/org/springframework/security/test/context/support/WithUserDetailsSecurityContextFactory.java +++ b/test/src/main/java/org/springframework/security/test/context/support/WithUserDetailsSecurityContextFactory.java @@ -51,6 +51,7 @@ final class WithUserDetailsSecurityContextFactory implements WithSecurityContext this.beans = beans; } + @Override public SecurityContext createSecurityContext(WithUserDetails withUser) { String beanName = withUser.userDetailsServiceBeanName(); UserDetailsService userDetailsService = findUserDetailsService(beanName); diff --git a/test/src/main/java/org/springframework/security/test/web/reactive/server/SecurityMockServerConfigurers.java b/test/src/main/java/org/springframework/security/test/web/reactive/server/SecurityMockServerConfigurers.java index 6fc1d68fef..0cb5af1762 100644 --- a/test/src/main/java/org/springframework/security/test/web/reactive/server/SecurityMockServerConfigurers.java +++ b/test/src/main/java/org/springframework/security/test/web/reactive/server/SecurityMockServerConfigurers.java @@ -107,6 +107,7 @@ public class SecurityMockServerConfigurers { */ public static MockServerConfigurer springSecurity() { return new MockServerConfigurer() { + @Override public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters(filters -> filters.add(0, new MutatorFilter())); } diff --git a/test/src/test/java/org/springframework/security/test/context/showcase/CustomUserDetails.java b/test/src/test/java/org/springframework/security/test/context/showcase/CustomUserDetails.java index 5256b9f112..6fa4da4309 100644 --- a/test/src/test/java/org/springframework/security/test/context/showcase/CustomUserDetails.java +++ b/test/src/test/java/org/springframework/security/test/context/showcase/CustomUserDetails.java @@ -38,30 +38,37 @@ public class CustomUserDetails implements UserDetails { this.authorities = AuthorityUtils.createAuthorityList("ROLE_USER"); } + @Override public Collection getAuthorities() { return this.authorities; } + @Override public String getPassword() { return null; } + @Override public String getUsername() { return this.username; } + @Override public boolean isAccountNonExpired() { return true; } + @Override public boolean isAccountNonLocked() { return true; } + @Override public boolean isCredentialsNonExpired() { return true; } + @Override public boolean isEnabled() { return true; } diff --git a/test/src/test/java/org/springframework/security/test/context/showcase/WithMockCustomUserSecurityContextFactory.java b/test/src/test/java/org/springframework/security/test/context/showcase/WithMockCustomUserSecurityContextFactory.java index 0a829c8039..a02086265e 100644 --- a/test/src/test/java/org/springframework/security/test/context/showcase/WithMockCustomUserSecurityContextFactory.java +++ b/test/src/test/java/org/springframework/security/test/context/showcase/WithMockCustomUserSecurityContextFactory.java @@ -26,6 +26,7 @@ import org.springframework.security.test.context.support.WithSecurityContextFact */ public class WithMockCustomUserSecurityContextFactory implements WithSecurityContextFactory { + @Override public SecurityContext createSecurityContext(WithMockCustomUser customUser) { SecurityContext context = SecurityContextHolder.createEmptyContext(); diff --git a/test/src/test/java/org/springframework/security/test/context/showcase/WithUserDetailsTests.java b/test/src/test/java/org/springframework/security/test/context/showcase/WithUserDetailsTests.java index 19e6a1b5e0..29cbaebbc5 100644 --- a/test/src/test/java/org/springframework/security/test/context/showcase/WithUserDetailsTests.java +++ b/test/src/test/java/org/springframework/security/test/context/showcase/WithUserDetailsTests.java @@ -101,6 +101,7 @@ public class WithUserDetailsTests { static class CustomUserDetailsService implements UserDetailsService { + @Override public UserDetails loadUserByUsername(final String username) throws UsernameNotFoundException { return new CustomUserDetails("name", username); } diff --git a/test/src/test/java/org/springframework/security/test/context/showcase/service/HelloMessageService.java b/test/src/test/java/org/springframework/security/test/context/showcase/service/HelloMessageService.java index 93fc0048e1..df1e05f8e0 100644 --- a/test/src/test/java/org/springframework/security/test/context/showcase/service/HelloMessageService.java +++ b/test/src/test/java/org/springframework/security/test/context/showcase/service/HelloMessageService.java @@ -26,6 +26,7 @@ import org.springframework.stereotype.Component; @Component public class HelloMessageService implements MessageService { + @Override @PreAuthorize("authenticated") public String getMessage() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockMvcResultMatchersTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockMvcResultMatchersTests.java index 30a1c4b004..519e1cda84 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockMvcResultMatchersTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockMvcResultMatchersTests.java @@ -99,6 +99,7 @@ public class SecurityMockMvcResultMatchersTests { @EnableWebMvc static class Config extends WebSecurityConfigurerAdapter { + @Override @Bean public UserDetailsService userDetailsService() { // @formatter:off diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockWithAuthoritiesMvcResultMatchersTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockWithAuthoritiesMvcResultMatchersTests.java index 799df7f5cb..962a73c18c 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockWithAuthoritiesMvcResultMatchersTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/response/SecurityMockWithAuthoritiesMvcResultMatchersTests.java @@ -79,6 +79,7 @@ public class SecurityMockWithAuthoritiesMvcResultMatchersTests { @EnableWebMvc static class Config extends WebSecurityConfigurerAdapter { + @Override @Bean public UserDetailsService userDetailsService() { // @formatter:off diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java index e76bcc76c9..a691ae79fa 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java @@ -88,6 +88,7 @@ public class AuthenticationTests { @EnableWebMvc static class Config extends WebSecurityConfigurerAdapter { + @Override @Bean public UserDetailsService userDetailsService() { // @formatter:off diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java index 60c13fb06e..2ea703fd48 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java @@ -107,6 +107,7 @@ public class CustomConfigAuthenticationTests { } // @formatter:off + @Override @Bean public UserDetailsService userDetailsService() { UserDetails user = User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build(); diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java index e5a35f2e59..7e46f5bcc2 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java @@ -94,6 +94,7 @@ public class CustomLoginRequestBuilderAuthenticationTests { } // @formatter:off + @Override @Bean public UserDetailsService userDetailsService() { UserDetails user = User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build(); diff --git a/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java b/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java index 13bab7101d..32379c2b61 100644 --- a/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java +++ b/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java @@ -46,6 +46,7 @@ public class DefaultRedirectStrategy implements RedirectStrategy { * information (HTTP or HTTPS), so will cause problems if a redirect is being * performed to change to HTTPS, for example. */ + @Override public void sendRedirect(HttpServletRequest request, HttpServletResponse response, String url) throws IOException { String redirectUrl = calculateRedirectUrl(request.getContextPath(), url); redirectUrl = response.encodeRedirectURL(redirectUrl); diff --git a/web/src/main/java/org/springframework/security/web/DefaultSecurityFilterChain.java b/web/src/main/java/org/springframework/security/web/DefaultSecurityFilterChain.java index 76eeaa1c8b..fde9261fa7 100644 --- a/web/src/main/java/org/springframework/security/web/DefaultSecurityFilterChain.java +++ b/web/src/main/java/org/springframework/security/web/DefaultSecurityFilterChain.java @@ -55,10 +55,12 @@ public final class DefaultSecurityFilterChain implements SecurityFilterChain { return this.requestMatcher; } + @Override public List getFilters() { return this.filters; } + @Override public boolean matches(HttpServletRequest request) { return this.requestMatcher.matches(request); } diff --git a/web/src/main/java/org/springframework/security/web/FilterInvocation.java b/web/src/main/java/org/springframework/security/web/FilterInvocation.java index 3245cf0b69..160884f2fd 100644 --- a/web/src/main/java/org/springframework/security/web/FilterInvocation.java +++ b/web/src/main/java/org/springframework/security/web/FilterInvocation.java @@ -168,10 +168,12 @@ class DummyRequest extends HttpServletRequestWrapper { super(UNSUPPORTED_REQUEST); } + @Override public String getCharacterEncoding() { return "UTF-8"; } + @Override public Object getAttribute(String attributeName) { return null; } @@ -296,6 +298,7 @@ final class UnsupportedOperationExceptionInvocationHandler implements Invocation private static final float JAVA_VERSION = Float.parseFloat(System.getProperty("java.class.version", "52")); + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.isDefault()) { return invokeDefaultMethod(proxy, method, args); diff --git a/web/src/main/java/org/springframework/security/web/PortMapperImpl.java b/web/src/main/java/org/springframework/security/web/PortMapperImpl.java index bf734731b3..9b5f416ea5 100644 --- a/web/src/main/java/org/springframework/security/web/PortMapperImpl.java +++ b/web/src/main/java/org/springframework/security/web/PortMapperImpl.java @@ -49,6 +49,7 @@ public class PortMapperImpl implements PortMapper { return this.httpsPortMappings; } + @Override public Integer lookupHttpPort(Integer httpsPort) { for (Integer httpPort : this.httpsPortMappings.keySet()) { if (this.httpsPortMappings.get(httpPort).equals(httpsPort)) { @@ -59,6 +60,7 @@ public class PortMapperImpl implements PortMapper { return null; } + @Override public Integer lookupHttpsPort(Integer httpPort) { return this.httpsPortMappings.get(httpPort); } diff --git a/web/src/main/java/org/springframework/security/web/PortResolverImpl.java b/web/src/main/java/org/springframework/security/web/PortResolverImpl.java index 0f576789bb..e17edef87b 100644 --- a/web/src/main/java/org/springframework/security/web/PortResolverImpl.java +++ b/web/src/main/java/org/springframework/security/web/PortResolverImpl.java @@ -42,6 +42,7 @@ public class PortResolverImpl implements PortResolver { return this.portMapper; } + @Override public int getServerPort(ServletRequest request) { int serverPort = request.getServerPort(); Integer portLookup = null; diff --git a/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java b/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java index 225debefa8..f129b4d8bc 100644 --- a/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java +++ b/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java @@ -49,6 +49,7 @@ public class AccessDeniedHandlerImpl implements AccessDeniedHandler { private String errorPage; + @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { if (!response.isCommitted()) { diff --git a/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java b/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java index 15c54568aa..92ceac2ba7 100644 --- a/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java +++ b/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java @@ -57,6 +57,7 @@ public class DefaultWebInvocationPrivilegeEvaluator implements WebInvocationPriv * @param uri the URI excluding the context path (a default context path setting will * be used) */ + @Override public boolean isAllowed(String uri, Authentication authentication) { return isAllowed(null, uri, null, authentication); } @@ -78,6 +79,7 @@ public class DefaultWebInvocationPrivilegeEvaluator implements WebInvocationPriv * be used in evaluation whether access should be granted. * @return true if access is allowed, false if denied */ + @Override public boolean isAllowed(String contextPath, String uri, String method, Authentication authentication) { Assert.notNull(uri, "uri parameter is required"); diff --git a/web/src/main/java/org/springframework/security/web/access/DelegatingAccessDeniedHandler.java b/web/src/main/java/org/springframework/security/web/access/DelegatingAccessDeniedHandler.java index 438fda55fa..6db0f4cd62 100644 --- a/web/src/main/java/org/springframework/security/web/access/DelegatingAccessDeniedHandler.java +++ b/web/src/main/java/org/springframework/security/web/access/DelegatingAccessDeniedHandler.java @@ -58,6 +58,7 @@ public final class DelegatingAccessDeniedHandler implements AccessDeniedHandler this.defaultHandler = defaultHandler; } + @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { for (Entry, AccessDeniedHandler> entry : this.handlers.entrySet()) { diff --git a/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java b/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java index 17460feda6..a33ffb37bb 100644 --- a/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java +++ b/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java @@ -105,6 +105,7 @@ public class ExceptionTranslationFilter extends GenericFilterBean { Assert.notNull(this.authenticationEntryPoint, "authenticationEntryPoint must be specified"); } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; @@ -227,6 +228,7 @@ public class ExceptionTranslationFilter extends GenericFilterBean { /** * @see org.springframework.security.web.util.ThrowableAnalyzer#initExtractorMap() */ + @Override protected void initExtractorMap() { super.initExtractorMap(); diff --git a/web/src/main/java/org/springframework/security/web/access/RequestMatcherDelegatingAccessDeniedHandler.java b/web/src/main/java/org/springframework/security/web/access/RequestMatcherDelegatingAccessDeniedHandler.java index a79a0c2aea..fe38540a3e 100644 --- a/web/src/main/java/org/springframework/security/web/access/RequestMatcherDelegatingAccessDeniedHandler.java +++ b/web/src/main/java/org/springframework/security/web/access/RequestMatcherDelegatingAccessDeniedHandler.java @@ -58,6 +58,7 @@ public final class RequestMatcherDelegatingAccessDeniedHandler implements Access this.defaultHandler = defaultHandler; } + @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { for (Entry entry : this.handlers.entrySet()) { diff --git a/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java index 56a21c98f6..4dc16581df 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java @@ -55,6 +55,7 @@ public abstract class AbstractRetryEntryPoint implements ChannelEntryPoint { this.standardPort = standardPort; } + @Override public void commence(HttpServletRequest request, HttpServletResponse response) throws IOException { String queryString = request.getQueryString(); String redirectUrl = request.getRequestURI() + ((queryString == null) ? "" : ("?" + queryString)); diff --git a/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java b/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java index 18014dfaa9..2266f457ac 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java @@ -51,10 +51,12 @@ public class ChannelDecisionManagerImpl implements ChannelDecisionManager, Initi private List channelProcessors; + @Override public void afterPropertiesSet() { Assert.notEmpty(this.channelProcessors, "A list of ChannelProcessors is required"); } + @Override public void decide(FilterInvocation invocation, Collection config) throws IOException, ServletException { for (ConfigAttribute attribute : config) { @@ -88,6 +90,7 @@ public class ChannelDecisionManagerImpl implements ChannelDecisionManager, Initi } } + @Override public boolean supports(ConfigAttribute attribute) { if (ANY_CHANNEL.equals(attribute.getAttribute())) { return true; diff --git a/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java b/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java index ad902951f3..2d7d8c6992 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java @@ -124,6 +124,7 @@ public class ChannelProcessingFilter extends GenericFilterBean { } } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; diff --git a/web/src/main/java/org/springframework/security/web/access/channel/InsecureChannelProcessor.java b/web/src/main/java/org/springframework/security/web/access/channel/InsecureChannelProcessor.java index 7404b17382..6f4d7b43bc 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/InsecureChannelProcessor.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/InsecureChannelProcessor.java @@ -46,11 +46,13 @@ public class InsecureChannelProcessor implements InitializingBean, ChannelProces private String insecureKeyword = "REQUIRES_INSECURE_CHANNEL"; + @Override public void afterPropertiesSet() { Assert.hasLength(this.insecureKeyword, "insecureKeyword required"); Assert.notNull(this.entryPoint, "entryPoint required"); } + @Override public void decide(FilterInvocation invocation, Collection config) throws IOException, ServletException { if ((invocation == null) || (config == null)) { @@ -82,6 +84,7 @@ public class InsecureChannelProcessor implements InitializingBean, ChannelProces this.insecureKeyword = secureKeyword; } + @Override public boolean supports(ConfigAttribute attribute) { return (attribute != null) && (attribute.getAttribute() != null) && attribute.getAttribute().equals(getInsecureKeyword()); diff --git a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java index 40736ba17c..27fcf7deb8 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java @@ -31,6 +31,7 @@ public class RetryWithHttpEntryPoint extends AbstractRetryEntryPoint { super("http://", 80); } + @Override protected Integer getMappedPort(Integer mapFromPort) { return getPortMapper().lookupHttpPort(mapFromPort); } diff --git a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java index b24d4ba6e0..7b13ab2fd5 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java @@ -32,6 +32,7 @@ public class RetryWithHttpsEntryPoint extends AbstractRetryEntryPoint { super("https://", 443); } + @Override protected Integer getMappedPort(Integer mapFromPort) { return getPortMapper().lookupHttpsPort(mapFromPort); } diff --git a/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java b/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java index 23aac7f8e4..4e0f501208 100644 --- a/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java +++ b/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java @@ -46,11 +46,13 @@ public class SecureChannelProcessor implements InitializingBean, ChannelProcesso private String secureKeyword = "REQUIRES_SECURE_CHANNEL"; + @Override public void afterPropertiesSet() { Assert.hasLength(this.secureKeyword, "secureKeyword required"); Assert.notNull(this.entryPoint, "entryPoint required"); } + @Override public void decide(FilterInvocation invocation, Collection config) throws IOException, ServletException { Assert.isTrue((invocation != null) && (config != null), "Nulls cannot be provided"); @@ -80,6 +82,7 @@ public class SecureChannelProcessor implements InitializingBean, ChannelProcesso this.secureKeyword = secureKeyword; } + @Override public boolean supports(ConfigAttribute attribute) { return (attribute != null) && (attribute.getAttribute() != null) && attribute.getAttribute().equals(getSecureKeyword()); diff --git a/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java b/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java index 601f6b91ba..0b363a046a 100644 --- a/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java +++ b/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java @@ -35,6 +35,7 @@ public class WebExpressionVoter implements AccessDecisionVoter private SecurityExpressionHandler expressionHandler = new DefaultWebSecurityExpressionHandler(); + @Override public int vote(Authentication authentication, FilterInvocation fi, Collection attributes) { assert authentication != null; assert fi != null; @@ -61,10 +62,12 @@ public class WebExpressionVoter implements AccessDecisionVoter return null; } + @Override public boolean supports(ConfigAttribute attribute) { return attribute instanceof WebExpressionConfigAttribute; } + @Override public boolean supports(Class clazz) { return FilterInvocation.class.isAssignableFrom(clazz); } diff --git a/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java index 79aeb6f727..91507ec62d 100644 --- a/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java +++ b/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java @@ -69,6 +69,7 @@ public class DefaultFilterInvocationSecurityMetadataSource implements FilterInvo this.requestMap = requestMap; } + @Override public Collection getAllConfigAttributes() { Set allAttributes = new HashSet<>(); @@ -79,6 +80,7 @@ public class DefaultFilterInvocationSecurityMetadataSource implements FilterInvo return allAttributes; } + @Override public Collection getAttributes(Object object) { final HttpServletRequest request = ((FilterInvocation) object).getRequest(); for (Map.Entry> entry : this.requestMap.entrySet()) { @@ -89,6 +91,7 @@ public class DefaultFilterInvocationSecurityMetadataSource implements FilterInvo return null; } + @Override public boolean supports(Class clazz) { return FilterInvocation.class.isAssignableFrom(clazz); } diff --git a/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java b/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java index e282747327..43d84624cc 100644 --- a/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java +++ b/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java @@ -55,12 +55,14 @@ public class FilterSecurityInterceptor extends AbstractSecurityInterceptor imple * @param arg0 ignored * */ + @Override public void init(FilterConfig arg0) { } /** * Not used (we rely on IoC container lifecycle services instead) */ + @Override public void destroy() { } @@ -73,6 +75,7 @@ public class FilterSecurityInterceptor extends AbstractSecurityInterceptor imple * @throws IOException if the filter chain fails * @throws ServletException if the filter chain fails */ + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { FilterInvocation fi = new FilterInvocation(request, response, chain); @@ -83,6 +86,7 @@ public class FilterSecurityInterceptor extends AbstractSecurityInterceptor imple return this.securityMetadataSource; } + @Override public SecurityMetadataSource obtainSecurityMetadataSource() { return this.securityMetadataSource; } @@ -91,6 +95,7 @@ public class FilterSecurityInterceptor extends AbstractSecurityInterceptor imple this.securityMetadataSource = newSource; } + @Override public Class getSecureObjectClass() { return FilterInvocation.class; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java index ffedf367d7..a0ae2461d1 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java @@ -205,6 +205,7 @@ public abstract class AbstractAuthenticationProcessingFilter extends GenericFilt * returned Authentication object is not null. * */ + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { @@ -398,6 +399,7 @@ public abstract class AbstractAuthenticationProcessingFilter extends GenericFilt this.continueChainBeforeSuccessfulAuthentication = continueChainBeforeSuccessfulAuthentication; } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher eventPublisher) { this.eventPublisher = eventPublisher; } @@ -408,6 +410,7 @@ public abstract class AbstractAuthenticationProcessingFilter extends GenericFilt this.authenticationDetailsSource = authenticationDetailsSource; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java index 5a26991247..fcd57272fe 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java @@ -82,6 +82,7 @@ public class AnonymousAuthenticationFilter extends GenericFilterBean implements Assert.notNull(this.authorities, "Anonymous authorities must be set"); } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { diff --git a/web/src/main/java/org/springframework/security/web/authentication/DelegatingAuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/DelegatingAuthenticationEntryPoint.java index fc04df9aa9..1a801c0478 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/DelegatingAuthenticationEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/authentication/DelegatingAuthenticationEntryPoint.java @@ -71,6 +71,7 @@ public class DelegatingAuthenticationEntryPoint implements AuthenticationEntryPo this.entryPoints = entryPoints; } + @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { @@ -103,6 +104,7 @@ public class DelegatingAuthenticationEntryPoint implements AuthenticationEntryPo this.defaultEntryPoint = defaultEntryPoint; } + @Override public void afterPropertiesSet() { Assert.notEmpty(this.entryPoints, "entryPoints must be specified"); Assert.notNull(this.defaultEntryPoint, "defaultEntryPoint must be specified"); diff --git a/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationFailureHandler.java index a7d924b174..465e86d487 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationFailureHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationFailureHandler.java @@ -46,6 +46,7 @@ public class ForwardAuthenticationFailureHandler implements AuthenticationFailur this.forwardUrl = forwardUrl; } + @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { request.setAttribute(WebAttributes.AUTHENTICATION_EXCEPTION, exception); diff --git a/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationSuccessHandler.java index f4c7d30bab..42b46cd694 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationSuccessHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/ForwardAuthenticationSuccessHandler.java @@ -46,6 +46,7 @@ public class ForwardAuthenticationSuccessHandler implements AuthenticationSucces this.forwardUrl = forwardUrl; } + @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { request.getRequestDispatcher(this.forwardUrl).forward(request, response); diff --git a/web/src/main/java/org/springframework/security/web/authentication/Http403ForbiddenEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/Http403ForbiddenEntryPoint.java index 220cd721fb..3a384222f3 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/Http403ForbiddenEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/authentication/Http403ForbiddenEntryPoint.java @@ -51,6 +51,7 @@ public class Http403ForbiddenEntryPoint implements AuthenticationEntryPoint { /** * Always returns a 403 error code to the client. */ + @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException arg2) throws IOException { if (logger.isDebugEnabled()) { diff --git a/web/src/main/java/org/springframework/security/web/authentication/HttpStatusEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/HttpStatusEntryPoint.java index 44e36b4e4a..ef1eafb46f 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/HttpStatusEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/authentication/HttpStatusEntryPoint.java @@ -44,6 +44,7 @@ public final class HttpStatusEntryPoint implements AuthenticationEntryPoint { this.httpStatus = httpStatus; } + @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) { response.setStatus(this.httpStatus.value()); diff --git a/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java index dec3bb4ffe..ca59b6842f 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java @@ -89,6 +89,7 @@ public class LoginUrlAuthenticationEntryPoint implements AuthenticationEntryPoin this.loginFormUrl = loginFormUrl; } + @Override public void afterPropertiesSet() { Assert.isTrue(StringUtils.hasText(this.loginFormUrl) && UrlUtils.isValidRedirectUrl(this.loginFormUrl), "loginFormUrl must be specified and must be a valid redirect URL"); @@ -116,6 +117,7 @@ public class LoginUrlAuthenticationEntryPoint implements AuthenticationEntryPoin /** * Performs the redirect (or forward) to the login form URL. */ + @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { diff --git a/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java b/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java index a09937ba20..c6b1189e3d 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java +++ b/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java @@ -31,13 +31,16 @@ import org.springframework.security.core.Authentication; */ public class NullRememberMeServices implements RememberMeServices { + @Override public Authentication autoLogin(HttpServletRequest request, HttpServletResponse response) { return null; } + @Override public void loginFail(HttpServletRequest request, HttpServletResponse response) { } + @Override public void loginSuccess(HttpServletRequest request, HttpServletResponse response, Authentication successfulAuthentication) { } diff --git a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java index 1cd5312384..ec22d488f1 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java @@ -72,6 +72,7 @@ public class SimpleUrlAuthenticationFailureHandler implements AuthenticationFail * If redirecting or forwarding, {@code saveException} will be called to cache the * exception for use in the target view. */ + @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { diff --git a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java index 49fe41828f..bccc0eaeda 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java @@ -55,6 +55,7 @@ public class SimpleUrlAuthenticationSuccessHandler extends AbstractAuthenticatio * URL, and then calls {@code clearAuthenticationAttributes()} to remove any leftover * session data. */ + @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { diff --git a/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java index b640597f5d..b1f94f7e3f 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java @@ -68,6 +68,7 @@ public class UsernamePasswordAuthenticationFilter extends AbstractAuthentication super(DEFAULT_ANT_PATH_REQUEST_MATCHER, authenticationManager); } + @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { if (this.postOnly && !request.getMethod().equals("POST")) { diff --git a/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java index 3b0ab2014b..96d62c0c0c 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java +++ b/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java @@ -35,6 +35,7 @@ public class WebAuthenticationDetailsSource * @return the {@code WebAuthenticationDetails} containing information about the * current request */ + @Override public WebAuthenticationDetails buildDetails(HttpServletRequest context) { return new WebAuthenticationDetails(context); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/CookieClearingLogoutHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/CookieClearingLogoutHandler.java index 5820cb6894..2409a0d16e 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/logout/CookieClearingLogoutHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/logout/CookieClearingLogoutHandler.java @@ -70,6 +70,7 @@ public final class CookieClearingLogoutHandler implements LogoutHandler { this.cookiesToClear = cookieList; } + @Override public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { this.cookiesToClear.forEach(f -> response.addCookie(f.apply(request))); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/HttpStatusReturningLogoutSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/HttpStatusReturningLogoutSuccessHandler.java index c30eb056b1..4cc71a856a 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/logout/HttpStatusReturningLogoutSuccessHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/logout/HttpStatusReturningLogoutSuccessHandler.java @@ -60,6 +60,7 @@ public class HttpStatusReturningLogoutSuccessHandler implements LogoutSuccessHan * {@link LogoutSuccessHandler#onLogoutSuccess(HttpServletRequest, HttpServletResponse, Authentication)} * . Sets the status on the {@link HttpServletResponse}. */ + @Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { response.setStatus(this.httpStatusToReturn.value()); diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java index 110daf321f..ff9ad94f07 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java @@ -82,6 +82,7 @@ public class LogoutFilter extends GenericFilterBean { setFilterProcessesUrl("/logout"); } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java index 8b3858f0ad..de82f99994 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java @@ -55,6 +55,7 @@ public class SecurityContextLogoutHandler implements LogoutHandler { * @param response not used (can be null) * @param authentication not used (can be null) */ + @Override public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { Assert.notNull(request, "HttpServletRequest required"); if (this.invalidateHttpSession) { diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java index 866670dbeb..85646bf7e2 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java +++ b/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java @@ -34,6 +34,7 @@ import org.springframework.security.web.authentication.AbstractAuthenticationTar public class SimpleUrlLogoutSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler implements LogoutSuccessHandler { + @Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { super.handle(request, response, authentication); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java index 867cdf3476..7045596f83 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java @@ -120,6 +120,7 @@ public abstract class AbstractPreAuthenticatedProcessingFilter extends GenericFi * Try to authenticate a pre-authenticated user with Spring Security if the user has * not yet been authenticated. */ + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { @@ -253,6 +254,7 @@ public abstract class AbstractPreAuthenticatedProcessingFilter extends GenericFi /** * @param anApplicationEventPublisher The ApplicationEventPublisher to use */ + @Override public void setApplicationEventPublisher(ApplicationEventPublisher anApplicationEventPublisher) { this.eventPublisher = anApplicationEventPublisher; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java index 208fb4a164..dce3ad5fb8 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java @@ -60,6 +60,7 @@ public class PreAuthenticatedAuthenticationProvider implements AuthenticationPro /** * Check whether all required properties have been set. */ + @Override public void afterPropertiesSet() { Assert.notNull(this.preAuthenticatedUserDetailsService, "An AuthenticationUserDetailsService must be set"); } @@ -70,6 +71,7 @@ public class PreAuthenticatedAuthenticationProvider implements AuthenticationPro * If the principal contained in the authentication object is null, the request will * be ignored to allow other providers to authenticate it. */ + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { if (!supports(authentication.getClass())) { return null; @@ -113,6 +115,7 @@ public class PreAuthenticatedAuthenticationProvider implements AuthenticationPro * Indicate that this provider only supports PreAuthenticatedAuthenticationToken * (sub)classes. */ + @Override public final boolean supports(Class authentication) { return PreAuthenticatedAuthenticationToken.class.isAssignableFrom(authentication); } @@ -146,6 +149,7 @@ public class PreAuthenticatedAuthenticationProvider implements AuthenticationPro this.userDetailsChecker = userDetailsChecker; } + @Override public int getOrder() { return this.order; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java index 31cc829b9f..a99352725c 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java @@ -67,6 +67,7 @@ public class PreAuthenticatedAuthenticationToken extends AbstractAuthenticationT /** * Get the credentials */ + @Override public Object getCredentials() { return this.credentials; } @@ -74,6 +75,7 @@ public class PreAuthenticatedAuthenticationToken extends AbstractAuthenticationT /** * Get the principal */ + @Override public Object getPrincipal() { return this.principal; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesUserDetailsService.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesUserDetailsService.java index 9f1e2f4f69..af87ab29c0 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesUserDetailsService.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesUserDetailsService.java @@ -52,6 +52,7 @@ public class PreAuthenticatedGrantedAuthoritiesUserDetailsService * the GrantedAuthorities as returned by the GrantedAuthoritiesContainer * implementation as returned by the token.getDetails() method. */ + @Override public final UserDetails loadUserDetails(PreAuthenticatedAuthenticationToken token) throws AuthenticationException { Assert.notNull(token.getDetails(), "token.getDetails() cannot be null"); Assert.isInstanceOf(GrantedAuthoritiesContainer.class, token.getDetails()); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestAttributeAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestAttributeAuthenticationFilter.java index 6102b55d2f..3d9f7b8cf0 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestAttributeAuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestAttributeAuthenticationFilter.java @@ -55,6 +55,7 @@ public class RequestAttributeAuthenticationFilter extends AbstractPreAuthenticat * @throws PreAuthenticatedCredentialsNotFoundException if the environment variable is * missing and {@code exceptionIfVariableMissing} is set to {@code true}. */ + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { String principal = (String) request.getAttribute(this.principalEnvironmentVariable); @@ -71,6 +72,7 @@ public class RequestAttributeAuthenticationFilter extends AbstractPreAuthenticat * {@code credentialsEnvironmentVariable} is set, this will be read and used as the * credentials value. Otherwise a dummy value will be used. */ + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest request) { if (this.credentialsEnvironmentVariable != null) { return request.getAttribute(this.credentialsEnvironmentVariable); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestHeaderAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestHeaderAuthenticationFilter.java index 015567f67d..438a11ce6b 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestHeaderAuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/RequestHeaderAuthenticationFilter.java @@ -56,6 +56,7 @@ public class RequestHeaderAuthenticationFilter extends AbstractPreAuthenticatedP * @throws PreAuthenticatedCredentialsNotFoundException if the header is missing and * {@code exceptionIfHeaderMissing} is set to {@code true}. */ + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { String principal = request.getHeader(this.principalRequestHeader); @@ -72,6 +73,7 @@ public class RequestHeaderAuthenticationFilter extends AbstractPreAuthenticatedP * set, this will be read and used as the credentials value. Otherwise a dummy value * will be used. */ + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest request) { if (this.credentialsRequestHeader != null) { return request.getHeader(this.credentialsRequestHeader); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java index e44fd3e8b4..cbf45ff40a 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java @@ -58,6 +58,7 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource implements /** * Check that all required properties have been set. */ + @Override public void afterPropertiesSet() { Assert.notNull(this.j2eeMappableRoles, "No mappable roles available"); Assert.notNull(this.j2eeUserRoles2GrantedAuthoritiesMapper, "Roles to granted authorities mapper not set"); @@ -89,6 +90,7 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource implements * * @see org.springframework.security.authentication.AuthenticationDetailsSource#buildDetails(Object) */ + @Override public PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails buildDetails(HttpServletRequest context) { Collection j2eeUserRoles = getUserRoles(context); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java index 14f732dcc8..2fc67dff1c 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java @@ -32,6 +32,7 @@ public class J2eePreAuthenticatedProcessingFilter extends AbstractPreAuthenticat /** * Return the J2EE user name. */ + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest httpRequest) { Object principal = httpRequest.getUserPrincipal() == null ? null : httpRequest.getUserPrincipal().getName(); if (this.logger.isDebugEnabled()) { @@ -44,6 +45,7 @@ public class J2eePreAuthenticatedProcessingFilter extends AbstractPreAuthenticat * For J2EE container-based authentication there is no generic way to retrieve the * credentials, as such this method returns a fixed dummy value. */ + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest httpRequest) { return "N/A"; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlMappableAttributesRetriever.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlMappableAttributesRetriever.java index 2e0cd34d4f..62fc83ba7d 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlMappableAttributesRetriever.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlMappableAttributesRetriever.java @@ -61,10 +61,12 @@ public class WebXmlMappableAttributesRetriever private Set mappableAttributes; + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } + @Override public Set getMappableAttributes() { return this.mappableAttributes; } @@ -74,6 +76,7 @@ public class WebXmlMappableAttributesRetriever * role-name elements from it, using these as the set of mappableAttributes. */ + @Override public void afterPropertiesSet() throws Exception { Resource webXml = this.resourceLoader.getResource("/WEB-INF/web.xml"); Document doc = getDocument(webXml.getInputStream()); @@ -133,6 +136,7 @@ public class WebXmlMappableAttributesRetriever */ private static final class MyEntityResolver implements EntityResolver { + @Override public InputSource resolveEntity(String publicId, String systemId) { return new InputSource(new StringReader("")); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/DefaultWASUsernameAndGroupsExtractor.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/DefaultWASUsernameAndGroupsExtractor.java index 0a6345683e..91df4aab6c 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/DefaultWASUsernameAndGroupsExtractor.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/DefaultWASUsernameAndGroupsExtractor.java @@ -58,10 +58,12 @@ final class DefaultWASUsernameAndGroupsExtractor implements WASUsernameAndGroups // SEC-803 private static Class wsCredentialClass = null; + @Override public List getGroupsForCurrentUser() { return getWebSphereGroups(getRunAsSubject()); } + @Override public String getCurrentUserName() { return getSecurityName(getRunAsSubject()); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java index ea7a493d7b..7e1c1071e4 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java @@ -47,6 +47,7 @@ public class WebSpherePreAuthenticatedProcessingFilter extends AbstractPreAuthen /** * Return the WebSphere user name. */ + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest httpRequest) { Object principal = this.wasHelper.getCurrentUserName(); if (this.logger.isDebugEnabled()) { @@ -59,6 +60,7 @@ public class WebSpherePreAuthenticatedProcessingFilter extends AbstractPreAuthen * For J2EE container-based authentication there is no generic way to retrieve the * credentials, as such this method returns a fixed dummy value. */ + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest httpRequest) { return "N/A"; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java index 84ab9dd7c0..49665325bd 100755 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java @@ -53,6 +53,7 @@ public class WebSpherePreAuthenticatedWebAuthenticationDetailsSource implements this.wasHelper = wasHelper; } + @Override public PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails buildDetails(HttpServletRequest context) { return new PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails(context, getWebSphereGroupsBasedGrantedAuthorities()); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/SubjectDnX509PrincipalExtractor.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/SubjectDnX509PrincipalExtractor.java index 320db86eed..98edc23435 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/SubjectDnX509PrincipalExtractor.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/SubjectDnX509PrincipalExtractor.java @@ -53,6 +53,7 @@ public class SubjectDnX509PrincipalExtractor implements X509PrincipalExtractor { setSubjectDnRegex("CN=(.*?)(?:,|$)"); } + @Override public Object extractPrincipal(X509Certificate clientCert) { // String subjectDN = clientCert.getSubjectX500Principal().getName(); String subjectDN = clientCert.getSubjectDN().getName(); diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/X509AuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/X509AuthenticationFilter.java index 6726a9d1c7..f66a3c3dfb 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/X509AuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/x509/X509AuthenticationFilter.java @@ -28,6 +28,7 @@ public class X509AuthenticationFilter extends AbstractPreAuthenticatedProcessing private X509PrincipalExtractor principalExtractor = new SubjectDnX509PrincipalExtractor(); + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { X509Certificate cert = extractClientCertificate(request); @@ -38,6 +39,7 @@ public class X509AuthenticationFilter extends AbstractPreAuthenticatedProcessing return this.principalExtractor.extractPrincipal(cert); } + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest request) { return extractClientCertificate(request); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/rememberme/InMemoryTokenRepositoryImpl.java b/web/src/main/java/org/springframework/security/web/authentication/rememberme/InMemoryTokenRepositoryImpl.java index 2e0572b30d..6f1f77520a 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/rememberme/InMemoryTokenRepositoryImpl.java +++ b/web/src/main/java/org/springframework/security/web/authentication/rememberme/InMemoryTokenRepositoryImpl.java @@ -32,6 +32,7 @@ public class InMemoryTokenRepositoryImpl implements PersistentTokenRepository { private final Map seriesTokens = new HashMap<>(); + @Override public synchronized void createNewToken(PersistentRememberMeToken token) { PersistentRememberMeToken current = this.seriesTokens.get(token.getSeries()); @@ -42,6 +43,7 @@ public class InMemoryTokenRepositoryImpl implements PersistentTokenRepository { this.seriesTokens.put(token.getSeries(), token); } + @Override public synchronized void updateToken(String series, String tokenValue, Date lastUsed) { PersistentRememberMeToken token = getTokenForSeries(series); @@ -52,10 +54,12 @@ public class InMemoryTokenRepositoryImpl implements PersistentTokenRepository { this.seriesTokens.put(series, newToken); } + @Override public synchronized PersistentRememberMeToken getTokenForSeries(String seriesId) { return this.seriesTokens.get(seriesId); } + @Override public synchronized void removeUserTokens(String username) { Iterator series = this.seriesTokens.keySet().iterator(); diff --git a/web/src/main/java/org/springframework/security/web/authentication/rememberme/JdbcTokenRepositoryImpl.java b/web/src/main/java/org/springframework/security/web/authentication/rememberme/JdbcTokenRepositoryImpl.java index d7a4d8857f..363f9d8aeb 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/rememberme/JdbcTokenRepositoryImpl.java +++ b/web/src/main/java/org/springframework/security/web/authentication/rememberme/JdbcTokenRepositoryImpl.java @@ -56,17 +56,20 @@ public class JdbcTokenRepositoryImpl extends JdbcDaoSupport implements Persisten private boolean createTableOnStartup; + @Override protected void initDao() { if (this.createTableOnStartup) { getJdbcTemplate().execute(CREATE_TABLE_SQL); } } + @Override public void createNewToken(PersistentRememberMeToken token) { getJdbcTemplate().update(this.insertTokenSql, token.getUsername(), token.getSeries(), token.getTokenValue(), token.getDate()); } + @Override public void updateToken(String series, String tokenValue, Date lastUsed) { getJdbcTemplate().update(this.updateTokenSql, tokenValue, lastUsed, series); } @@ -80,6 +83,7 @@ public class JdbcTokenRepositoryImpl extends JdbcDaoSupport implements Persisten * @return the token matching the series, or null if no match found or an exception * occurred. */ + @Override public PersistentRememberMeToken getTokenForSeries(String seriesId) { try { return getJdbcTemplate().queryForObject(this.tokensBySeriesSql, @@ -103,6 +107,7 @@ public class JdbcTokenRepositoryImpl extends JdbcDaoSupport implements Persisten return null; } + @Override public void removeUserTokens(String username) { getJdbcTemplate().update(this.removeUserTokensSql, username); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServices.java b/web/src/main/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServices.java index 13bb9f6b73..377a3567d1 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServices.java +++ b/web/src/main/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServices.java @@ -89,6 +89,7 @@ public class PersistentTokenBasedRememberMeServices extends AbstractRememberMeSe * @throws CookieTheftException if a presented series value is found, but the stored * token is different from the one presented. */ + @Override protected UserDetails processAutoLoginCookie(String[] cookieTokens, HttpServletRequest request, HttpServletResponse response) { @@ -149,6 +150,7 @@ public class PersistentTokenBasedRememberMeServices extends AbstractRememberMeSe * the persistent token repository and adds the corresponding cookie to the response. * */ + @Override protected void onLoginSuccess(HttpServletRequest request, HttpServletResponse response, Authentication successfulAuthentication) { String username = successfulAuthentication.getName(); diff --git a/web/src/main/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilter.java index be1f7f05e7..8fb4a860d3 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilter.java @@ -85,6 +85,7 @@ public class RememberMeAuthenticationFilter extends GenericFilterBean implements Assert.notNull(this.rememberMeServices, "rememberMeServices must be specified"); } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; @@ -170,6 +171,7 @@ public class RememberMeAuthenticationFilter extends GenericFilterBean implements return this.rememberMeServices; } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher eventPublisher) { this.eventPublisher = eventPublisher; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/session/AbstractSessionFixationProtectionStrategy.java b/web/src/main/java/org/springframework/security/web/authentication/session/AbstractSessionFixationProtectionStrategy.java index 69304944f7..6fb1ec0913 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/session/AbstractSessionFixationProtectionStrategy.java +++ b/web/src/main/java/org/springframework/security/web/authentication/session/AbstractSessionFixationProtectionStrategy.java @@ -65,6 +65,7 @@ abstract class AbstractSessionFixationProtectionStrategy * property is set, in which case a session will be created if one doesn't already * exist. */ + @Override public void onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response) { boolean hadSessionAlready = request.getSession(false) != null; @@ -135,6 +136,7 @@ abstract class AbstractSessionFixationProtectionStrategy * @param applicationEventPublisher the {@link ApplicationEventPublisher}. Cannot be * null. */ + @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { Assert.notNull(applicationEventPublisher, "applicationEventPublisher cannot be null"); this.applicationEventPublisher = applicationEventPublisher; @@ -146,9 +148,11 @@ abstract class AbstractSessionFixationProtectionStrategy protected static final class NullEventPublisher implements ApplicationEventPublisher { + @Override public void publishEvent(ApplicationEvent event) { } + @Override public void publishEvent(Object event) { } diff --git a/web/src/main/java/org/springframework/security/web/authentication/session/CompositeSessionAuthenticationStrategy.java b/web/src/main/java/org/springframework/security/web/authentication/session/CompositeSessionAuthenticationStrategy.java index 4f7bdf1c1d..e37e824848 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/session/CompositeSessionAuthenticationStrategy.java +++ b/web/src/main/java/org/springframework/security/web/authentication/session/CompositeSessionAuthenticationStrategy.java @@ -78,6 +78,7 @@ public class CompositeSessionAuthenticationStrategy implements SessionAuthentica * #onAuthentication(org.springframework.security.core.Authentication, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ + @Override public void onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response) throws SessionAuthenticationException { for (SessionAuthenticationStrategy delegate : this.delegateStrategies) { diff --git a/web/src/main/java/org/springframework/security/web/authentication/session/ConcurrentSessionControlAuthenticationStrategy.java b/web/src/main/java/org/springframework/security/web/authentication/session/ConcurrentSessionControlAuthenticationStrategy.java index 0d3e89315c..a2e4383b51 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/session/ConcurrentSessionControlAuthenticationStrategy.java +++ b/web/src/main/java/org/springframework/security/web/authentication/session/ConcurrentSessionControlAuthenticationStrategy.java @@ -90,6 +90,7 @@ public class ConcurrentSessionControlAuthenticationStrategy * In addition to the steps from the superclass, the sessionRegistry will be updated * with the new session information. */ + @Override public void onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response) { @@ -194,6 +195,7 @@ public class ConcurrentSessionControlAuthenticationStrategy * Sets the {@link MessageSource} used for reporting errors back to the user when the * user has exceeded the maximum number of authentications. */ + @Override public void setMessageSource(MessageSource messageSource) { Assert.notNull(messageSource, "messageSource cannot be null"); this.messages = new MessageSourceAccessor(messageSource); diff --git a/web/src/main/java/org/springframework/security/web/authentication/session/NullAuthenticatedSessionStrategy.java b/web/src/main/java/org/springframework/security/web/authentication/session/NullAuthenticatedSessionStrategy.java index 0654ae9c60..bae5f27f76 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/session/NullAuthenticatedSessionStrategy.java +++ b/web/src/main/java/org/springframework/security/web/authentication/session/NullAuthenticatedSessionStrategy.java @@ -26,6 +26,7 @@ import org.springframework.security.core.Authentication; */ public final class NullAuthenticatedSessionStrategy implements SessionAuthenticationStrategy { + @Override public void onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response) { } diff --git a/web/src/main/java/org/springframework/security/web/authentication/session/RegisterSessionAuthenticationStrategy.java b/web/src/main/java/org/springframework/security/web/authentication/session/RegisterSessionAuthenticationStrategy.java index 0f23d62ee5..0cbe06c900 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/session/RegisterSessionAuthenticationStrategy.java +++ b/web/src/main/java/org/springframework/security/web/authentication/session/RegisterSessionAuthenticationStrategy.java @@ -60,6 +60,7 @@ public class RegisterSessionAuthenticationStrategy implements SessionAuthenticat * In addition to the steps from the superclass, the sessionRegistry will be updated * with the new session information. */ + @Override public void onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response) { this.sessionRegistry.registerNewSession(request.getSession().getId(), authentication.getPrincipal()); diff --git a/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java b/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java index b51ca06d61..d64dd01cc3 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java @@ -159,6 +159,7 @@ public class SwitchUserFilter extends GenericFilterBean implements ApplicationEv } } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; @@ -386,6 +387,7 @@ public class SwitchUserFilter extends GenericFilterBean implements ApplicationEv return this.switchUserMatcher.matches(request); } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher eventPublisher) throws BeansException { this.eventPublisher = eventPublisher; } @@ -396,6 +398,7 @@ public class SwitchUserFilter extends GenericFilterBean implements ApplicationEv this.authenticationDetailsSource = authenticationDetailsSource; } + @Override public void setMessageSource(MessageSource messageSource) { Assert.notNull(messageSource, "messageSource cannot be null"); this.messages = new MessageSourceAccessor(messageSource); diff --git a/web/src/main/java/org/springframework/security/web/authentication/ui/DefaultLoginPageGeneratingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/ui/DefaultLoginPageGeneratingFilter.java index c7378269a3..f12d17c366 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/ui/DefaultLoginPageGeneratingFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/ui/DefaultLoginPageGeneratingFilter.java @@ -212,6 +212,7 @@ public class DefaultLoginPageGeneratingFilter extends GenericFilterBean { this.saml2AuthenticationUrlToProviderName = saml2AuthenticationUrlToProviderName; } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; diff --git a/web/src/main/java/org/springframework/security/web/authentication/www/BasicAuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/www/BasicAuthenticationEntryPoint.java index b602b65fe9..e67ecba199 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/www/BasicAuthenticationEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/authentication/www/BasicAuthenticationEntryPoint.java @@ -44,10 +44,12 @@ public class BasicAuthenticationEntryPoint implements AuthenticationEntryPoint, private String realmName; + @Override public void afterPropertiesSet() { Assert.hasText(this.realmName, "realmName must be specified"); } + @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException { response.addHeader("WWW-Authenticate", "Basic realm=\"" + this.realmName + "\""); diff --git a/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationEntryPoint.java index 7a464b2d2d..6fe4b6b4e5 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationEntryPoint.java @@ -57,6 +57,7 @@ public class DigestAuthenticationEntryPoint implements AuthenticationEntryPoint, private int order = Integer.MAX_VALUE; // ~ default + @Override public int getOrder() { return this.order; } @@ -65,6 +66,7 @@ public class DigestAuthenticationEntryPoint implements AuthenticationEntryPoint, this.order = order; } + @Override public void afterPropertiesSet() { if ((this.realmName == null) || "".equals(this.realmName)) { throw new IllegalArgumentException("realmName must be specified"); @@ -75,6 +77,7 @@ public class DigestAuthenticationEntryPoint implements AuthenticationEntryPoint, } } + @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException { HttpServletResponse httpResponse = response; diff --git a/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationFilter.java index caeb12f489..d3a7ccc406 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationFilter.java +++ b/web/src/main/java/org/springframework/security/web/authentication/www/DigestAuthenticationFilter.java @@ -111,6 +111,7 @@ public class DigestAuthenticationFilter extends GenericFilterBean implements Mes Assert.notNull(this.authenticationEntryPoint, "A DigestAuthenticationEntryPoint is required"); } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; @@ -266,6 +267,7 @@ public class DigestAuthenticationFilter extends GenericFilterBean implements Mes this.authenticationEntryPoint = authenticationEntryPoint; } + @Override public void setMessageSource(MessageSource messageSource) { this.messages = new MessageSourceAccessor(messageSource); } diff --git a/web/src/main/java/org/springframework/security/web/bind/support/AuthenticationPrincipalArgumentResolver.java b/web/src/main/java/org/springframework/security/web/bind/support/AuthenticationPrincipalArgumentResolver.java index 28e7db61d3..d6208ff6a9 100644 --- a/web/src/main/java/org/springframework/security/web/bind/support/AuthenticationPrincipalArgumentResolver.java +++ b/web/src/main/java/org/springframework/security/web/bind/support/AuthenticationPrincipalArgumentResolver.java @@ -92,6 +92,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet * @see org.springframework.web.method.support.HandlerMethodArgumentResolver# * supportsParameter (org.springframework.core.MethodParameter) */ + @Override public boolean supportsParameter(MethodParameter parameter) { return findMethodAnnotation(AuthenticationPrincipal.class, parameter) != null; } @@ -105,6 +106,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet * org.springframework.web.context.request.NativeWebRequest, * org.springframework.web.bind.support.WebDataBinderFactory) */ + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); diff --git a/web/src/main/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializer.java b/web/src/main/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializer.java index 1b3e772d06..34a4fb320c 100644 --- a/web/src/main/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializer.java +++ b/web/src/main/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializer.java @@ -105,6 +105,7 @@ public abstract class AbstractSecurityWebApplicationInitializer implements WebAp * @see org.springframework.web.WebApplicationInitializer#onStartup(javax.servlet. * ServletContext) */ + @Override public final void onStartup(ServletContext servletContext) { beforeSpringSecurityFilterChain(servletContext); if (this.configurationClasses != null) { diff --git a/web/src/main/java/org/springframework/security/web/context/HttpSessionSecurityContextRepository.java b/web/src/main/java/org/springframework/security/web/context/HttpSessionSecurityContextRepository.java index 0d4d0729c8..55d5edf3e3 100644 --- a/web/src/main/java/org/springframework/security/web/context/HttpSessionSecurityContextRepository.java +++ b/web/src/main/java/org/springframework/security/web/context/HttpSessionSecurityContextRepository.java @@ -109,6 +109,7 @@ public class HttpSessionSecurityContextRepository implements SecurityContextRepo * the session is not an instance of {@code SecurityContext}, a new context object * will be generated and returned. */ + @Override public SecurityContext loadContext(HttpRequestResponseHolder requestResponseHolder) { HttpServletRequest request = requestResponseHolder.getRequest(); HttpServletResponse response = requestResponseHolder.getResponse(); @@ -134,6 +135,7 @@ public class HttpSessionSecurityContextRepository implements SecurityContextRepo return context; } + @Override public void saveContext(SecurityContext context, HttpServletRequest request, HttpServletResponse response) { SaveContextOnUpdateOrErrorResponseWrapper responseWrapper = WebUtils.getNativeResponse(response, SaveContextOnUpdateOrErrorResponseWrapper.class); @@ -150,6 +152,7 @@ public class HttpSessionSecurityContextRepository implements SecurityContextRepo } } + @Override public boolean containsContext(HttpServletRequest request) { HttpSession session = request.getSession(false); diff --git a/web/src/main/java/org/springframework/security/web/context/NullSecurityContextRepository.java b/web/src/main/java/org/springframework/security/web/context/NullSecurityContextRepository.java index acedd8369c..1afd4b8832 100644 --- a/web/src/main/java/org/springframework/security/web/context/NullSecurityContextRepository.java +++ b/web/src/main/java/org/springframework/security/web/context/NullSecurityContextRepository.java @@ -27,14 +27,17 @@ import org.springframework.security.core.context.SecurityContextHolder; */ public final class NullSecurityContextRepository implements SecurityContextRepository { + @Override public boolean containsContext(HttpServletRequest request) { return false; } + @Override public SecurityContext loadContext(HttpRequestResponseHolder requestResponseHolder) { return SecurityContextHolder.createEmptyContext(); } + @Override public void saveContext(SecurityContext context, HttpServletRequest request, HttpServletResponse response) { } diff --git a/web/src/main/java/org/springframework/security/web/context/SecurityContextPersistenceFilter.java b/web/src/main/java/org/springframework/security/web/context/SecurityContextPersistenceFilter.java index b74b7a1e19..fb9c238052 100644 --- a/web/src/main/java/org/springframework/security/web/context/SecurityContextPersistenceFilter.java +++ b/web/src/main/java/org/springframework/security/web/context/SecurityContextPersistenceFilter.java @@ -72,6 +72,7 @@ public class SecurityContextPersistenceFilter extends GenericFilterBean { this.repo = repo; } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; diff --git a/web/src/main/java/org/springframework/security/web/csrf/CsrfLogoutHandler.java b/web/src/main/java/org/springframework/security/web/csrf/CsrfLogoutHandler.java index 5a5503f677..21c5788457 100644 --- a/web/src/main/java/org/springframework/security/web/csrf/CsrfLogoutHandler.java +++ b/web/src/main/java/org/springframework/security/web/csrf/CsrfLogoutHandler.java @@ -49,6 +49,7 @@ public final class CsrfLogoutHandler implements LogoutHandler { * javax.servlet.http.HttpServletResponse, * org.springframework.security.core.Authentication) */ + @Override public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { this.csrfTokenRepository.saveToken(null, request, response); } diff --git a/web/src/main/java/org/springframework/security/web/csrf/DefaultCsrfToken.java b/web/src/main/java/org/springframework/security/web/csrf/DefaultCsrfToken.java index 91eca28563..4cab384351 100644 --- a/web/src/main/java/org/springframework/security/web/csrf/DefaultCsrfToken.java +++ b/web/src/main/java/org/springframework/security/web/csrf/DefaultCsrfToken.java @@ -53,6 +53,7 @@ public final class DefaultCsrfToken implements CsrfToken { * * @see org.springframework.security.web.csrf.CsrfToken#getHeaderName() */ + @Override public String getHeaderName() { return this.headerName; } @@ -62,6 +63,7 @@ public final class DefaultCsrfToken implements CsrfToken { * * @see org.springframework.security.web.csrf.CsrfToken#getParameterName() */ + @Override public String getParameterName() { return this.parameterName; } @@ -71,6 +73,7 @@ public final class DefaultCsrfToken implements CsrfToken { * * @see org.springframework.security.web.csrf.CsrfToken#getToken() */ + @Override public String getToken() { return this.token; } diff --git a/web/src/main/java/org/springframework/security/web/csrf/HttpSessionCsrfTokenRepository.java b/web/src/main/java/org/springframework/security/web/csrf/HttpSessionCsrfTokenRepository.java index ffb0c144a5..53749dc7c7 100644 --- a/web/src/main/java/org/springframework/security/web/csrf/HttpSessionCsrfTokenRepository.java +++ b/web/src/main/java/org/springframework/security/web/csrf/HttpSessionCsrfTokenRepository.java @@ -52,6 +52,7 @@ public final class HttpSessionCsrfTokenRepository implements CsrfTokenRepository * springframework .security.web.csrf.CsrfToken, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ + @Override public void saveToken(CsrfToken token, HttpServletRequest request, HttpServletResponse response) { if (token == null) { HttpSession session = request.getSession(false); @@ -72,6 +73,7 @@ public final class HttpSessionCsrfTokenRepository implements CsrfTokenRepository * org.springframework.security.web.csrf.CsrfTokenRepository#loadToken(javax.servlet * .http.HttpServletRequest) */ + @Override public CsrfToken loadToken(HttpServletRequest request) { HttpSession session = request.getSession(false); if (session == null) { @@ -86,6 +88,7 @@ public final class HttpSessionCsrfTokenRepository implements CsrfTokenRepository * @see org.springframework.security.web.csrf.CsrfTokenRepository#generateToken(javax. * servlet .http.HttpServletRequest) */ + @Override public CsrfToken generateToken(HttpServletRequest request) { return new DefaultCsrfToken(this.headerName, this.parameterName, createNewToken()); } diff --git a/web/src/main/java/org/springframework/security/web/debug/DebugFilter.java b/web/src/main/java/org/springframework/security/web/debug/DebugFilter.java index 4ed1cab388..7f2fbfc872 100644 --- a/web/src/main/java/org/springframework/security/web/debug/DebugFilter.java +++ b/web/src/main/java/org/springframework/security/web/debug/DebugFilter.java @@ -57,6 +57,7 @@ public final class DebugFilter implements Filter { this.fcp = fcp; } + @Override public void doFilter(ServletRequest srvltRequest, ServletResponse srvltResponse, FilterChain filterChain) throws ServletException, IOException { @@ -141,9 +142,11 @@ public final class DebugFilter implements Filter { return null; } + @Override public void init(FilterConfig filterConfig) { } + @Override public void destroy() { } diff --git a/web/src/main/java/org/springframework/security/web/firewall/RequestWrapper.java b/web/src/main/java/org/springframework/security/web/firewall/RequestWrapper.java index 44f623ffe8..2fc56d21fc 100644 --- a/web/src/main/java/org/springframework/security/web/firewall/RequestWrapper.java +++ b/web/src/main/java/org/springframework/security/web/firewall/RequestWrapper.java @@ -125,6 +125,7 @@ final class RequestWrapper extends FirewalledRequest { return this.stripPaths ? new FirewalledRequestAwareRequestDispatcher(path) : super.getRequestDispatcher(path); } + @Override public void reset() { this.stripPaths = false; } @@ -148,11 +149,13 @@ final class RequestWrapper extends FirewalledRequest { this.path = path; } + @Override public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException { reset(); getDelegateDispatcher().forward(request, response); } + @Override public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException { getDelegateDispatcher().include(request, response); } diff --git a/web/src/main/java/org/springframework/security/web/header/writers/ClearSiteDataHeaderWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/ClearSiteDataHeaderWriter.java index 82ff0f3ecc..305436fbd1 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/ClearSiteDataHeaderWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/ClearSiteDataHeaderWriter.java @@ -115,6 +115,7 @@ public final class ClearSiteDataHeaderWriter implements HeaderWriter { private static final class SecureRequestMatcher implements RequestMatcher { + @Override public boolean matches(HttpServletRequest request) { return request.isSecure(); } diff --git a/web/src/main/java/org/springframework/security/web/header/writers/DelegatingRequestMatcherHeaderWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/DelegatingRequestMatcherHeaderWriter.java index 2f7b4d8933..688877cb32 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/DelegatingRequestMatcherHeaderWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/DelegatingRequestMatcherHeaderWriter.java @@ -56,6 +56,7 @@ public final class DelegatingRequestMatcherHeaderWriter implements HeaderWriter * org.springframework.security.web.headers.HeaderWriter#writeHeaders(javax.servlet * .http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ + @Override public void writeHeaders(HttpServletRequest request, HttpServletResponse response) { if (this.requestMatcher.matches(request)) { this.delegateHeaderWriter.writeHeaders(request, response); diff --git a/web/src/main/java/org/springframework/security/web/header/writers/HpkpHeaderWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/HpkpHeaderWriter.java index 120bc46ea5..50cf69cccc 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/HpkpHeaderWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/HpkpHeaderWriter.java @@ -177,6 +177,7 @@ public final class HpkpHeaderWriter implements HeaderWriter { * @see org.springframework.security.web.headers.HeaderWriter#writeHeaders(javax * .servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ + @Override public void writeHeaders(HttpServletRequest request, HttpServletResponse response) { if (this.requestMatcher.matches(request)) { if (!this.pins.isEmpty()) { @@ -441,6 +442,7 @@ public final class HpkpHeaderWriter implements HeaderWriter { private static final class SecureRequestMatcher implements RequestMatcher { + @Override public boolean matches(HttpServletRequest request) { return request.isSecure(); } diff --git a/web/src/main/java/org/springframework/security/web/header/writers/HstsHeaderWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/HstsHeaderWriter.java index 5c92074048..b09121536b 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/HstsHeaderWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/HstsHeaderWriter.java @@ -151,6 +151,7 @@ public final class HstsHeaderWriter implements HeaderWriter { * @see org.springframework.security.web.headers.HeaderWriter#writeHeaders(javax * .servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ + @Override public void writeHeaders(HttpServletRequest request, HttpServletResponse response) { if (this.requestMatcher.matches(request)) { if (!response.containsHeader(HSTS_HEADER_NAME)) { @@ -246,6 +247,7 @@ public final class HstsHeaderWriter implements HeaderWriter { private static final class SecureRequestMatcher implements RequestMatcher { + @Override public boolean matches(HttpServletRequest request) { return request.isSecure(); } diff --git a/web/src/main/java/org/springframework/security/web/header/writers/StaticHeadersWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/StaticHeadersWriter.java index 5aa05bcad2..1879d7576e 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/StaticHeadersWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/StaticHeadersWriter.java @@ -55,6 +55,7 @@ public class StaticHeadersWriter implements HeaderWriter { this(Collections.singletonList(new Header(headerName, headerValues))); } + @Override public void writeHeaders(HttpServletRequest request, HttpServletResponse response) { for (Header header : this.headers) { if (!response.containsHeader(header.getName())) { diff --git a/web/src/main/java/org/springframework/security/web/header/writers/XXssProtectionHeaderWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/XXssProtectionHeaderWriter.java index 832d2dac88..7bdba9e97f 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/XXssProtectionHeaderWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/XXssProtectionHeaderWriter.java @@ -48,6 +48,7 @@ public final class XXssProtectionHeaderWriter implements HeaderWriter { updateHeaderValue(); } + @Override public void writeHeaders(HttpServletRequest request, HttpServletResponse response) { if (!response.containsHeader(XSS_PROTECTION_HEADER)) { response.setHeader(XSS_PROTECTION_HEADER, this.headerValue); diff --git a/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/AbstractRequestParameterAllowFromStrategy.java b/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/AbstractRequestParameterAllowFromStrategy.java index d1468e7c27..9daf174e3c 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/AbstractRequestParameterAllowFromStrategy.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/AbstractRequestParameterAllowFromStrategy.java @@ -45,6 +45,7 @@ abstract class AbstractRequestParameterAllowFromStrategy implements AllowFromStr /** Logger for use by subclasses */ protected final Log log = LogFactory.getLog(getClass()); + @Override public String getAllowFromValue(HttpServletRequest request) { String allowFromOrigin = request.getParameter(this.allowFromParameterName); if (this.log.isDebugEnabled()) { diff --git a/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/StaticAllowFromStrategy.java b/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/StaticAllowFromStrategy.java index fdaffe60ce..9ab95c0d3b 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/StaticAllowFromStrategy.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/StaticAllowFromStrategy.java @@ -36,6 +36,7 @@ public final class StaticAllowFromStrategy implements AllowFromStrategy { this.uri = uri; } + @Override public String getAllowFromValue(HttpServletRequest request) { return this.uri.toString(); } diff --git a/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/XFrameOptionsHeaderWriter.java b/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/XFrameOptionsHeaderWriter.java index 13361add5c..25777c8b72 100644 --- a/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/XFrameOptionsHeaderWriter.java +++ b/web/src/main/java/org/springframework/security/web/header/writers/frameoptions/XFrameOptionsHeaderWriter.java @@ -83,6 +83,7 @@ public final class XFrameOptionsHeaderWriter implements HeaderWriter { * @param request the servlet request * @param response the servlet response */ + @Override public void writeHeaders(HttpServletRequest request, HttpServletResponse response) { if (XFrameOptionsMode.ALLOW_FROM.equals(this.frameOptionsMode)) { String allowFromValue = this.allowFromStrategy.getAllowFromValue(request); diff --git a/web/src/main/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilter.java b/web/src/main/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilter.java index d288ff7157..8d857382b8 100644 --- a/web/src/main/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilter.java +++ b/web/src/main/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilter.java @@ -68,6 +68,7 @@ public class JaasApiIntegrationFilter extends GenericFilterBean { * Subject obtained. *

*/ + @Override public final void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws ServletException, IOException { diff --git a/web/src/main/java/org/springframework/security/web/method/annotation/AuthenticationPrincipalArgumentResolver.java b/web/src/main/java/org/springframework/security/web/method/annotation/AuthenticationPrincipalArgumentResolver.java index 84b4b5f4a9..4fe44899fd 100644 --- a/web/src/main/java/org/springframework/security/web/method/annotation/AuthenticationPrincipalArgumentResolver.java +++ b/web/src/main/java/org/springframework/security/web/method/annotation/AuthenticationPrincipalArgumentResolver.java @@ -96,6 +96,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet * @see org.springframework.web.method.support.HandlerMethodArgumentResolver# * supportsParameter (org.springframework.core.MethodParameter) */ + @Override public boolean supportsParameter(MethodParameter parameter) { return findMethodAnnotation(AuthenticationPrincipal.class, parameter) != null; } @@ -109,6 +110,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet * org.springframework.web.context.request.NativeWebRequest, * org.springframework.web.bind.support.WebDataBinderFactory) */ + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); diff --git a/web/src/main/java/org/springframework/security/web/method/annotation/CsrfTokenArgumentResolver.java b/web/src/main/java/org/springframework/security/web/method/annotation/CsrfTokenArgumentResolver.java index e84b31fa6f..f5f22d8c22 100644 --- a/web/src/main/java/org/springframework/security/web/method/annotation/CsrfTokenArgumentResolver.java +++ b/web/src/main/java/org/springframework/security/web/method/annotation/CsrfTokenArgumentResolver.java @@ -20,6 +20,7 @@ import org.springframework.security.web.csrf.CsrfToken; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; +import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; @@ -49,6 +50,7 @@ public final class CsrfTokenArgumentResolver implements HandlerMethodArgumentRes * @see org.springframework.web.method.support.HandlerMethodArgumentResolver# * supportsParameter (org.springframework.core.MethodParameter) */ + @Override public boolean supportsParameter(MethodParameter parameter) { return CsrfToken.class.equals(parameter.getParameterType()); } @@ -62,10 +64,11 @@ public final class CsrfTokenArgumentResolver implements HandlerMethodArgumentRes * org.springframework.web.context.request.NativeWebRequest, * org.springframework.web.bind.support.WebDataBinderFactory) */ + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { CsrfToken token = (CsrfToken) webRequest.getAttribute(CsrfToken.class.getName(), - NativeWebRequest.SCOPE_REQUEST); + RequestAttributes.SCOPE_REQUEST); return token; } diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java b/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java index 7dfb04223d..29ab2383a4 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java @@ -510,8 +510,9 @@ public class DefaultSavedRequest implements SavedRequest { savedRequest.addCookie(cookie.getCookie()); } } - if (!ObjectUtils.isEmpty(this.locales)) + if (!ObjectUtils.isEmpty(this.locales)) { savedRequest.locales.addAll(this.locales); + } savedRequest.addParameters(this.parameters); this.headers.remove(HEADER_IF_MODIFIED_SINCE); diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/Enumerator.java b/web/src/main/java/org/springframework/security/web/savedrequest/Enumerator.java index 5692f643a3..45e7e69983 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/Enumerator.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/Enumerator.java @@ -115,6 +115,7 @@ public class Enumerator implements Enumeration { * @return true if and only if this enumeration object contains at least * one more element to provide, false otherwise */ + @Override public boolean hasMoreElements() { return (this.iterator.hasNext()); } @@ -125,6 +126,7 @@ public class Enumerator implements Enumeration { * @return the next element of this enumeration * @exception NoSuchElementException if no more elements exist */ + @Override public T nextElement() throws NoSuchElementException { return (this.iterator.next()); } diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java b/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java index 4704e2fe0f..21b0f82b6b 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java @@ -54,6 +54,7 @@ public class HttpSessionRequestCache implements RequestCache { /** * Stores the current request, provided the configuration properties allow it. */ + @Override public void saveRequest(HttpServletRequest request, HttpServletResponse response) { if (this.requestMatcher.matches(request)) { DefaultSavedRequest savedRequest = new DefaultSavedRequest(request, this.portResolver); @@ -71,6 +72,7 @@ public class HttpSessionRequestCache implements RequestCache { } } + @Override public SavedRequest getRequest(HttpServletRequest currentRequest, HttpServletResponse response) { HttpSession session = currentRequest.getSession(false); @@ -81,6 +83,7 @@ public class HttpSessionRequestCache implements RequestCache { return null; } + @Override public void removeRequest(HttpServletRequest currentRequest, HttpServletResponse response) { HttpSession session = currentRequest.getSession(false); @@ -90,6 +93,7 @@ public class HttpSessionRequestCache implements RequestCache { } } + @Override public HttpServletRequest getMatchingRequest(HttpServletRequest request, HttpServletResponse response) { SavedRequest saved = getRequest(request, response); diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java b/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java index e9e04d7cdf..6ddc40ce11 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java @@ -27,17 +27,21 @@ import javax.servlet.http.HttpServletResponse; */ public class NullRequestCache implements RequestCache { + @Override public SavedRequest getRequest(HttpServletRequest request, HttpServletResponse response) { return null; } + @Override public void removeRequest(HttpServletRequest request, HttpServletResponse response) { } + @Override public void saveRequest(HttpServletRequest request, HttpServletResponse response) { } + @Override public HttpServletRequest getMatchingRequest(HttpServletRequest request, HttpServletResponse response) { return null; } diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java index 7aa57e956c..f65ef98b98 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java @@ -54,6 +54,7 @@ public class RequestCacheAwareFilter extends GenericFilterBean { this.requestCache = requestCache; } + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java b/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java index 8db916cbfc..3fb5d77e1c 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java @@ -94,14 +94,17 @@ public class SavedCookie implements Serializable { public Cookie getCookie() { Cookie c = new Cookie(getName(), getValue()); - if (getComment() != null) + if (getComment() != null) { c.setComment(getComment()); + } - if (getDomain() != null) + if (getDomain() != null) { c.setDomain(getDomain()); + } - if (getPath() != null) + if (getPath() != null) { c.setPath(getPath()); + } c.setVersion(getVersion()); c.setMaxAge(getMaxAge()); diff --git a/web/src/main/java/org/springframework/security/web/server/DefaultServerRedirectStrategy.java b/web/src/main/java/org/springframework/security/web/server/DefaultServerRedirectStrategy.java index 0ce2e0bba7..36bf02a42b 100644 --- a/web/src/main/java/org/springframework/security/web/server/DefaultServerRedirectStrategy.java +++ b/web/src/main/java/org/springframework/security/web/server/DefaultServerRedirectStrategy.java @@ -42,6 +42,7 @@ public class DefaultServerRedirectStrategy implements ServerRedirectStrategy { private boolean contextRelative = true; + @Override public Mono sendRedirect(ServerWebExchange exchange, URI location) { Assert.notNull(exchange, "exchange cannot be null"); Assert.notNull(location, "location cannot be null"); diff --git a/web/src/main/java/org/springframework/security/web/server/DelegatingServerAuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/web/server/DelegatingServerAuthenticationEntryPoint.java index 460c875a28..ad85f52306 100644 --- a/web/src/main/java/org/springframework/security/web/server/DelegatingServerAuthenticationEntryPoint.java +++ b/web/src/main/java/org/springframework/security/web/server/DelegatingServerAuthenticationEntryPoint.java @@ -58,6 +58,7 @@ public class DelegatingServerAuthenticationEntryPoint implements ServerAuthentic this.entryPoints = entryPoints; } + @Override public Mono commence(ServerWebExchange exchange, AuthenticationException e) { return Flux.fromIterable(this.entryPoints).filterWhen(entry -> isMatch(exchange, entry)).next() .map(entry -> entry.getEntryPoint()).doOnNext(it -> { diff --git a/web/src/main/java/org/springframework/security/web/server/context/NoOpServerSecurityContextRepository.java b/web/src/main/java/org/springframework/security/web/server/context/NoOpServerSecurityContextRepository.java index 06d7ff0cc8..14b0db4d10 100644 --- a/web/src/main/java/org/springframework/security/web/server/context/NoOpServerSecurityContextRepository.java +++ b/web/src/main/java/org/springframework/security/web/server/context/NoOpServerSecurityContextRepository.java @@ -35,10 +35,12 @@ public final class NoOpServerSecurityContextRepository implements ServerSecurity private NoOpServerSecurityContextRepository() { } + @Override public Mono save(ServerWebExchange exchange, SecurityContext context) { return Mono.empty(); } + @Override public Mono load(ServerWebExchange exchange) { return Mono.empty(); } diff --git a/web/src/main/java/org/springframework/security/web/server/context/WebSessionServerSecurityContextRepository.java b/web/src/main/java/org/springframework/security/web/server/context/WebSessionServerSecurityContextRepository.java index f6cde328bd..813d3f595d 100644 --- a/web/src/main/java/org/springframework/security/web/server/context/WebSessionServerSecurityContextRepository.java +++ b/web/src/main/java/org/springframework/security/web/server/context/WebSessionServerSecurityContextRepository.java @@ -53,6 +53,7 @@ public class WebSessionServerSecurityContextRepository implements ServerSecurity this.springSecurityContextAttrName = springSecurityContextAttrName; } + @Override public Mono save(ServerWebExchange exchange, SecurityContext context) { return exchange.getSession().doOnNext(session -> { if (context == null) { @@ -70,6 +71,7 @@ public class WebSessionServerSecurityContextRepository implements ServerSecurity }).flatMap(session -> session.changeSessionId()); } + @Override public Mono load(ServerWebExchange exchange) { return exchange.getSession().flatMap(session -> { SecurityContext context = (SecurityContext) session.getAttribute(this.springSecurityContextAttrName); diff --git a/web/src/main/java/org/springframework/security/web/server/csrf/DefaultCsrfToken.java b/web/src/main/java/org/springframework/security/web/server/csrf/DefaultCsrfToken.java index fcacdb11dd..f7173e2fab 100644 --- a/web/src/main/java/org/springframework/security/web/server/csrf/DefaultCsrfToken.java +++ b/web/src/main/java/org/springframework/security/web/server/csrf/DefaultCsrfToken.java @@ -53,6 +53,7 @@ public final class DefaultCsrfToken implements CsrfToken { * * @see org.springframework.security.web.csrf.CsrfToken#getHeaderName() */ + @Override public String getHeaderName() { return this.headerName; } @@ -62,6 +63,7 @@ public final class DefaultCsrfToken implements CsrfToken { * * @see org.springframework.security.web.csrf.CsrfToken#getParameterName() */ + @Override public String getParameterName() { return this.parameterName; } @@ -71,23 +73,28 @@ public final class DefaultCsrfToken implements CsrfToken { * * @see org.springframework.security.web.csrf.CsrfToken#getToken() */ + @Override public String getToken() { return this.token; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || !(o instanceof CsrfToken)) + } + if (o == null || !(o instanceof CsrfToken)) { return false; + } CsrfToken that = (CsrfToken) o; - if (!getToken().equals(that.getToken())) + if (!getToken().equals(that.getToken())) { return false; - if (!getParameterName().equals(that.getParameterName())) + } + if (!getParameterName().equals(that.getParameterName())) { return false; + } return getHeaderName().equals(that.getHeaderName()); } diff --git a/web/src/main/java/org/springframework/security/web/server/csrf/WebSessionServerCsrfTokenRepository.java b/web/src/main/java/org/springframework/security/web/server/csrf/WebSessionServerCsrfTokenRepository.java index ccd785ea61..76953bcc0d 100644 --- a/web/src/main/java/org/springframework/security/web/server/csrf/WebSessionServerCsrfTokenRepository.java +++ b/web/src/main/java/org/springframework/security/web/server/csrf/WebSessionServerCsrfTokenRepository.java @@ -51,7 +51,8 @@ public class WebSessionServerCsrfTokenRepository implements ServerCsrfTokenRepos @Override public Mono generateToken(ServerWebExchange exchange) { - return Mono.just(exchange).publishOn(Schedulers.boundedElastic()).fromCallable(() -> createCsrfToken()); + Mono.just(exchange).publishOn(Schedulers.boundedElastic()); + return Mono.fromCallable(() -> createCsrfToken()); } @Override diff --git a/web/src/main/java/org/springframework/security/web/servlet/support/csrf/CsrfRequestDataValueProcessor.java b/web/src/main/java/org/springframework/security/web/servlet/support/csrf/CsrfRequestDataValueProcessor.java index d5784ebf73..9d85128d2c 100644 --- a/web/src/main/java/org/springframework/security/web/servlet/support/csrf/CsrfRequestDataValueProcessor.java +++ b/web/src/main/java/org/springframework/security/web/servlet/support/csrf/CsrfRequestDataValueProcessor.java @@ -42,6 +42,7 @@ public final class CsrfRequestDataValueProcessor implements RequestDataValueProc return action; } + @Override public String processAction(HttpServletRequest request, String action, String method) { if (method != null && this.DISABLE_CSRF_TOKEN_PATTERN.matcher(method).matches()) { request.setAttribute(this.DISABLE_CSRF_TOKEN_ATTR, Boolean.TRUE); @@ -52,10 +53,12 @@ public final class CsrfRequestDataValueProcessor implements RequestDataValueProc return action; } + @Override public String processFormFieldValue(HttpServletRequest request, String name, String value, String type) { return value; } + @Override public Map getExtraHiddenFields(HttpServletRequest request) { if (Boolean.TRUE.equals(request.getAttribute(this.DISABLE_CSRF_TOKEN_ATTR))) { request.removeAttribute(this.DISABLE_CSRF_TOKEN_ATTR); @@ -71,6 +74,7 @@ public final class CsrfRequestDataValueProcessor implements RequestDataValueProc return hiddenFields; } + @Override public String processUrl(HttpServletRequest request, String url) { return url; } diff --git a/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java b/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java index d4742dc9b1..2b6238e139 100644 --- a/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java +++ b/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java @@ -143,6 +143,7 @@ public class SecurityContextHolderAwareRequestFilter extends GenericFilterBean { this.logoutHandlers = logoutHandlers; } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { chain.doFilter(this.requestFactory.create((HttpServletRequest) req, (HttpServletResponse) res), res); diff --git a/web/src/main/java/org/springframework/security/web/session/ConcurrentSessionFilter.java b/web/src/main/java/org/springframework/security/web/session/ConcurrentSessionFilter.java index 585f55288c..2847a4e9ec 100644 --- a/web/src/main/java/org/springframework/security/web/session/ConcurrentSessionFilter.java +++ b/web/src/main/java/org/springframework/security/web/session/ConcurrentSessionFilter.java @@ -119,6 +119,7 @@ public class ConcurrentSessionFilter extends GenericFilterBean { Assert.notNull(this.sessionRegistry, "SessionRegistry required"); } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; diff --git a/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java b/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java index 3ed1eb44f7..6dc5162626 100644 --- a/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java +++ b/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java @@ -57,6 +57,7 @@ public class HttpSessionEventPublisher implements HttpSessionListener, HttpSessi * application appContext. * @param event HttpSessionEvent passed in by the container */ + @Override public void sessionCreated(HttpSessionEvent event) { HttpSessionCreatedEvent e = new HttpSessionCreatedEvent(event.getSession()); Log log = LogFactory.getLog(LOGGER_NAME); @@ -73,6 +74,7 @@ public class HttpSessionEventPublisher implements HttpSessionListener, HttpSessi * the application appContext. * @param event The HttpSessionEvent pass in by the container */ + @Override public void sessionDestroyed(HttpSessionEvent event) { HttpSessionDestroyedEvent e = new HttpSessionDestroyedEvent(event.getSession()); Log log = LogFactory.getLog(LOGGER_NAME); diff --git a/web/src/main/java/org/springframework/security/web/session/InvalidSessionAccessDeniedHandler.java b/web/src/main/java/org/springframework/security/web/session/InvalidSessionAccessDeniedHandler.java index 8a9a467a8e..dab718fdc0 100644 --- a/web/src/main/java/org/springframework/security/web/session/InvalidSessionAccessDeniedHandler.java +++ b/web/src/main/java/org/springframework/security/web/session/InvalidSessionAccessDeniedHandler.java @@ -44,6 +44,7 @@ public final class InvalidSessionAccessDeniedHandler implements AccessDeniedHand this.invalidSessionStrategy = invalidSessionStrategy; } + @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { this.invalidSessionStrategy.onInvalidSessionDetected(request, response); diff --git a/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java b/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java index ade6b59d4b..710191e2a0 100644 --- a/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java +++ b/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java @@ -73,6 +73,7 @@ public class SessionManagementFilter extends GenericFilterBean { this.sessionAuthenticationStrategy = sessionStrategy; } + @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; diff --git a/web/src/main/java/org/springframework/security/web/session/SimpleRedirectInvalidSessionStrategy.java b/web/src/main/java/org/springframework/security/web/session/SimpleRedirectInvalidSessionStrategy.java index 46ef7b6f01..d5c464e33d 100644 --- a/web/src/main/java/org/springframework/security/web/session/SimpleRedirectInvalidSessionStrategy.java +++ b/web/src/main/java/org/springframework/security/web/session/SimpleRedirectInvalidSessionStrategy.java @@ -49,6 +49,7 @@ public final class SimpleRedirectInvalidSessionStrategy implements InvalidSessio this.destinationUrl = invalidSessionUrl; } + @Override public void onInvalidSessionDetected(HttpServletRequest request, HttpServletResponse response) throws IOException { this.logger.debug("Starting new session (if required) and redirecting to '" + this.destinationUrl + "'"); if (this.createNewSession) { diff --git a/web/src/main/java/org/springframework/security/web/session/SimpleRedirectSessionInformationExpiredStrategy.java b/web/src/main/java/org/springframework/security/web/session/SimpleRedirectSessionInformationExpiredStrategy.java index e83fe3fb08..3467a66491 100644 --- a/web/src/main/java/org/springframework/security/web/session/SimpleRedirectSessionInformationExpiredStrategy.java +++ b/web/src/main/java/org/springframework/security/web/session/SimpleRedirectSessionInformationExpiredStrategy.java @@ -51,6 +51,7 @@ public final class SimpleRedirectSessionInformationExpiredStrategy implements Se this.redirectStrategy = redirectStrategy; } + @Override public void onExpiredSessionDetected(SessionInformationExpiredEvent event) throws IOException { this.logger.debug("Redirecting to '" + this.destinationUrl + "'"); this.redirectStrategy.sendRedirect(event.getRequest(), event.getResponse(), this.destinationUrl); diff --git a/web/src/main/java/org/springframework/security/web/util/OnCommittedResponseWrapper.java b/web/src/main/java/org/springframework/security/web/util/OnCommittedResponseWrapper.java index 307c1c9190..747c59fda9 100644 --- a/web/src/main/java/org/springframework/security/web/util/OnCommittedResponseWrapper.java +++ b/web/src/main/java/org/springframework/security/web/util/OnCommittedResponseWrapper.java @@ -647,10 +647,12 @@ public abstract class OnCommittedResponseWrapper extends HttpServletResponseWrap this.delegate.write(b, off, len); } + @Override public boolean isReady() { return this.delegate.isReady(); } + @Override public void setWriteListener(WriteListener writeListener) { this.delegate.setWriteListener(writeListener); } diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/AndRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/AndRequestMatcher.java index 3818db6df7..63e2db7ccf 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/AndRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/AndRequestMatcher.java @@ -58,6 +58,7 @@ public final class AndRequestMatcher implements RequestMatcher { this(Arrays.asList(requestMatchers)); } + @Override public boolean matches(HttpServletRequest request) { for (RequestMatcher matcher : this.requestMatchers) { if (this.logger.isDebugEnabled()) { diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/AnyRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/AnyRequestMatcher.java index 4ba8b5217c..c2ad877abb 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/AnyRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/AnyRequestMatcher.java @@ -27,6 +27,7 @@ public final class AnyRequestMatcher implements RequestMatcher { public static final RequestMatcher INSTANCE = new AnyRequestMatcher(); + @Override public boolean matches(HttpServletRequest request) { return true; } diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/ELRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/ELRequestMatcher.java index a41ebdf151..f3ce9d70a6 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/ELRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/ELRequestMatcher.java @@ -48,6 +48,7 @@ public class ELRequestMatcher implements RequestMatcher { this.expression = parser.parseExpression(el); } + @Override public boolean matches(HttpServletRequest request) { EvaluationContext context = createELContext(request); return this.expression.getValue(context, Boolean.class); diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java index 6ab47a19f7..08792192b5 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java @@ -60,6 +60,7 @@ public final class IpAddressMatcher implements RequestMatcher { String.format("IP address %s is too short for bitmask of length %d", ipAddress, this.nMaskBits)); } + @Override public boolean matches(HttpServletRequest request) { return matches(request.getRemoteAddr()); } diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/MediaTypeRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/MediaTypeRequestMatcher.java index 8e927dab29..a0c91a5333 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/MediaTypeRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/MediaTypeRequestMatcher.java @@ -195,6 +195,7 @@ public final class MediaTypeRequestMatcher implements RequestMatcher { this.matchingMediaTypes = matchingMediaTypes; } + @Override public boolean matches(HttpServletRequest request) { List httpRequestMediaTypes; try { diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/NegatedRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/NegatedRequestMatcher.java index 1dd2631e41..cfc58f19a2 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/NegatedRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/NegatedRequestMatcher.java @@ -46,6 +46,7 @@ public class NegatedRequestMatcher implements RequestMatcher { this.requestMatcher = requestMatcher; } + @Override public boolean matches(HttpServletRequest request) { boolean result = !this.requestMatcher.matches(request); if (this.logger.isDebugEnabled()) { diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/OrRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/OrRequestMatcher.java index 4e38d5c600..11c22c6a2b 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/OrRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/OrRequestMatcher.java @@ -58,6 +58,7 @@ public final class OrRequestMatcher implements RequestMatcher { this(Arrays.asList(requestMatchers)); } + @Override public boolean matches(HttpServletRequest request) { for (RequestMatcher matcher : this.requestMatchers) { if (this.logger.isDebugEnabled()) { diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/RegexRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/RegexRequestMatcher.java index b6158d30be..a7e23cc6f1 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/RegexRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/RegexRequestMatcher.java @@ -80,6 +80,7 @@ public final class RegexRequestMatcher implements RequestMatcher { * @param request the request to match * @return true if the pattern matches the URL, false otherwise. */ + @Override public boolean matches(HttpServletRequest request) { if (this.httpMethod != null && request.getMethod() != null && this.httpMethod != valueOf(request.getMethod())) { return false; diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/RequestHeaderRequestMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/RequestHeaderRequestMatcher.java index 235e001e1d..fcb8efbf6f 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/RequestHeaderRequestMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/RequestHeaderRequestMatcher.java @@ -80,6 +80,7 @@ public final class RequestHeaderRequestMatcher implements RequestMatcher { this.expectedHeaderValue = expectedHeaderValue; } + @Override public boolean matches(HttpServletRequest request) { String actualHeaderValue = request.getHeader(this.expectedHeaderName); if (this.expectedHeaderValue == null) { diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/RequestVariablesExtractor.java b/web/src/main/java/org/springframework/security/web/util/matcher/RequestVariablesExtractor.java index 205345110d..5c9fcb9675 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/RequestVariablesExtractor.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/RequestVariablesExtractor.java @@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; * @deprecated use {@link RequestMatcher.MatchResult} from * {@link RequestMatcher#matcher(HttpServletRequest)} */ +@Deprecated public interface RequestVariablesExtractor { /** diff --git a/web/src/test/java/org/springframework/security/MockFilterConfig.java b/web/src/test/java/org/springframework/security/MockFilterConfig.java index f2ac50619f..c9eedad606 100644 --- a/web/src/test/java/org/springframework/security/MockFilterConfig.java +++ b/web/src/test/java/org/springframework/security/MockFilterConfig.java @@ -31,10 +31,12 @@ public class MockFilterConfig implements FilterConfig { private Map map = new HashMap(); + @Override public String getFilterName() { throw new UnsupportedOperationException("mock method not implemented"); } + @Override public String getInitParameter(String arg0) { Object result = this.map.get(arg0); @@ -46,10 +48,12 @@ public class MockFilterConfig implements FilterConfig { } } + @Override public Enumeration getInitParameterNames() { throw new UnsupportedOperationException("mock method not implemented"); } + @Override public ServletContext getServletContext() { throw new UnsupportedOperationException("mock method not implemented"); } diff --git a/web/src/test/java/org/springframework/security/MockPortResolver.java b/web/src/test/java/org/springframework/security/MockPortResolver.java index 65be621c9b..65e774af01 100644 --- a/web/src/test/java/org/springframework/security/MockPortResolver.java +++ b/web/src/test/java/org/springframework/security/MockPortResolver.java @@ -36,6 +36,7 @@ public class MockPortResolver implements PortResolver { this.https = https; } + @Override public int getServerPort(ServletRequest request) { if ((request.getScheme() != null) && request.getScheme().equals("https")) { return this.https; diff --git a/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java b/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java index 3febacc27e..e2bd4810de 100644 --- a/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java +++ b/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java @@ -199,6 +199,7 @@ public class ChannelDecisionManagerImplTests { this.failIfCalled = failIfCalled; } + @Override public void decide(FilterInvocation invocation, Collection config) throws IOException { Iterator iter = config.iterator(); @@ -217,6 +218,7 @@ public class ChannelDecisionManagerImplTests { } } + @Override public boolean supports(ConfigAttribute attribute) { if (attribute.getAttribute().equals(this.configAttribute)) { return true; diff --git a/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java b/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java index ba8b7ea096..64ad763950 100644 --- a/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java @@ -161,12 +161,14 @@ public class ChannelProcessingFilterTests { this.supportAttribute = supportAttribute; } + @Override public void decide(FilterInvocation invocation, Collection config) throws IOException { if (this.commitAResponse) { invocation.getHttpResponse().sendRedirect("/redirected"); } } + @Override public boolean supports(ConfigAttribute attribute) { if (attribute.getAttribute().equals(this.supportAttribute)) { return true; @@ -192,6 +194,7 @@ public class ChannelProcessingFilterTests { this.provideIterator = provideIterator; } + @Override public Collection getAttributes(Object object) throws IllegalArgumentException { FilterInvocation fi = (FilterInvocation) object; @@ -203,6 +206,7 @@ public class ChannelProcessingFilterTests { } } + @Override public Collection getAllConfigAttributes() { if (!this.provideIterator) { return null; @@ -211,6 +215,7 @@ public class ChannelProcessingFilterTests { return this.toReturn; } + @Override public boolean supports(Class clazz) { return true; } diff --git a/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java index aa1d4986fb..d815881514 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java @@ -506,6 +506,7 @@ public class AbstractAuthenticationProcessingFilterTests { this.grantAccess = true; } + @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { if (this.grantAccess) { @@ -532,6 +533,7 @@ public class AbstractAuthenticationProcessingFilterTests { this.expectToProceed = expectToProceed; } + @Override public void doFilter(ServletRequest request, ServletResponse response) { if (!this.expectToProceed) { fail("Did not expect filter chain to proceed"); diff --git a/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java index 8fe9848e70..cf5985a017 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java @@ -114,6 +114,7 @@ public class AnonymousAuthenticationFilterTests { this.expectToProceed = expectToProceed; } + @Override public void doFilter(ServletRequest request, ServletResponse response) { if (!this.expectToProceed) { fail("Did not expect filter chain to proceed"); diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilterTests.java index 1f2a9cde5f..8a028ba49b 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilterTests.java @@ -60,10 +60,12 @@ public class AbstractPreAuthenticatedProcessingFilterTests { @Before public void createFilter() { this.filter = new AbstractPreAuthenticatedProcessingFilter() { + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest request) { return "n/a"; } + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { return "doesntmatter"; } @@ -434,10 +436,12 @@ public class AbstractPreAuthenticatedProcessingFilterTests { private boolean initFilterBeanInvoked; + @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest httpRequest) { return this.principal; } + @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest httpRequest) { return "testCredentials"; } diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java index 897e88532a..a68a9c4bcb 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java @@ -60,6 +60,7 @@ public class PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests { MockHttpServletRequest req = new MockHttpServletRequest() { private Set roles = new HashSet<>(Arrays.asList(aRoles)); + @Override public boolean isUserInRole(String arg0) { return this.roles.contains(arg0); } diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java index d3c1df80fe..83f42dab02 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java @@ -169,6 +169,7 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests { private Set roles = new HashSet<>(Arrays.asList(aRoles)); + @Override public boolean isUserInRole(String arg0) { return this.roles.contains(arg0); } diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java index d0677000c0..8f33c8d6a3 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java @@ -51,6 +51,7 @@ public class J2eePreAuthenticatedProcessingFilterTests { private Set roles = new HashSet<>(Arrays.asList(aRoles)); + @Override public boolean isUserInRole(String arg0) { return this.roles.contains(arg0); } diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java index 31f1957c9e..9165a69a34 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java @@ -36,10 +36,12 @@ public class WebXmlJ2eeDefinedRolesRetrieverTests { WebXmlMappableAttributesRetriever rolesRetriever = new WebXmlMappableAttributesRetriever(); rolesRetriever.setResourceLoader(new ResourceLoader() { + @Override public ClassLoader getClassLoader() { return Thread.currentThread().getContextClassLoader(); } + @Override public Resource getResource(String location) { return webXml; } @@ -55,10 +57,12 @@ public class WebXmlJ2eeDefinedRolesRetrieverTests { final Resource webXml = new ClassPathResource("webxml/NoRoles.web.xml"); WebXmlMappableAttributesRetriever rolesRetriever = new WebXmlMappableAttributesRetriever(); rolesRetriever.setResourceLoader(new ResourceLoader() { + @Override public ClassLoader getClassLoader() { return Thread.currentThread().getContextClassLoader(); } + @Override public Resource getResource(String location) { return webXml; } diff --git a/web/src/test/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServicesTests.java index d6c2569e85..f3a16db337 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServicesTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServicesTests.java @@ -311,6 +311,7 @@ public class AbstractRememberMeServicesTests { public void cookieTheftExceptionShouldBeRethrown() { MockRememberMeServices services = new MockRememberMeServices(this.uds) { + @Override protected UserDetails processAutoLoginCookie(String[] cookieTokens, HttpServletRequest request, HttpServletResponse response) { throw new CookieTheftException("Pretending cookie was stolen"); @@ -339,7 +340,7 @@ public class AbstractRememberMeServicesTests { // Parameter set to true services = new MockRememberMeServices(this.uds); - request.setParameter(MockRememberMeServices.DEFAULT_PARAMETER, "true"); + request.setParameter(AbstractRememberMeServices.DEFAULT_PARAMETER, "true"); services.loginSuccess(request, response, auth); assertThat(services.loginSuccessCalled).isTrue(); @@ -352,7 +353,7 @@ public class AbstractRememberMeServicesTests { // Parameter set to false services = new MockRememberMeServices(this.uds); - request.setParameter(MockRememberMeServices.DEFAULT_PARAMETER, "false"); + request.setParameter(AbstractRememberMeServices.DEFAULT_PARAMETER, "false"); services.loginSuccess(request, response, auth); assertThat(services.loginSuccessCalled).isFalse(); @@ -370,6 +371,7 @@ public class AbstractRememberMeServicesTests { request.setContextPath("contextpath"); MockRememberMeServices services = new MockRememberMeServices(this.uds) { + @Override protected String encodeCookie(String[] cookieTokens) { return cookieTokens[0]; } @@ -393,6 +395,7 @@ public class AbstractRememberMeServicesTests { MockRememberMeServices services = new MockRememberMeServices(this.uds) { + @Override protected String encodeCookie(String[] cookieTokens) { return cookieTokens[0]; } @@ -499,11 +502,13 @@ public class AbstractRememberMeServicesTests { this(new MockUserDetailsService(null, false)); } + @Override protected void onLoginSuccess(HttpServletRequest request, HttpServletResponse response, Authentication successfulAuthentication) { this.loginSuccessCalled = true; } + @Override protected UserDetails processAutoLoginCookie(String[] cookieTokens, HttpServletRequest request, HttpServletResponse response) throws RememberMeAuthenticationException { if (cookieTokens.length != 3) { @@ -532,6 +537,7 @@ public class AbstractRememberMeServicesTests { this.throwException = throwException; } + @Override public UserDetails loadUserByUsername(String username) { if (this.throwException) { throw new UsernameNotFoundException("as requested by mock"); diff --git a/web/src/test/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServicesTests.java index addb75cb0e..5f21f410e5 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServicesTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/rememberme/PersistentTokenBasedRememberMeServicesTests.java @@ -147,19 +147,23 @@ public class PersistentTokenBasedRememberMeServicesTests { this.storedToken = token; } + @Override public void createNewToken(PersistentRememberMeToken token) { this.storedToken = token; } + @Override public void updateToken(String series, String tokenValue, Date lastUsed) { this.storedToken = new PersistentRememberMeToken(this.storedToken.getUsername(), this.storedToken.getSeries(), tokenValue, lastUsed); } + @Override public PersistentRememberMeToken getTokenForSeries(String seriesId) { return this.storedToken; } + @Override public void removeUserTokens(String username) { } diff --git a/web/src/test/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilterTests.java index 8db5ac7cc6..e5892cf3c6 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/rememberme/RememberMeAuthenticationFilterTests.java @@ -122,6 +122,7 @@ public class RememberMeAuthenticationFilterTests { RememberMeAuthenticationFilter filter = new RememberMeAuthenticationFilter(am, new MockRememberMeServices(this.remembered)) { + @Override protected void onUnsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) { super.onUnsuccessfulAuthentication(request, response, failed); @@ -167,13 +168,16 @@ public class RememberMeAuthenticationFilterTests { this.authToReturn = authToReturn; } + @Override public Authentication autoLogin(HttpServletRequest request, HttpServletResponse response) { return this.authToReturn; } + @Override public void loginFail(HttpServletRequest request, HttpServletResponse response) { } + @Override public void loginSuccess(HttpServletRequest request, HttpServletResponse response, Authentication successfulAuthentication) { } diff --git a/web/src/test/java/org/springframework/security/web/authentication/rememberme/TokenBasedRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/web/authentication/rememberme/TokenBasedRememberMeServicesTests.java index f9e6ed94c4..526b9a0cbe 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/rememberme/TokenBasedRememberMeServicesTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/rememberme/TokenBasedRememberMeServicesTests.java @@ -292,7 +292,7 @@ public class TokenBasedRememberMeServicesTests { // SEC-822 this.services.setTokenValiditySeconds(500000000); MockHttpServletRequest request = new MockHttpServletRequest(); - request.addParameter(TokenBasedRememberMeServices.DEFAULT_PARAMETER, "true"); + request.addParameter(AbstractRememberMeServices.DEFAULT_PARAMETER, "true"); MockHttpServletResponse response = new MockHttpServletResponse(); this.services.loginSuccess(request, response, @@ -312,7 +312,7 @@ public class TokenBasedRememberMeServicesTests { @Test public void loginSuccessNormalWithUserDetailsBasedPrincipalSetsExpectedCookie() { MockHttpServletRequest request = new MockHttpServletRequest(); - request.addParameter(TokenBasedRememberMeServices.DEFAULT_PARAMETER, "true"); + request.addParameter(AbstractRememberMeServices.DEFAULT_PARAMETER, "true"); MockHttpServletResponse response = new MockHttpServletResponse(); this.services.loginSuccess(request, response, diff --git a/web/src/test/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilterTests.java index 3a4b5e401a..5da0d3df2f 100644 --- a/web/src/test/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilterTests.java @@ -553,6 +553,7 @@ public class SwitchUserFilterTests { private String password = "hawaii50"; + @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // jacklord, dano (active) // mcgarrett (disabled) diff --git a/web/src/test/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializerTests.java b/web/src/test/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializerTests.java index 89d2238916..dd7f1db152 100644 --- a/web/src/test/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializerTests.java +++ b/web/src/test/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializerTests.java @@ -107,6 +107,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); new AbstractSecurityWebApplicationInitializer() { + @Override protected boolean enableHttpSessionEventPublisher() { return true; } @@ -129,6 +130,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); new AbstractSecurityWebApplicationInitializer() { + @Override protected EnumSet getSecurityDispatcherTypes() { return EnumSet.of(DispatcherType.REQUEST, DispatcherType.ERROR, DispatcherType.FORWARD); } @@ -152,6 +154,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); new AbstractSecurityWebApplicationInitializer() { + @Override protected String getDispatcherWebApplicationContextSuffix() { return "dispatcher"; } @@ -191,6 +194,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(anyString(), eq(filter2))).thenReturn(registration); new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { insertFilters(context, filter1, filter2); } @@ -216,6 +220,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); assertThatCode(() -> new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { insertFilters(context, filter1); } @@ -238,6 +243,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); assertThatCode(() -> new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { insertFilters(context); } @@ -259,6 +265,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(anyString(), eq(filter))).thenReturn(registration); assertThatCode(() -> new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { insertFilters(context, filter, null); } @@ -282,6 +289,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(anyString(), eq(filter2))).thenReturn(registration); new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { appendFilters(context, filter1, filter2); } @@ -305,6 +313,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); assertThatCode(() -> new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { appendFilters(context, filter1); } @@ -327,6 +336,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).thenReturn(registration); assertThatCode(() -> new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { appendFilters(context); } @@ -348,6 +358,7 @@ public class AbstractSecurityWebApplicationInitializerTests { when(context.addFilter(anyString(), eq(filter))).thenReturn(registration); assertThatCode(() -> new AbstractSecurityWebApplicationInitializer() { + @Override protected void afterSpringSecurityFilterChain(ServletContext servletContext) { appendFilters(context, filter, null); } diff --git a/web/src/test/java/org/springframework/security/web/context/request/async/WebAsyncManagerIntegrationFilterTests.java b/web/src/test/java/org/springframework/security/web/context/request/async/WebAsyncManagerIntegrationFilterTests.java index ad49a9e4df..ca1b3b84d6 100644 --- a/web/src/test/java/org/springframework/security/web/context/request/async/WebAsyncManagerIntegrationFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/context/request/async/WebAsyncManagerIntegrationFilterTests.java @@ -130,6 +130,7 @@ public class WebAsyncManagerIntegrationFilterTests { private Thread t; + @Override public Thread newThread(Runnable r) { this.t = new Thread(r); return this.t; @@ -143,6 +144,7 @@ public class WebAsyncManagerIntegrationFilterTests { private class VerifyingCallable implements Callable { + @Override public SecurityContext call() { return SecurityContextHolder.getContext(); } diff --git a/web/src/test/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilterTests.java b/web/src/test/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilterTests.java index 67c8b2f39d..12027b2e58 100644 --- a/web/src/test/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilterTests.java +++ b/web/src/test/java/org/springframework/security/web/jaasapi/JaasApiIntegrationFilterTests.java @@ -100,9 +100,11 @@ public class JaasApiIntegrationFilterTests { }; this.testConfiguration = new Configuration() { + @Override public void refresh() { } + @Override public AppConfigurationEntry[] getAppConfigurationEntry(String name) { return new AppConfigurationEntry[] { new AppConfigurationEntry(TestLoginModule.class.getName(), LoginModuleControlFlag.REQUIRED, new HashMap<>()) }; @@ -193,6 +195,7 @@ public class JaasApiIntegrationFilterTests { private void assertJaasSubjectEquals(final Subject expectedValue) throws Exception { MockFilterChain chain = new MockFilterChain() { + @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { // See if the subject was updated diff --git a/web/src/test/java/org/springframework/security/web/savedrequest/HttpSessionRequestCacheTests.java b/web/src/test/java/org/springframework/security/web/savedrequest/HttpSessionRequestCacheTests.java index b950773887..a5f883a2ff 100644 --- a/web/src/test/java/org/springframework/security/web/savedrequest/HttpSessionRequestCacheTests.java +++ b/web/src/test/java/org/springframework/security/web/savedrequest/HttpSessionRequestCacheTests.java @@ -110,34 +110,42 @@ public class HttpSessionRequestCacheTests { this.delegate = delegate; } + @Override public String getRedirectUrl() { return this.delegate.getRedirectUrl(); } + @Override public List getCookies() { return this.delegate.getCookies(); } + @Override public String getMethod() { return this.delegate.getMethod(); } + @Override public List getHeaderValues(String name) { return this.delegate.getHeaderValues(name); } + @Override public Collection getHeaderNames() { return this.delegate.getHeaderNames(); } + @Override public List getLocales() { return this.delegate.getLocales(); } + @Override public String[] getParameterValues(String name) { return this.delegate.getParameterValues(name); } + @Override public Map getParameterMap() { return this.delegate.getParameterMap(); } diff --git a/web/src/test/java/org/springframework/security/web/session/HttpSessionEventPublisherTests.java b/web/src/test/java/org/springframework/security/web/session/HttpSessionEventPublisherTests.java index 09aff5b751..1ddf4f5cec 100644 --- a/web/src/test/java/org/springframework/security/web/session/HttpSessionEventPublisherTests.java +++ b/web/src/test/java/org/springframework/security/web/session/HttpSessionEventPublisherTests.java @@ -22,6 +22,7 @@ import org.junit.Test; import org.springframework.mock.web.MockHttpSession; import org.springframework.mock.web.MockServletContext; +import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.StaticWebApplicationContext; import static org.assertj.core.api.Assertions.assertThat; @@ -43,7 +44,7 @@ public class HttpSessionEventPublisherTests { StaticWebApplicationContext context = new StaticWebApplicationContext(); MockServletContext servletContext = new MockServletContext(); - servletContext.setAttribute(StaticWebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); + servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); context.setServletContext(servletContext); context.registerSingleton("listener", MockApplicationListener.class, null); diff --git a/web/src/test/java/org/springframework/security/web/session/MockApplicationListener.java b/web/src/test/java/org/springframework/security/web/session/MockApplicationListener.java index 115641d974..4a4c3cf8d1 100644 --- a/web/src/test/java/org/springframework/security/web/session/MockApplicationListener.java +++ b/web/src/test/java/org/springframework/security/web/session/MockApplicationListener.java @@ -40,6 +40,7 @@ public class MockApplicationListener implements ApplicationListener