From a5aa6b3d7f2f29cd45c40079b6cc1fa27fb85acc Mon Sep 17 00:00:00 2001
From: Phillip Webb
Date: Sat, 1 Aug 2020 19:33:21 -0700
Subject: [PATCH] Remove blank lines from all tests
Remove all blank lines from test code so that test methods are
visually grouped together. This generally helps to make the test
classes easer to scan, however, the "given" / "when" / "then"
blocks used by some tests are now not as easy to discern.
Issue gh-8945
---
.../acls/AclFormattingUtilsTests.java | 11 -
.../AclPermissionCacheOptimizerTests.java | 4 -
.../acls/AclPermissionEvaluatorTests.java | 6 -
...ationCollectionFilteringProviderTests.java | 3 -
.../AclEntryAfterInvocationProviderTests.java | 4 -
.../domain/AccessControlImplEntryTests.java | 7 -
.../security/acls/domain/AclImplTests.java | 37 ---
.../AclImplementationSecurityCheckTests.java | 27 --
.../acls/domain/AuditLoggerTests.java | 1 -
.../acls/domain/ObjectIdentityImplTests.java | 11 -
...ectIdentityRetrievalStrategyImplTests.java | 2 -
.../security/acls/domain/PermissionTests.java | 7 -
.../AbstractBasicLookupStrategyTests.java | 30 ---
.../BasicLookupStrategyTestsDbHelper.java | 2 -
.../security/acls/jdbc/DatabaseSeeder.java | 1 -
.../acls/jdbc/EhCacheBasedAclCacheTests.java | 34 ---
.../acls/jdbc/JdbcAclServiceTests.java | 8 -
.../acls/jdbc/JdbcMutableAclServiceTests.java | 63 -----
...cMutableAclServiceTestsWithAclClassId.java | 2 -
.../jdbc/SpringCacheBasedAclCacheTests.java | 16 --
.../acls/sid/SidRetrievalStrategyTests.java | 4 -
.../security/acls/sid/SidTests.java | 25 --
.../aspect/AnnotationSecurityAspectTests.java | 2 -
.../AbstractStatelessTicketCacheTests.java | 2 -
.../CasAuthenticationProviderTests.java | 43 ----
.../CasAuthenticationTokenTests.java | 20 --
.../EhCacheBasedTicketCacheTests.java | 7 -
.../SpringCacheBasedTicketCacheTests.java | 4 -
.../CasAuthenticationTokenMixinTests.java | 1 -
.../web/CasAuthenticationEntryPointTests.java | 12 -
.../cas/web/CasAuthenticationFilterTests.java | 15 --
.../cas/web/ServicePropertiesTests.java | 2 -
...aultServiceAuthenticationDetailsTests.java | 1 -
.../rsocket/HelloRSocketITests.java | 2 -
.../config/annotation/rsocket/JwtITests.java | 5 -
...RSocketMessageHandlerConnectionITests.java | 14 --
.../rsocket/RSocketMessageHandlerITests.java | 10 -
.../rsocket/SimpleAuthenticationITests.java | 3 -
.../security/config/DataSourcePopulator.java | 2 -
.../config/FilterChainProxyConfigTests.java | 7 -
.../MockUserServiceBeanPostProcessor.java | 1 -
.../config/SecurityNamespaceHandlerTests.java | 3 -
...SecurityConfigurerAdapterClosureTests.java | 2 -
.../SecurityConfigurerAdapterTests.java | 1 -
.../AuthenticationManagerBuilderTests.java | 17 --
.../NamespaceAuthenticationManagerTests.java | 5 -
.../NamespaceAuthenticationProviderTests.java | 2 -
.../NamespaceJdbcUserServiceTests.java | 3 -
.../NamespacePasswordEncoderTests.java | 4 -
.../PasswordEncoderConfigurerTests.java | 1 -
...thenticationConfigurationPublishTests.java | 1 -
.../AuthenticationConfigurationTests.java | 30 ---
.../EnableGlobalAuthenticationTests.java | 6 -
...AuthenticationProviderConfigurerTests.java | 1 -
.../UserDetailsManagerConfigurerTests.java | 7 -
...reBeanFactoryObjectPostProcessorTests.java | 15 --
.../annotation/issue50/ApplicationConfig.java | 2 -
.../EnableReactiveMethodSecurityTests.java | 59 -----
...lobalMethodSecurityConfigurationTests.java | 30 +--
...lMethodSecurityExpressionHandlerTests.java | 6 -
.../NamespaceGlobalMethodSecurityTests.java | 44 ----
...ctiveMethodSecurityConfigurationTests.java | 9 -
...SampleEnableGlobalMethodSecurityTests.java | 4 -
.../annotation/sec2758/Sec2758Tests.java | 5 -
...RequestMatcherRegistryAnyMatcherTests.java | 5 -
...mpleWebSecurityConfigurerAdapterTests.java | 25 --
...curityConfigurerAdapterPowermockTests.java | 7 -
.../WebSecurityConfigurerAdapterTests.java | 23 --
.../web/builders/HttpConfigurationTests.java | 3 -
.../web/builders/NamespaceHttpTests.java | 40 ---
.../web/builders/WebSecurityTests.java | 23 --
...icationPrincipalArgumentResolverTests.java | 5 -
.../configuration/EnableWebSecurityTests.java | 7 -
.../HttpSecurityConfigurationTests.java | 12 -
.../OAuth2ClientConfigurationTests.java | 17 --
.../web/configuration/Sec2515Tests.java | 1 -
...ntextConfigurationResourceServerTests.java | 3 -
...urityReactorContextConfigurationTests.java | 14 --
.../WebMvcSecurityConfigurationTests.java | 1 -
.../WebSecurityConfigurationTests.java | 31 ---
.../configuration/sec2377/Sec2377Tests.java | 2 -
...gAttributeRequestMatcherRegistryTests.java | 4 -
.../configurers/AnonymousConfigurerTests.java | 4 -
.../configurers/AuthorizeRequestsTests.java | 82 ------
.../ChannelSecurityConfigurerTests.java | 6 -
.../web/configurers/CorsConfigurerTests.java | 12 -
...onfigurerIgnoringRequestMatchersTests.java | 12 -
.../CsrfConfigurerNoWebMvcTests.java | 3 -
.../web/configurers/CsrfConfigurerTests.java | 41 ---
.../web/configurers/DefaultFiltersTests.java | 4 -
.../DefaultLoginPageConfigurerTests.java | 18 --
...ingConfigurerAccessDeniedHandlerTests.java | 6 -
.../ExceptionHandlingConfigurerTests.java | 25 --
...essionUrlAuthorizationConfigurerTests.java | 51 ----
.../configurers/FormLoginConfigurerTests.java | 38 ---
.../HeadersConfigurerEagerHeadersTests.java | 1 -
.../configurers/HeadersConfigurerTests.java | 34 ---
.../configurers/HttpBasicConfigurerTests.java | 8 -
.../HttpSecurityAntMatchersTests.java | 5 -
.../configurers/HttpSecurityLogoutTests.java | 5 -
.../HttpSecurityRequestMatchersTests.java | 44 ----
.../web/configurers/Issue55Tests.java | 3 -
.../web/configurers/JeeConfigurerTests.java | 6 -
.../LogoutConfigurerClearSiteDataTests.java | 3 -
.../configurers/LogoutConfigurerTests.java | 18 --
.../configurers/NamespaceHttpBasicTests.java | 20 --
.../NamespaceHttpFormLoginTests.java | 9 -
.../NamespaceHttpHeadersTests.java | 12 -
.../NamespaceHttpInterceptUrlTests.java | 9 -
.../configurers/NamespaceHttpJeeTests.java | 7 -
.../configurers/NamespaceHttpLogoutTests.java | 7 -
.../NamespaceHttpOpenIDLoginTests.java | 9 -
.../NamespaceHttpPortMappingsTests.java | 3 -
.../NamespaceHttpRequestCacheTests.java | 2 -
...aceHttpServerAccessDeniedHandlerTests.java | 3 -
.../configurers/NamespaceHttpX509Tests.java | 3 -
.../configurers/NamespaceRememberMeTests.java | 27 --
.../NamespaceSessionManagementTests.java | 31 ---
.../configurers/PermitAllSupportTests.java | 1 -
.../PortMapperConfigurerTests.java | 3 -
.../RememberMeConfigurerTests.java | 16 --
.../RequestCacheConfigurerTests.java | 35 ---
.../RequestMatcherConfigurerTests.java | 2 -
.../SecurityContextConfigurerTests.java | 7 -
.../ServletApiConfigurerTests.java | 18 --
...ionManagementConfigurerServlet31Tests.java | 4 -
...tConfigurerSessionCreationPolicyTests.java | 10 -
.../SessionManagementConfigurerTests.java | 31 ---
...onfigurerTransientAuthenticationTests.java | 2 -
.../UrlAuthorizationConfigurerTests.java | 23 --
.../configurers/UrlAuthorizationsTests.java | 7 -
.../web/configurers/X509ConfigurerTests.java | 4 -
.../client/OAuth2ClientConfigurerTests.java | 20 --
.../client/OAuth2LoginConfigurerTests.java | 68 -----
.../OAuth2ResourceServerConfigurerTests.java | 236 ------------------
.../openid/OpenIDLoginConfigurerTests.java | 12 -
.../saml2/Saml2LoginConfigurerTests.java | 6 -
...geSecurityMetadataSourceRegistryTests.java | 31 ---
.../reactive/EnableWebFluxSecurityTests.java | 21 --
.../ServerHttpSecurityConfigurationTests.java | 2 -
.../WebFluxSecurityConfigurationTests.java | 2 -
...SocketMessageBrokerConfigurerDocTests.java | 3 -
...WebSocketMessageBrokerConfigurerTests.java | 59 -----
...uthenticationConfigurationGh3935Tests.java | 3 -
...ationManagerBeanDefinitionParserTests.java | 3 -
...tionProviderBeanDefinitionParserTests.java | 5 -
...cUserServiceBeanDefinitionParserTests.java | 5 +-
.../PasswordEncoderParserTests.java | 2 -
.../UserServiceBeanDefinitionParserTests.java | 1 -
.../core/GrantedAuthorityDefaultsJcTests.java | 13 -
.../GrantedAuthorityDefaultsXmlTests.java | 13 -
.../UserDetailsResourceFactoryBeanTests.java | 6 -
...ityDebugBeanFactoryPostProcessorTests.java | 1 -
.../security/config/doc/Element.java | 12 -
.../config/doc/SpringSecurityXsdParser.java | 11 -
.../security/config/doc/XmlNode.java | 1 -
.../security/config/doc/XmlParser.java | 1 -
.../security/config/doc/XmlSupport.java | 1 -
.../config/doc/XsdDocumentedTests.java | 29 ---
.../config/http/AccessDeniedConfigTests.java | 5 -
.../security/config/http/CsrfConfigTests.java | 67 -----
.../DefaultFilterChainValidatorTests.java | 3 -
...tadataSourceBeanDefinitionParserTests.java | 3 -
.../FormLoginBeanDefinitionParserTests.java | 19 --
.../config/http/FormLoginConfigTests.java | 29 ---
.../security/config/http/HttpConfigTests.java | 7 -
.../config/http/HttpCorsConfigTests.java | 12 -
.../config/http/HttpHeadersConfigTests.java | 113 ---------
.../config/http/HttpInterceptUrlTests.java | 5 -
.../config/http/InterceptUrlConfigTests.java | 37 ---
.../config/http/MiscHttpConfigTests.java | 120 ---------
.../http/MultiHttpBlockConfigTests.java | 6 -
.../config/http/NamespaceHttpBasicTests.java | 5 -
...OAuth2ClientBeanDefinitionParserTests.java | 21 --
.../OAuth2LoginBeanDefinitionParserTests.java | 66 -----
...sourceServerBeanDefinitionParserTests.java | 133 ----------
.../config/http/OpenIDConfigTests.java | 24 --
.../http/PlaceHolderAndELConfigTests.java | 32 ---
.../config/http/RememberMeConfigTests.java | 53 ----
...yContextHolderAwareRequestConfigTests.java | 53 ----
...SessionManagementConfigServlet31Tests.java | 12 -
.../http/SessionManagementConfigTests.java | 85 -------
...entConfigTransientAuthenticationTests.java | 2 -
.../CustomHttpSecurityConfigurerTests.java | 11 -
...thodSecurityBeanDefinitionParserTests.java | 15 --
...ptMethodsBeanDefinitionDecoratorTests.java | 3 -
...tationDrivenBeanDefinitionParserTests.java | 4 -
.../security/config/method/Sec2196Tests.java | 2 -
...tationDrivenBeanDefinitionParserTests.java | 5 -
.../config/method/sec2136/Sec2136Tests.java | 1 -
...egistrationsBeanDefinitionParserTests.java | 10 -
.../config/test/SpringTestContext.java | 2 -
.../util/InMemoryXmlApplicationContext.java | 1 -
.../server/AuthorizeExchangeSpecTests.java | 15 --
.../config/web/server/CorsSpecTests.java | 2 -
.../server/ExceptionHandlingSpecTests.java | 16 --
.../config/web/server/FormLoginTests.java | 57 -----
.../config/web/server/HeaderSpecTests.java | 42 +---
.../web/server/HttpsRedirectSpecTests.java | 17 --
.../config/web/server/LogoutSpecTests.java | 38 ---
.../web/server/OAuth2ClientSpecTests.java | 16 --
.../config/web/server/OAuth2LoginTests.java | 66 -----
.../server/OAuth2ResourceServerSpecTests.java | 62 -----
.../config/web/server/RequestCacheTests.java | 15 --
.../web/server/ServerHttpSecurityTests.java | 64 -----
.../WebSocketMessageBrokerConfigTests.java | 80 ------
.../server/HtmlUnitWebTestClient.java | 4 -
...bTestClientHtmlUnitDriverBuilderTests.java | 6 -
.../server/WebTestClientWebConnection.java | 2 -
...SecurityInterceptorWithAopConfigTests.java | 9 -
.../security/PopulatedDatabase.java | 8 -
.../security/TargetObject.java | 2 -
.../security/access/AuthorizedEventTests.java | 1 -
.../security/access/SecurityConfigTests.java | 6 -
.../annotation/BusinessServiceImpl.java | 1 -
...xpressionProtectedBusinessServiceImpl.java | 2 -
.../annotation/Jsr250BusinessServiceImpl.java | 1 -
...r250MethodSecurityMetadataSourceTests.java | 12 -
.../access/annotation/Jsr250VoterTests.java | 4 -
...AnnotationSecurityMetadataSourceTests.java | 28 ---
...bstractSecurityExpressionHandlerTests.java | 1 -
.../SecurityExpressionRootTests.java | 2 -
...tMethodSecurityExpressionHandlerTests.java | 21 --
.../method/MethodExpressionVoterTests.java | 5 +-
.../MethodSecurityExpressionRootTests.java | 7 -
...AnnotationSecurityMetadataSourceTests.java | 9 -
.../HierarchicalRolesTestHelper.java | 5 -
.../RoleHierarchyAuthoritiesMapperTests.java | 5 -
.../RoleHierarchyImplTests.java | 26 --
.../RoleHierarchyUtilsTests.java | 7 -
.../hierarchicalroles/TestHelperTests.java | 15 --
.../AbstractSecurityInterceptorTests.java | 1 -
.../AfterInvocationProviderManagerTests.java | 12 -
.../InterceptorStatusTokenTests.java | 1 -
.../RunAsImplAuthenticationProviderTests.java | 5 -
.../intercept/RunAsManagerImplTests.java | 15 --
.../access/intercept/RunAsUserTokenTests.java | 1 -
.../MethodSecurityInterceptorTests.java | 13 -
...hodSecurityMetadataSourceAdvisorTests.java | 2 -
...AspectJMethodSecurityInterceptorTests.java | 11 -
...asedMethodSecurityMetadataSourceTests.java | 1 -
...thodInvocationPrivilegeEvaluatorTests.java | 7 -
.../AbstractAccessDecisionManagerTests.java | 9 -
.../access/vote/AffirmativeBasedTests.java | 5 -
.../access/vote/AuthenticatedVoterTests.java | 2 -
.../access/vote/ConsensusBasedTests.java | 14 --
.../security/access/vote/DenyAgainVoter.java | 3 -
.../security/access/vote/DenyVoter.java | 3 -
.../access/vote/RoleHierarchyVoterTests.java | 2 -
.../access/vote/UnanimousBasedTests.java | 16 --
.../AbstractAuthenticationTokenTests.java | 11 -
.../AuthenticationTrustResolverImplTests.java | 2 -
...aultAuthenticationEventPublisherTests.java | 6 -
...ingReactiveAuthenticationManagerTests.java | 6 -
.../authentication/ProviderManagerTests.java | 20 --
...tiveAuthenticationManagerAdapterTests.java | 6 -
...ailsServiceAuthenticationManagerTests.java | 11 -
.../TestingAuthenticationProviderTests.java | 2 -
.../TestingAuthenticationTokenTests.java | 3 -
...oryReactiveAuthenticationManagerTests.java | 21 --
...rnamePasswordAuthenticationTokenTests.java | 6 -
.../AnonymousAuthenticationProviderTests.java | 8 -
.../AnonymousAuthenticationTokenTests.java | 10 -
.../dao/DaoAuthenticationProviderTests.java | 90 -------
.../event/AuthenticationEventTests.java | 4 -
.../event/LoggerListenerTests.java | 2 -
...efaultJaasAuthenticationProviderTests.java | 21 --
.../jaas/JaasAuthenticationProviderTests.java | 27 --
.../authentication/jaas/JaasEventCheck.java | 1 -
.../authentication/jaas/Sec760Tests.java | 2 -
.../jaas/SecurityContextLoginModuleTests.java | 3 -
.../jaas/TestAuthorityGranter.java | 2 -
.../authentication/jaas/TestLoginModule.java | 7 -
.../memory/InMemoryConfigurationTests.java | 1 -
.../RemoteAuthenticationManagerImplTests.java | 5 -
.../RemoteAuthenticationProviderTests.java | 9 -
...RememberMeAuthenticationProviderTests.java | 8 -
.../RememberMeAuthenticationTokenTests.java | 10 -
...atedReactiveAuthorizationManagerTests.java | 7 -
...rityReactiveAuthorizationManagerTests.java | 17 --
...elegatingSecurityContextRunnableTests.java | 1 -
.../DelegatingApplicationListenerTests.java | 4 -
.../core/SpringSecurityCoreVersionTests.java | 16 --
.../SpringSecurityMessageSourceTests.java | 5 -
.../core/authority/AuthorityUtilsTests.java | 2 -
.../SimpleGrantedAuthorityTests.java | 4 -
.../mapping/SimpleAuthoritiesMapperTests.java | 3 -
.../ReactiveSecurityContextHolderTests.java | 9 -
.../context/SecurityContextHolderTests.java | 1 -
...tSecurityParameterNameDiscovererTests.java | 7 -
.../core/session/SessionInformationTests.java | 4 -
.../session/SessionRegistryImplTests.java | 26 --
.../core/token/DefaultTokenTests.java | 2 -
.../MapReactiveUserDetailsServiceTests.java | 2 -
.../userdetails/MockUserDetailsService.java | 1 -
.../security/core/userdetails/UserTests.java | 14 --
.../cache/EhCacheBasedUserCacheTests.java | 6 -
.../cache/SpringCacheBasedUserCacheTests.java | 3 -
.../userdetails/jdbc/JdbcDaoImplTests.java | 17 --
.../memory/UserAttributeEditorTests.java | 9 -
...nonymousAuthenticationTokenMixinTests.java | 1 -
.../BadCredentialsExceptionMixinTests.java | 1 -
...memberMeAuthenticationTokenMixinTests.java | 2 -
.../jackson2/SecurityContextMixinTests.java | 1 -
.../SecurityJackson2ModulesTests.java | 5 -
.../SimpleGrantedAuthorityMixinTests.java | 6 -
.../jackson2/UserDeserializerTests.java | 4 -
.../InMemoryUserDetailsManagerTests.java | 1 -
.../JdbcUserDetailsManagerTests.java | 32 ---
.../security/util/FieldUtilsTests.java | 2 -
.../util/MethodInvocationUtilsTests.java | 3 -
.../argon2/Argon2PasswordEncoderTests.java | 16 --
.../bcrypt/BCryptPasswordEncoderTests.java | 3 -
.../security/crypto/bcrypt/BCryptTests.java | 9 -
.../security/crypto/codec/Utf8Tests.java | 2 -
.../encrypt/AesBytesEncryptorTests.java | 5 -
...stleAesBytesEncryptorEquivalencyTests.java | 1 -
.../crypto/encrypt/CryptoAssumptions.java | 1 -
.../PasswordEncoderFactoriesTests.java | 1 -
.../DelegatingPasswordEncoderTests.java | 22 --
.../password/LdapShaPasswordEncoderTests.java | 3 -
.../password/Md4PasswordEncoderTests.java | 1 -
.../MessageDigestPasswordEncoderTests.java | 1 -
.../password/Pbkdf2PasswordEncoderTests.java | 5 -
.../scrypt/SCryptPasswordEncoderTests.java | 5 -
...curityEvaluationContextExtensionTests.java | 4 -
.../security/ldap/LdapUtilsTests.java | 5 -
...ringSecurityAuthenticationSourceTests.java | 4 -
.../ldap/SpringSecurityLdapTemplateTests.java | 3 -
.../LdapAuthenticationProviderTests.java | 16 --
...swordComparisonAuthenticatorMockTests.java | 6 -
...ectoryLdapAuthenticationProviderTests.java | 38 ---
...PasswordPolicyAwareContextSourceTests.java | 4 -
.../PasswordPolicyControlFactoryTests.java | 2 -
.../PasswordPolicyResponseControlTests.java | 10 -
.../ldap/userdetails/InetOrgPersonTests.java | 8 -
.../userdetails/LdapUserDetailsImplTests.java | 1 -
.../LdapUserDetailsMapperTests.java | 14 --
.../LdapUserDetailsServiceTests.java | 4 -
...sServiceLdapAuthoritiesPopulatorTests.java | 2 -
...MessageSecurityExpressionHandlerTests.java | 5 -
...ageSecurityMetadataSourceFactoryTests.java | 7 -
...MessageExpressionConfigAttributeTests.java | 3 -
.../MessageExpressionVoterTests.java | 4 -
.../ChannelSecurityInterceptorTests.java | 12 -
...ultMessageSecurityMetadataSourceTests.java | 3 -
...ecurityContextChannelInterceptorTests.java | 36 ---
.../handler/invocation/ResolvableMethod.java | 7 -
.../util/matcher/AndMessageMatcherTests.java | 5 -
.../util/matcher/OrMessageMatcherTests.java | 5 -
.../SimpDestinationMessageMatcherTests.java | 18 --
.../matcher/SimpMessageTypeMatcherTests.java | 3 -
.../web/csrf/CsrfChannelInterceptorTests.java | 13 -
.../CsrfTokenHandshakeInterceptorTests.java | 4 -
...deOAuth2AuthorizedClientProviderTests.java | 1 -
...veOAuth2AuthorizedClientProviderTests.java | 1 -
...iceOAuth2AuthorizedClientManagerTests.java | 37 ---
...iveOAuth2AuthorizedClientManagerTests.java | 84 -------
...lsOAuth2AuthorizedClientProviderTests.java | 12 -
...veOAuth2AuthorizedClientProviderTests.java | 12 -
...ngOAuth2AuthorizedClientProviderTests.java | 3 -
...veOAuth2AuthorizedClientProviderTests.java | 4 -
...oryOAuth2AuthorizedClientServiceTests.java | 10 -
...iveOAuth2AuthorizedClientServiceTests.java | 3 -
...dbcOAuth2AuthorizedClientServiceTests.java | 33 ---
.../client/OAuth2AuthorizeRequestTests.java | 3 -
...2AuthorizedClientProviderBuilderTests.java | 20 --
.../client/OAuth2AuthorizedClientTests.java | 1 -
...rdOAuth2AuthorizedClientProviderTests.java | 13 -
...veOAuth2AuthorizedClientProviderTests.java | 13 -
...2AuthorizedClientProviderBuilderTests.java | 35 ---
...enOAuth2AuthorizedClientProviderTests.java | 14 --
...veOAuth2AuthorizedClientProviderTests.java | 14 --
.../OAuth2AuthenticationTokenTests.java | 1 -
...zationCodeAuthenticationProviderTests.java | 8 -
...orizationCodeAuthenticationTokenTests.java | 2 -
...odeReactiveAuthenticationManagerTests.java | 5 -
...Auth2LoginAuthenticationProviderTests.java | 18 --
.../OAuth2LoginAuthenticationTokenTests.java | 2 -
...ginReactiveAuthenticationManagerTests.java | 8 -
...orizationCodeTokenResponseClientTests.java | 22 --
...ntCredentialsTokenResponseClientTests.java | 33 ---
...faultPasswordTokenResponseClientTests.java | 21 --
...tRefreshTokenTokenResponseClientTests.java | 22 --
...orizationCodeTokenResponseClientTests.java | 43 ----
...nCodeGrantRequestEntityConverterTests.java | 12 -
...th2AuthorizationCodeGrantRequestTests.java | 1 -
...tialsGrantRequestEntityConverterTests.java | 4 -
...th2ClientCredentialsGrantRequestTests.java | 2 -
...swordGrantRequestEntityConverterTests.java | 4 -
...TokenGrantRequestEntityConverterTests.java | 4 -
...orizationCodeTokenResponseClientTests.java | 28 ---
...ntCredentialsTokenResponseClientTests.java | 14 --
...ctivePasswordTokenResponseClientTests.java | 21 --
...eRefreshTokenTokenResponseClientTests.java | 22 --
.../OAuth2ErrorResponseErrorHandlerTests.java | 4 -
...uth2AuthenticationExceptionMixinTests.java | 6 -
.../OAuth2AuthenticationTokenMixinTests.java | 2 -
...zationCodeAuthenticationProviderTests.java | 27 --
...odeReactiveAuthenticationManagerTests.java | 32 ---
.../OidcIdTokenDecoderFactoryTests.java | 12 -
.../OidcIdTokenValidatorTests.java | 2 -
...eactiveOidcIdTokenDecoderFactoryTests.java | 12 -
.../OidcReactiveOAuth2UserServiceTests.java | 15 --
.../oidc/userinfo/OidcUserRequestTests.java | 1 -
.../userinfo/OidcUserRequestUtilsTests.java | 3 -
.../oidc/userinfo/OidcUserServiceTests.java | 60 -----
...entInitiatedLogoutSuccessHandlerTests.java | 15 --
...tiatedServerLogoutSuccessHandlerTests.java | 20 --
.../registration/ClientRegistrationTests.java | 11 -
.../ClientRegistrationsTests.java | 33 ---
...CustomUserTypesOAuth2UserServiceTests.java | 18 --
.../DefaultOAuth2UserServiceTests.java | 42 ----
...DefaultReactiveOAuth2UserServiceTests.java | 19 --
.../DelegatingOAuth2UserServiceTests.java | 4 -
...OAuth2UserRequestEntityConverterTests.java | 7 -
.../userinfo/OAuth2UserRequestTests.java | 1 -
...uth2AuthorizationRequestResolverTests.java | 27 --
...ultOAuth2AuthorizedClientManagerTests.java | 43 ----
...iveOAuth2AuthorizedClientManagerTests.java | 76 ------
...h2AuthorizationRequestRepositoryTests.java | 36 ---
...OAuth2AuthorizedClientRepositoryTests.java | 9 -
...uth2AuthorizationCodeGrantFilterTests.java | 36 ---
...thorizationRequestRedirectFilterTests.java | 43 ----
.../OAuth2LoginAuthenticationFilterTests.java | 53 ----
...AuthorizedClientArgumentResolverTests.java | 14 --
...zedClientExchangeFilterFunctionITests.java | 28 ---
...izedClientExchangeFilterFunctionTests.java | 116 ---------
...zedClientExchangeFilterFunctionITests.java | 18 --
...izedClientExchangeFilterFunctionTests.java | 95 -------
...uth2AuthorizationRequestResolverTests.java | 21 --
...2AuthorizationCodeGrantWebFilterTests.java | 31 ---
...rizationRequestRedirectWebFilterTests.java | 2 -
...CodeAuthenticationTokenConverterTests.java | 6 -
...OAuth2AuthorizedClientRepositoryTests.java | 8 -
...erAuthorizationRequestRepositoryTests.java | 28 ---
...OAuth2AuthorizedClientRepositoryTests.java | 9 -
...uth2LoginAuthenticationWebFilterTests.java | 1 -
.../oauth2/core/ClaimAccessorTests.java | 10 -
...aultOAuth2AuthenticatedPrincipalTests.java | 2 -
.../DelegatingOAuth2TokenValidatorTests.java | 19 --
.../oauth2/core/OAuth2AccessTokenTests.java | 2 -
.../oauth2/core/OAuth2ErrorTests.java | 1 -
.../core/OAuth2TokenValidatorResultTests.java | 2 -
.../converter/ClaimTypeConverterTests.java | 9 -
...uth2AccessTokenResponseConverterTests.java | 8 -
...2AccessTokenResponseMapConverterTests.java | 4 -
.../OAuth2AccessTokenResponseTests.java | 10 -
.../OAuth2AuthorizationRequestTests.java | 14 --
...okenResponseHttpMessageConverterTests.java | 19 --
.../OAuth2ErrorHttpMessageConverterTests.java | 12 -
.../DefaultAddressStandardClaimTests.java | 3 -
.../core/oidc/OidcIdTokenBuilderTests.java | 18 --
.../oauth2/core/oidc/OidcIdTokenTests.java | 2 -
.../core/oidc/OidcUserInfoBuilderTests.java | 10 -
.../oauth2/core/oidc/OidcUserInfoTests.java | 4 -
.../core/oidc/user/DefaultOidcUserTests.java | 6 -
.../oidc/user/OidcUserAuthorityTests.java | 3 -
.../core/user/DefaultOAuth2UserTests.java | 1 -
.../core/user/OAuth2UserAuthorityTests.java | 1 -
.../function/OAuth2BodyExtractorsTests.java | 13 -
.../security/oauth2/jose/TestKeys.java | 3 -
.../security/oauth2/jwt/JwtBuilderTests.java | 21 --
.../security/oauth2/jwt/JwtDecodersTests.java | 2 -
.../oauth2/jwt/JwtIssuerValidatorTests.java | 5 -
.../security/oauth2/jwt/JwtTests.java | 3 -
.../jwt/JwtTimestampValidatorTests.java | 28 ---
.../jwt/MappedJwtClaimSetConverterTests.java | 28 ---
.../jwt/NimbusJwtDecoderJwkSupportTests.java | 11 -
.../oauth2/jwt/NimbusJwtDecoderTests.java | 14 --
.../jwt/NimbusReactiveJwtDecoderTests.java | 19 --
.../oauth2/jwt/ReactiveJwtDecodersTests.java | 12 -
.../jwt/ReactiveRemoteJWKSourceTests.java | 11 -
.../TestOAuth2AuthenticatedPrincipals.java | 1 -
.../BearerTokenAuthenticationTokenTests.java | 1 -
.../resource/BearerTokenErrorTests.java | 2 -
.../JwtAuthenticationConverterTests.java | 8 -
.../JwtAuthenticationProviderTests.java | 13 -
.../JwtAuthenticationTokenTests.java | 8 -
...arerTokenAuthenticationConverterTests.java | 6 -
.../JwtGrantedAuthoritiesConverterTests.java | 32 ---
...uerAuthenticationManagerResolverTests.java | 8 -
...iveAuthenticationManagerResolverTests.java | 8 -
...JwtReactiveAuthenticationManagerTests.java | 8 -
...paqueTokenAuthenticationProviderTests.java | 8 -
...kenReactiveAuthenticationManagerTests.java | 8 -
...wtAuthenticationConverterAdapterTests.java | 17 --
...activeJwtAuthenticationConverterTests.java | 6 -
...antedAuthoritiesConverterAdapterTests.java | 3 -
.../TestBearerTokenAuthentications.java | 1 -
.../NimbusOpaqueTokenIntrospectorTests.java | 16 --
...sReactiveOpaqueTokenIntrospectorTests.java | 11 -
...rospectionAuthenticatedPrincipalTests.java | 5 -
...rerTokenAuthenticationEntryPointTests.java | 27 --
.../BearerTokenAuthenticationFilterTests.java | 25 --
.../web/DefaultBearerTokenResolverTests.java | 17 --
.../web/HeaderBearerTokenResolverTests.java | 2 -
.../BearerTokenAccessDeniedHandlerTests.java | 12 -
...erTokenServerAccessDeniedHandlerTests.java | 9 -
...rverBearerExchangeFilterFunctionTests.java | 8 -
...vletBearerExchangeFilterFunctionTests.java | 8 -
...enServerAuthenticationEntryPointTests.java | 10 -
...arerTokenAuthenticationConverterTests.java | 16 --
.../openid/OpenID4JavaConsumerTests.java | 27 --
.../OpenIDAuthenticationFilterTests.java | 4 -
.../OpenIDAuthenticationProviderTests.java | 21 --
.../remoting/dns/JndiDnsResolverTests.java | 7 -
...SimpleHttpInvokerRequestExecutorTests.java | 6 -
...ntextPropagatingRemoteInvocationTests.java | 11 -
.../AnonymousPayloadInterceptorTests.java | 6 -
...AuthenticationPayloadInterceptorTests.java | 9 -
.../AuthorizationPayloadInterceptorTests.java | 10 -
...cherReactiveAuthorizationManagerTests.java | 4 -
.../core/PayloadInterceptorRSocketTests.java | 59 -----
...PayloadSocketAcceptorInterceptorTests.java | 11 -
.../core/PayloadSocketAcceptorTests.java | 15 --
.../BasicAuthenticationDecoderTests.java | 2 -
.../saml2/core/TestSaml2X509Credentials.java | 1 -
.../credentials/TestSaml2X509Credentials.java | 1 -
...faultSaml2AuthenticatedPrincipalTests.java | 4 -
.../OpenSamlAuthenticationProviderTests.java | 18 --
...SamlAuthenticationRequestFactoryTests.java | 3 -
.../authentication/TestOpenSamlObjects.java | 22 --
.../OpenSamlMetadataResolverTests.java | 10 -
.../RelyingPartyRegistrationTests.java | 1 -
.../TestRelyingPartyRegistrations.java | 3 -
.../Saml2WebSsoAuthenticationFilterTests.java | 3 -
...ebSsoAuthenticationRequestFilterTests.java | 4 -
...enticationRequestContextResolverTests.java | 3 -
.../service/web/Saml2MetadataFilterTests.java | 27 --
.../security/taglibs/TldTests.java | 5 -
.../authz/AbstractAuthorizeTagTests.java | 5 -
.../authz/AccessControlListTagTests.java | 16 --
.../taglibs/authz/AuthenticationTagTests.java | 6 -
.../taglibs/authz/AuthorizeTagTests.java | 4 -
.../taglibs/csrf/AbstractCsrfTagTests.java | 11 -
.../taglibs/csrf/CsrfInputTagTests.java | 4 -
.../taglibs/csrf/CsrfMetaTagsTagTests.java | 4 -
.../TestSecurityContextHolderTests.java | 5 -
.../SecurityTestExecutionListenerTests.java | 1 -
...hMockCustomUserSecurityContextFactory.java | 1 -
.../context/showcase/WithMockUserTests.java | 1 -
.../showcase/WithUserDetailsTests.java | 1 -
...ctorContextTestExecutionListenerTests.java | 25 --
.../support/WithAnonymousUserTests.java | 3 -
...thMockUserSecurityContextFactoryTests.java | 6 -
.../context/support/WithMockUserTests.java | 4 -
...ityContextTestExcecutionListenerTests.java | 11 -
...rityContextTestExecutionListenerTests.java | 12 -
...serDetailsSecurityContextFactoryTests.java | 5 -
.../context/support/WithUserDetailsTests.java | 4 -
.../AbstractMockServerConfigurersTests.java | 2 -
...yMockServerConfigurerOpaqueTokenTests.java | 8 -
...tyMockServerConfigurersAnnotatedTests.java | 12 -
...kServerConfigurersClassAnnotatedTests.java | 3 -
...SecurityMockServerConfigurersJwtTests.java | 6 -
...ockServerConfigurersOAuth2ClientTests.java | 11 -
...MockServerConfigurersOAuth2LoginTests.java | 12 -
...tyMockServerConfigurersOidcLoginTests.java | 13 -
.../SecurityMockServerConfigurersTests.java | 14 --
.../web/servlet/request/Sec2935Tests.java | 8 -
...yMockMvcRequestBuildersFormLoginTests.java | 7 -
...MockMvcRequestBuildersFormLogoutTests.java | 7 -
...uestPostProcessorsAuthenticationTests.java | 1 -
...RequestPostProcessorsCertificateTests.java | 4 -
...MockMvcRequestPostProcessorsCsrfTests.java | 2 -
...ckMvcRequestPostProcessorsDigestTests.java | 6 -
...yMockMvcRequestPostProcessorsJwtTests.java | 6 -
...equestPostProcessorsOAuth2ClientTests.java | 5 -
...RequestPostProcessorsOAuth2LoginTests.java | 7 -
...vcRequestPostProcessorsOidcLoginTests.java | 6 -
...RequestPostProcessorsOpaqueTokenTests.java | 5 -
...estPostProcessorsSecurityContextTests.java | 1 -
...ostProcessorsTestSecurityContextTests.java | 3 -
...RequestPostProcessorsUserDetailsTests.java | 1 -
...MockMvcRequestPostProcessorsUserTests.java | 8 -
.../web/servlet/response/Gh3409Tests.java | 3 -
.../setup/SecurityMockMvcConfigurerTests.java | 7 -
.../SecurityMockMvcConfigurersTests.java | 2 -
.../CustomConfigAuthenticationTests.java | 1 -
.../test/web/support/WebTestUtilsTests.java | 6 -
.../security/MockFilterConfig.java | 1 -
.../web/DefaultRedirectStrategyTests.java | 5 -
.../security/web/FilterChainProxyTests.java | 11 -
.../security/web/FilterInvocationTests.java | 6 -
.../security/web/PortMapperImplTests.java | 8 -
.../security/web/PortResolverImplTests.java | 5 -
...tWebInvocationPrivilegeEvaluatorTests.java | 2 -
.../DelegatingAccessDeniedHandlerTests.java | 4 -
.../ExceptionTranslationFilterTests.java | 29 ---
...herDelegatingAccessDeniedHandlerTests.java | 6 -
.../ChannelDecisionManagerImplTests.java | 19 --
.../channel/ChannelProcessingFilterTests.java | 27 --
.../InsecureChannelProcessorTests.java | 13 -
.../channel/RetryWithHttpEntryPointTests.java | 15 --
.../RetryWithHttpsEntryPointTests.java | 15 --
.../channel/SecureChannelProcessorTests.java | 13 -
...leEvaluationContextPostProcessorTests.java | 2 -
...aultWebSecurityExpressionHandlerTests.java | 3 -
.../DelegatingEvaluationContextTests.java | 13 -
.../expression/WebExpressionVoterTests.java | 3 -
.../WebSecurityExpressionRootTests.java | 4 -
...InvocationSecurityMetadataSourceTests.java | 18 --
.../FilterSecurityInterceptorTests.java | 19 --
.../web/access/intercept/RequestKeyTests.java | 4 -
...ctAuthenticationProcessingFilterTests.java | 61 -----
.../AnonymousAuthenticationFilterTests.java | 5 -
.../AuthenticationFilterTests.java | 29 ---
...DefaultLoginPageGeneratingFilterTests.java | 21 --
...gAuthenticationEntryPointContextTests.java | 2 -
...legatingAuthenticationEntryPointTests.java | 6 -
...tingAuthenticationFailureHandlerTests.java | 15 --
...pingAuthenticationFailureHandlerTests.java | 2 -
...rwardAuthenticaionSuccessHandlerTests.java | 3 -
...wardAuthenticationFailureHandlerTests.java | 3 -
.../HttpStatusEntryPointTests.java | 1 -
...LoginUrlAuthenticationEntryPointTests.java | 24 --
...wareAuthenticationSuccessHandlerTests.java | 4 -
...eUrlAuthenticationFailureHandlerTests.java | 6 -
...eUrlAuthenticationSuccessHandlerTests.java | 11 -
...namePasswordAuthenticationFilterTests.java | 15 --
.../logout/CompositeLogoutHandlerTests.java | 11 -
.../DelegatingLogoutSuccessHandlerTests.java | 8 -
.../ForwardLogoutSuccessHandlerTests.java | 7 -
.../HeaderWriterLogoutHandlerTests.java | 2 -
...tusReturningLogoutSuccessHandlerTests.java | 8 -
.../logout/LogoutHandlerTests.java | 4 -
...cessEventPublishingLogoutHandlerTests.java | 4 -
.../SecurityContextLogoutHandlerTests.java | 3 -
...PreAuthenticatedProcessingFilterTests.java | 42 ----
...henticatedAuthenticationProviderTests.java | 2 -
...AuthenticatedAuthenticationTokenTests.java | 8 +-
...tedAuthoritiesUserDetailsServiceTests.java | 2 -
...estAttributeAuthenticationFilterTests.java | 6 -
...equestHeaderAuthenticationFilterTests.java | 6 -
...edWebAuthenticationDetailsSourceTests.java | 3 -
...PreAuthenticatedProcessingFilterTests.java | 1 -
.../WebXmlJ2eeDefinedRolesRetrieverTests.java | 2 -
...PreAuthenticatedProcessingFilterTests.java | 3 -
.../preauth/x509/X509TestUtils.java | 3 -
.../AbstractRememberMeServicesTests.java | 70 ------
.../JdbcTokenRepositoryImplTests.java | 15 --
.../NullRememberMeServicesTests.java | 1 -
...tentTokenBasedRememberMeServicesTests.java | 5 -
.../RememberMeAuthenticationFilterTests.java | 11 -
.../TokenBasedRememberMeServicesTests.java | 37 ---
...iteSessionAuthenticationStrategyTests.java | 4 -
...ionControlAuthenticationStrategyTests.java | 12 -
...terSessionAuthenticationStrategyTests.java | 1 -
.../switchuser/SwitchUserFilterTests.java | 67 -----
...efaultLogoutPageGeneratingFilterTests.java | 3 -
.../BasicAuthenticationConverterTests.java | 5 -
.../BasicAuthenticationEntryPointTests.java | 8 -
.../www/BasicAuthenticationFilterTests.java | 60 -----
.../www/DigestAuthUtilsTests.java | 14 --
.../DigestAuthenticationEntryPointTests.java | 20 --
.../www/DigestAuthenticationFilterTests.java | 73 ------
.../ConcurrentSessionFilterTests.java | 46 ----
...ecurityWebApplicationInitializerTests.java | 70 ------
...SessionSecurityContextRepositoryTests.java | 25 --
...xtOnUpdateOrErrorResponseWrapperTests.java | 1 -
...SecurityContextPersistenceFilterTests.java | 7 -
...extCallableProcessingInterceptorTests.java | 4 -
...WebAsyncManagerIntegrationFilterTests.java | 5 -
.../csrf/CookieCsrfTokenRepositoryTests.java | 36 ---
.../csrf/CsrfAuthenticationStrategyTests.java | 5 -
.../security/web/csrf/CsrfFilterTests.java | 51 ----
.../web/csrf/CsrfLogoutHandlerTests.java | 1 -
.../HttpSessionCsrfTokenRepositoryTests.java | 15 --
.../csrf/LazyCsrfTokenRepositoryTests.java | 6 -
.../security/web/debug/DebugFilterTests.java | 8 -
.../firewall/DefaultHttpFirewallTests.java | 4 -
.../web/firewall/FirewalledResponseTests.java | 17 --
.../web/firewall/RequestWrapperTests.java | 4 -
.../web/firewall/StrictHttpFirewallTests.java | 52 ----
.../web/header/HeaderWriterFilterTests.java | 17 --
.../CacheControlHeadersWriterTests.java | 9 -
.../ClearSiteDataHeaderWriterTests.java | 4 -
.../writers/CompositeHeaderWriterTests.java | 2 -
...ontentSecurityPolicyHeaderWriterTests.java | 8 -
...gatingRequestMatcherHeaderWriterTests.java | 4 -
.../FeaturePolicyHeaderWriterTests.java | 1 -
.../header/writers/HpkpHeaderWriterTests.java | 25 --
.../header/writers/HstsHeaderWriterTests.java | 18 --
.../ReferrerPolicyHeaderWriterTests.java | 3 -
.../writers/StaticHeaderWriterTests.java | 5 -
.../XContentTypeOptionsHeaderWriterTests.java | 1 -
.../XXssProtectionHeaderWriterTests.java | 8 -
...equestParameterAllowFromStrategyTests.java | 5 -
.../FrameOptionsHeaderWriterTests.java | 10 -
.../RegExpAllowFromStrategyTests.java | 3 -
.../WhiteListedAllowFromStrategyTests.java | 5 -
.../XFrameOptionsHeaderWriterTests.java | 2 -
.../JaasApiIntegrationFilterTests.java | 5 -
.../web/jackson2/CookieMixinTests.java | 1 -
.../jackson2/DefaultCsrfTokenMixinTests.java | 1 -
.../DefaultSavedRequestMixinTests.java | 3 -
...nticatedAuthenticationTokenMixinTests.java | 1 -
.../web/jackson2/SavedCookieMixinTests.java | 2 -
.../WebAuthenticationDetailsMixinTests.java | 3 -
.../security/web/method/ResolvableMethod.java | 7 -
.../CsrfTokenArgumentResolverTests.java | 1 -
...tSecurityContextArgumentResolverTests.java | 1 -
...icationPrincipalArgumentResolverTests.java | 20 --
.../CsrfRequestDataValueProcessorTests.java | 1 -
.../savedrequest/CookieRequestCacheTests.java | 16 --
.../HttpSessionRequestCacheTests.java | 10 -
.../RequestCacheAwareFilterTests.java | 7 -
.../SavedRequestAwareWrapperTests.java | 5 -
.../savedrequest/SimpleSavedRequestTests.java | 7 -
.../DefaultServerRedirectStrategyTests.java | 11 -
...ngServerAuthenticationEntryPointTests.java | 4 -
.../web/server/WebFilterChainProxyTests.java | 2 -
.../web/server/WebFilterExchangeTests.java | 2 -
...AnonymousAuthenticationWebFilterTests.java | 2 -
...onverterServerWebExchangeMatcherTests.java | 5 -
.../AuthenticationWebFilterTests.java | 41 ---
...rverAuthenticationSuccessHandlerTests.java | 6 -
...icServerAuthenticationEntryPointTests.java | 5 -
...thenticatedAuthenticationManagerTests.java | 6 -
...ctServerAuthenticationEntryPointTests.java | 5 -
...rverAuthenticationFailureHandlerTests.java | 5 -
...rverAuthenticationSuccessHandlerTests.java | 5 -
...ticationEntryPointFailureHandlerTests.java | 1 -
...FormLoginAuthenticationConverterTests.java | 5 -
...HttpBasicAuthenticationConverterTests.java | 9 -
...erverX509AuthenticationConverterTests.java | 4 -
.../SwitchUserWebFilterTests.java | 69 -----
.../DelegatingServerLogoutHandlerTests.java | 4 -
.../HeaderWriterServerLogoutHandlerTests.java | 2 -
...urningServerLogoutSuccessHandlerTests.java | 3 -
.../logout/LogoutWebFilterTests.java | 2 -
.../AuthorizationWebFilterTests.java | 12 -
...tingReactiveAuthorizationManagerTests.java | 4 -
.../ExceptionTranslationWebFilterTests.java | 13 -
...pStatusServerAccessDeniedHandlerTests.java | 5 -
...egatingServerAccessDeniedHandlerTests.java | 9 -
...pServerSecurityContextRepositoryTests.java | 2 -
.../context/ReactorContextWebFilterTests.java | 6 -
...ontextServerWebExchangeWebFilterTests.java | 2 -
...nServerSecurityContextRepositoryTests.java | 8 -
.../CookieServerCsrfTokenRepositoryTests.java | 15 --
.../csrf/CsrfServerLogoutHandlerTests.java | 1 -
.../web/server/csrf/CsrfWebFilterTests.java | 35 ---
...SessionServerCsrfTokenRepositoryTests.java | 9 -
...heControlServerHttpHeadersWriterTests.java | 10 -
...rSiteDataServerHttpHeadersWriterTests.java | 6 -
...CompositeServerHttpHeadersWriterTests.java | 11 -
...ityPolicyServerHttpHeadersWriterTests.java | 5 -
...urePolicyServerHttpHeadersWriterTests.java | 3 -
.../HttpHeaderWriterWebFilterTests.java | 6 -
...rerPolicyServerHttpHeadersWriterTests.java | 3 -
.../StaticServerHttpHeadersWriterTests.java | 8 -
...tSecurityServerHttpHeadersWriterTests.java | 10 -
...peOptionsServerHttpHeadersWriterTests.java | 3 -
...meOptionsServerHttpHeadersWriterTests.java | 7 -
...rotectionServerHttpHeadersWriterTests.java | 7 -
.../DefaultCsrfServerTokenMixinTests.java | 1 -
.../CookieServerRequestCacheTests.java | 14 --
.../ServerRequestCacheWebFilterTests.java | 4 -
.../WebSessionServerRequestCacheTests.java | 13 -
.../HttpsRedirectWebFilterTests.java | 5 -
.../ui/LoginPageGeneratingWebFilterTests.java | 6 -
.../AndServerWebExchangeMatcherTests.java | 12 -
...ediaTypeServerWebExchangeMatcherTests.java | 5 -
.../NegatedServerWebExchangeMatcherTests.java | 6 -
.../OrServerWebExchangeMatcherTests.java | 9 -
...hMatcherServerWebExchangeMatcherTests.java | 6 -
.../ServerWebExchangeMatchersTests.java | 2 -
.../CsrfRequestDataValueProcessorTests.java | 3 -
.../util/matcher/MvcRequestMatcherTests.java | 17 --
...yContextHolderAwareRequestFilterTests.java | 30 ---
...ContextHolderAwareRequestWrapperTests.java | 20 --
...ultSessionAuthenticationStrategyTests.java | 24 --
.../HttpSessionEventPublisherTests.java | 23 --
.../session/SessionManagementFilterTests.java | 15 --
.../util/OnCommittedResponseWrapperTests.java | 226 -----------------
.../web/util/ThrowableAnalyzerTests.java | 30 ---
.../util/matcher/AndRequestMatcherTests.java | 5 -
.../matcher/AntPathRequestMatcherTests.java | 10 -
.../util/matcher/ELRequestMatcherTests.java | 9 -
.../util/matcher/IpAddressMatcherTests.java | 3 -
...diaTypeRequestMatcherRequestHCNSTests.java | 8 -
.../matcher/MediaTypeRequestMatcherTests.java | 27 --
.../matcher/NegatedRequestMatcherTests.java | 2 -
.../util/matcher/OrRequestMatcherTests.java | 5 -
.../matcher/RegexRequestMatcherTests.java | 7 -
787 files changed, 9 insertions(+), 10241 deletions(-)
diff --git a/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
index 268beeef5a..6f09d71890 100644
--- a/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
@@ -39,21 +39,18 @@ public class AclFormattingUtilsTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
AclFormattingUtils.demergePatterns("SOME STRING", null);
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
AclFormattingUtils.demergePatterns("SOME STRING", "LONGER SOME STRING");
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
AclFormattingUtils.demergePatterns("SOME STRING", "SAME LENGTH");
}
@@ -68,7 +65,6 @@ public class AclFormattingUtilsTests {
String removeBits = "...............................R";
assertThat(AclFormattingUtils.demergePatterns(original, removeBits))
.isEqualTo("...........................A....");
-
assertThat(AclFormattingUtils.demergePatterns("ABCDEF", "......")).isEqualTo("ABCDEF");
assertThat(AclFormattingUtils.demergePatterns("ABCDEF", "GHIJKL")).isEqualTo("......");
}
@@ -81,21 +77,18 @@ public class AclFormattingUtilsTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
AclFormattingUtils.mergePatterns("SOME STRING", null);
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
AclFormattingUtils.mergePatterns("SOME STRING", "LONGER SOME STRING");
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
AclFormattingUtils.mergePatterns("SOME STRING", "SAME LENGTH");
}
@@ -108,7 +101,6 @@ public class AclFormattingUtilsTests {
String original = "...............................R";
String extraBits = "...........................A....";
assertThat(AclFormattingUtils.mergePatterns(original, extraBits)).isEqualTo("...........................A...R");
-
assertThat(AclFormattingUtils.mergePatterns("ABCDEF", "......")).isEqualTo("ABCDEF");
assertThat(AclFormattingUtils.mergePatterns("ABCDEF", "GHIJKL")).isEqualTo("GHIJKL");
}
@@ -116,21 +108,18 @@ public class AclFormattingUtilsTests {
@Test
public final void testBinaryPrints() {
assertThat(AclFormattingUtils.printBinary(15)).isEqualTo("............................****");
-
try {
AclFormattingUtils.printBinary(15, Permission.RESERVED_ON);
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException notExpected) {
}
-
try {
AclFormattingUtils.printBinary(15, Permission.RESERVED_OFF);
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException notExpected) {
}
-
assertThat(AclFormattingUtils.printBinary(15, 'x')).isEqualTo("............................xxxx");
}
diff --git a/acl/src/test/java/org/springframework/security/acls/AclPermissionCacheOptimizerTests.java b/acl/src/test/java/org/springframework/security/acls/AclPermissionCacheOptimizerTests.java
index 968cf92093..844a2d4d86 100644
--- a/acl/src/test/java/org/springframework/security/acls/AclPermissionCacheOptimizerTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclPermissionCacheOptimizerTests.java
@@ -54,9 +54,7 @@ public class AclPermissionCacheOptimizerTests {
ObjectIdentity[] oids = { new ObjectIdentityImpl("A", "1"), new ObjectIdentityImpl("A", "2") };
given(oidStrat.getObjectIdentity(dos[0])).willReturn(oids[0]);
given(oidStrat.getObjectIdentity(dos[2])).willReturn(oids[1]);
-
pco.cachePermissionsFor(mock(Authentication.class), Arrays.asList(dos));
-
// AclService should be invoked with the list of required Oids
verify(service).readAclsById(eq(Arrays.asList(oids)), any(List.class));
}
@@ -69,9 +67,7 @@ public class AclPermissionCacheOptimizerTests {
SidRetrievalStrategy sids = mock(SidRetrievalStrategy.class);
pco.setObjectIdentityRetrievalStrategy(oids);
pco.setSidRetrievalStrategy(sids);
-
pco.cachePermissionsFor(mock(Authentication.class), Collections.emptyList());
-
verifyZeroInteractions(service, sids, oids);
}
diff --git a/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java b/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
index 5bdc6a5446..a29c3ab3be 100644
--- a/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
@@ -50,10 +50,8 @@ public class AclPermissionEvaluatorTests {
pe.setObjectIdentityRetrievalStrategy(oidStrategy);
pe.setSidRetrievalStrategy(mock(SidRetrievalStrategy.class));
Acl acl = mock(Acl.class);
-
given(service.readAclById(any(ObjectIdentity.class), anyList())).willReturn(acl);
given(acl.isGranted(anyList(), anyList(), eq(false))).willReturn(true);
-
assertThat(pe.hasPermission(mock(Authentication.class), new Object(), "READ")).isTrue();
}
@@ -61,7 +59,6 @@ public class AclPermissionEvaluatorTests {
public void resolvePermissionNonEnglishLocale() {
Locale systemLocale = Locale.getDefault();
Locale.setDefault(new Locale("tr"));
-
AclService service = mock(AclService.class);
AclPermissionEvaluator pe = new AclPermissionEvaluator(service);
ObjectIdentity oid = mock(ObjectIdentity.class);
@@ -70,12 +67,9 @@ public class AclPermissionEvaluatorTests {
pe.setObjectIdentityRetrievalStrategy(oidStrategy);
pe.setSidRetrievalStrategy(mock(SidRetrievalStrategy.class));
Acl acl = mock(Acl.class);
-
given(service.readAclById(any(ObjectIdentity.class), anyList())).willReturn(acl);
given(acl.isGranted(anyList(), anyList(), eq(false))).willReturn(true);
-
assertThat(pe.hasPermission(mock(Authentication.class), new Object(), "write")).isTrue();
-
Locale.setDefault(systemLocale);
}
diff --git a/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProviderTests.java b/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProviderTests.java
index 55800137e0..296e306d5f 100644
--- a/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProviderTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProviderTests.java
@@ -58,7 +58,6 @@ public class AclEntryAfterInvocationCollectionFilteringProviderTests {
provider.setObjectIdentityRetrievalStrategy(mock(ObjectIdentityRetrievalStrategy.class));
provider.setProcessDomainObjectClass(Object.class);
provider.setSidRetrievalStrategy(mock(SidRetrievalStrategy.class));
-
Object returned = provider.decide(mock(Authentication.class), new Object(),
SecurityConfig.createList("AFTER_ACL_COLLECTION_READ"),
new ArrayList(Arrays.asList(new Object(), new Object())));
@@ -76,7 +75,6 @@ public class AclEntryAfterInvocationCollectionFilteringProviderTests {
AclEntryAfterInvocationCollectionFilteringProvider provider = new AclEntryAfterInvocationCollectionFilteringProvider(
mock(AclService.class), Arrays.asList(mock(Permission.class)));
Object returned = new Object();
-
assertThat(returned).isSameAs(provider.decide(mock(Authentication.class), new Object(),
Collections.emptyList(), returned));
}
@@ -86,7 +84,6 @@ public class AclEntryAfterInvocationCollectionFilteringProviderTests {
AclService service = mock(AclService.class);
AclEntryAfterInvocationCollectionFilteringProvider provider = new AclEntryAfterInvocationCollectionFilteringProvider(
service, Arrays.asList(mock(Permission.class)));
-
assertThat(provider.decide(mock(Authentication.class), new Object(),
SecurityConfig.createList("AFTER_ACL_COLLECTION_READ"), null)).isNull();
verify(service, never()).readAclById(any(ObjectIdentity.class), any(List.class));
diff --git a/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProviderTests.java b/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProviderTests.java
index 5e8bb47953..b044f89c3a 100644
--- a/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProviderTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProviderTests.java
@@ -74,7 +74,6 @@ public class AclEntryAfterInvocationProviderTests {
provider.setProcessDomainObjectClass(Object.class);
provider.setSidRetrievalStrategy(mock(SidRetrievalStrategy.class));
Object returned = new Object();
-
assertThat(returned).isSameAs(provider.decide(mock(Authentication.class), new Object(),
SecurityConfig.createList("AFTER_ACL_READ"), returned));
}
@@ -84,7 +83,6 @@ public class AclEntryAfterInvocationProviderTests {
AclEntryAfterInvocationProvider provider = new AclEntryAfterInvocationProvider(mock(AclService.class),
Arrays.asList(mock(Permission.class)));
Object returned = new Object();
-
assertThat(returned).isSameAs(provider.decide(mock(Authentication.class), new Object(),
Collections.emptyList(), returned));
}
@@ -96,7 +94,6 @@ public class AclEntryAfterInvocationProviderTests {
provider.setProcessDomainObjectClass(String.class);
// Not a String
Object returned = new Object();
-
assertThat(returned).isSameAs(provider.decide(mock(Authentication.class), new Object(),
SecurityConfig.createList("AFTER_ACL_READ"), returned));
}
@@ -133,7 +130,6 @@ public class AclEntryAfterInvocationProviderTests {
AclService service = mock(AclService.class);
AclEntryAfterInvocationProvider provider = new AclEntryAfterInvocationProvider(service,
Arrays.asList(mock(Permission.class)));
-
assertThat(provider.decide(mock(Authentication.class), new Object(),
SecurityConfig.createList("AFTER_ACL_COLLECTION_READ"), null)).isNull();
verify(service, never()).readAclById(any(ObjectIdentity.class), any(List.class));
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
index c51bc86701..743f8ee3b8 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
@@ -46,7 +46,6 @@ public class AccessControlImplEntryTests {
}
catch (IllegalArgumentException expected) {
}
-
// Check Sid field is present
try {
new AccessControlEntryImpl(null, mock(Acl.class), null, BasePermission.ADMINISTRATION, true, true, true);
@@ -54,7 +53,6 @@ public class AccessControlImplEntryTests {
}
catch (IllegalArgumentException expected) {
}
-
// Check Permission field is present
try {
new AccessControlEntryImpl(null, mock(Acl.class), new PrincipalSid("johndoe"), null, true, true, true);
@@ -68,11 +66,9 @@ public class AccessControlImplEntryTests {
public void testAccessControlEntryImplGetters() {
Acl mockAcl = mock(Acl.class);
Sid sid = new PrincipalSid("johndoe");
-
// Create a sample entry
AccessControlEntry ace = new AccessControlEntryImpl(1L, mockAcl, sid, BasePermission.ADMINISTRATION, true, true,
true);
-
// and check every get() method
assertThat(ace.getId()).isEqualTo(1L);
assertThat(ace.getAcl()).isEqualTo(mockAcl);
@@ -87,13 +83,10 @@ public class AccessControlImplEntryTests {
public void testEquals() {
final Acl mockAcl = mock(Acl.class);
final ObjectIdentity oid = mock(ObjectIdentity.class);
-
given(mockAcl.getObjectIdentity()).willReturn(oid);
Sid sid = new PrincipalSid("johndoe");
-
AccessControlEntry ace = new AccessControlEntryImpl(1L, mockAcl, sid, BasePermission.ADMINISTRATION, true, true,
true);
-
assertThat(ace).isNotNull();
assertThat(ace).isNotEqualTo(100L);
assertThat(ace).isEqualTo(ace);
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 7427916de8..c86776a9c7 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
@@ -156,7 +156,6 @@ public class AclImplTests {
MutableAcl acl = new AclImpl(this.objectIdentity, 1, this.authzStrategy, this.pgs, null, null, true,
new PrincipalSid("joe"));
MockAclService service = new MockAclService();
-
// Insert one permission
acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST1"), true);
service.updateAcl(acl);
@@ -165,7 +164,6 @@ public class AclImplTests {
assertThat(acl).isEqualTo(acl.getEntries().get(0).getAcl());
assertThat(BasePermission.READ).isEqualTo(acl.getEntries().get(0).getPermission());
assertThat(acl.getEntries().get(0).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST1"));
-
// Add a second permission
acl.insertAce(1, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST2"), true);
service.updateAcl(acl);
@@ -174,7 +172,6 @@ public class AclImplTests {
assertThat(acl).isEqualTo(acl.getEntries().get(1).getAcl());
assertThat(BasePermission.READ).isEqualTo(acl.getEntries().get(1).getPermission());
assertThat(acl.getEntries().get(1).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST2"));
-
// Add a third permission, after the first one
acl.insertAce(1, BasePermission.WRITE, new GrantedAuthoritySid("ROLE_TEST3"), false);
service.updateAcl(acl);
@@ -193,11 +190,9 @@ public class AclImplTests {
MutableAcl acl = new AclImpl(this.objectIdentity, 1, this.authzStrategy, this.pgs, null, null, true,
new PrincipalSid("joe"));
MockAclService service = new MockAclService();
-
// Insert one permission
acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST1"), true);
service.updateAcl(acl);
-
acl.insertAce(55, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST2"), true);
}
@@ -206,20 +201,17 @@ public class AclImplTests {
MutableAcl acl = new AclImpl(this.objectIdentity, 1, this.authzStrategy, this.pgs, null, null, true,
new PrincipalSid("joe"));
MockAclService service = new MockAclService();
-
// Add several permissions
acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST1"), true);
acl.insertAce(1, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST2"), true);
acl.insertAce(2, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST3"), true);
service.updateAcl(acl);
-
// Delete first permission and check the order of the remaining permissions is
// kept
acl.deleteAce(0);
assertThat(acl.getEntries()).hasSize(2);
assertThat(acl.getEntries().get(0).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST2"));
assertThat(acl.getEntries().get(1).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST3"));
-
// Add one more permission and remove the permission in the middle
acl.insertAce(2, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST4"), true);
service.updateAcl(acl);
@@ -227,7 +219,6 @@ public class AclImplTests {
assertThat(acl.getEntries()).hasSize(2);
assertThat(acl.getEntries().get(0).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST2"));
assertThat(acl.getEntries().get(1).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST4"));
-
// Remove remaining permissions
acl.deleteAce(1);
acl.deleteAce(0);
@@ -274,17 +265,14 @@ public class AclImplTests {
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
ObjectIdentity rootOid = new ObjectIdentityImpl(TARGET_CLASS, 100);
-
// Create an ACL which owner is not the authenticated principal
MutableAcl rootAcl = new AclImpl(rootOid, 1, this.authzStrategy, this.pgs, null, null, false,
new PrincipalSid("joe"));
-
// Grant some permissions
rootAcl.insertAce(0, BasePermission.READ, new PrincipalSid("ben"), false);
rootAcl.insertAce(1, BasePermission.WRITE, new PrincipalSid("scott"), true);
rootAcl.insertAce(2, BasePermission.WRITE, new PrincipalSid("rod"), false);
rootAcl.insertAce(3, BasePermission.WRITE, new GrantedAuthoritySid("WRITE_ACCESS_ROLE"), true);
-
// Check permissions granting
List permissions = Arrays.asList(BasePermission.READ, BasePermission.CREATE);
List sids = Arrays.asList(new PrincipalSid("ben"), new GrantedAuthoritySid("ROLE_GUEST"));
@@ -320,7 +308,6 @@ public class AclImplTests {
ObjectIdentity parentOid2 = new ObjectIdentityImpl(TARGET_CLASS, 102);
ObjectIdentity childOid1 = new ObjectIdentityImpl(TARGET_CLASS, 103);
ObjectIdentity childOid2 = new ObjectIdentityImpl(TARGET_CLASS, 104);
-
// Create ACLs
PrincipalSid joe = new PrincipalSid("joe");
MutableAcl grandParentAcl = new AclImpl(grandParentOid, 1, this.authzStrategy, this.pgs, null, null, false,
@@ -329,13 +316,11 @@ public class AclImplTests {
MutableAcl parentAcl2 = new AclImpl(parentOid2, 3, this.authzStrategy, this.pgs, null, null, true, joe);
MutableAcl childAcl1 = new AclImpl(childOid1, 4, this.authzStrategy, this.pgs, null, null, true, joe);
MutableAcl childAcl2 = new AclImpl(childOid2, 4, this.authzStrategy, this.pgs, null, null, false, joe);
-
// Create hierarchies
childAcl2.setParent(childAcl1);
childAcl1.setParent(parentAcl1);
parentAcl2.setParent(grandParentAcl);
parentAcl1.setParent(grandParentAcl);
-
// Add some permissions
grandParentAcl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_USER_READ"), true);
grandParentAcl.insertAce(1, BasePermission.WRITE, new PrincipalSid("ben"), true);
@@ -345,7 +330,6 @@ public class AclImplTests {
parentAcl1.insertAce(1, BasePermission.DELETE, new PrincipalSid("scott"), false);
parentAcl2.insertAce(0, BasePermission.CREATE, new PrincipalSid("ben"), true);
childAcl1.insertAce(0, BasePermission.CREATE, new PrincipalSid("scott"), true);
-
// Check granting process for parent1
assertThat(parentAcl1.isGranted(READ, SCOTT, false)).isTrue();
assertThat(parentAcl1.isGranted(READ, Arrays.asList((Sid) new GrantedAuthoritySid("ROLE_USER_READ")), false))
@@ -353,18 +337,15 @@ public class AclImplTests {
assertThat(parentAcl1.isGranted(WRITE, BEN, false)).isTrue();
assertThat(parentAcl1.isGranted(DELETE, BEN, false)).isFalse();
assertThat(parentAcl1.isGranted(DELETE, SCOTT, false)).isFalse();
-
// Check granting process for parent2
assertThat(parentAcl2.isGranted(CREATE, BEN, false)).isTrue();
assertThat(parentAcl2.isGranted(WRITE, BEN, false)).isTrue();
assertThat(parentAcl2.isGranted(DELETE, BEN, false)).isFalse();
-
// Check granting process for child1
assertThat(childAcl1.isGranted(CREATE, SCOTT, false)).isTrue();
assertThat(childAcl1.isGranted(READ, Arrays.asList((Sid) new GrantedAuthoritySid("ROLE_USER_READ")), false))
.isTrue();
assertThat(childAcl1.isGranted(DELETE, BEN, false)).isFalse();
-
// Check granting process for child2 (doesn't inherit the permissions from its
// parent)
try {
@@ -389,21 +370,17 @@ public class AclImplTests {
MutableAcl acl = new AclImpl(this.objectIdentity, 1, this.authzStrategy, this.pgs, null, null, false,
new PrincipalSid("joe"));
MockAclService service = new MockAclService();
-
acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_USER_READ"), true);
acl.insertAce(1, BasePermission.WRITE, new GrantedAuthoritySid("ROLE_USER_READ"), true);
acl.insertAce(2, BasePermission.CREATE, new PrincipalSid("ben"), true);
service.updateAcl(acl);
-
assertThat(BasePermission.READ).isEqualTo(acl.getEntries().get(0).getPermission());
assertThat(BasePermission.WRITE).isEqualTo(acl.getEntries().get(1).getPermission());
assertThat(BasePermission.CREATE).isEqualTo(acl.getEntries().get(2).getPermission());
-
// Change each permission
acl.updateAce(0, BasePermission.CREATE);
acl.updateAce(1, BasePermission.DELETE);
acl.updateAce(2, BasePermission.READ);
-
// Check the change was successfully made
assertThat(BasePermission.CREATE).isEqualTo(acl.getEntries().get(0).getPermission());
assertThat(BasePermission.DELETE).isEqualTo(acl.getEntries().get(1).getPermission());
@@ -418,20 +395,16 @@ public class AclImplTests {
MutableAcl acl = new AclImpl(this.objectIdentity, 1, this.authzStrategy, this.pgs, null, null, false,
new PrincipalSid("joe"));
MockAclService service = new MockAclService();
-
acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_USER_READ"), true);
acl.insertAce(1, BasePermission.WRITE, new GrantedAuthoritySid("ROLE_USER_READ"), true);
service.updateAcl(acl);
-
assertThat(((AuditableAccessControlEntry) acl.getEntries().get(0)).isAuditFailure()).isFalse();
assertThat(((AuditableAccessControlEntry) acl.getEntries().get(1)).isAuditFailure()).isFalse();
assertThat(((AuditableAccessControlEntry) acl.getEntries().get(0)).isAuditSuccess()).isFalse();
assertThat(((AuditableAccessControlEntry) acl.getEntries().get(1)).isAuditSuccess()).isFalse();
-
// Change each permission
((AuditableAcl) acl).updateAuditing(0, true, true);
((AuditableAcl) acl).updateAuditing(1, true, true);
-
// Check the change was successfuly made
assertThat(acl.getEntries()).extracting("auditSuccess").containsOnly(true, true);
assertThat(acl.getEntries()).extracting("auditFailure").containsOnly(true, true);
@@ -452,20 +425,16 @@ public class AclImplTests {
acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_USER_READ"), true);
acl.insertAce(1, BasePermission.WRITE, new GrantedAuthoritySid("ROLE_USER_READ"), true);
service.updateAcl(acl);
-
assertThat(1).isEqualTo(acl.getId());
assertThat(identity).isEqualTo(acl.getObjectIdentity());
assertThat(new PrincipalSid("joe")).isEqualTo(acl.getOwner());
assertThat(acl.getParentAcl()).isNull();
assertThat(acl.isEntriesInheriting()).isTrue();
assertThat(acl.getEntries()).hasSize(2);
-
acl.setParent(parentAcl);
assertThat(parentAcl).isEqualTo(acl.getParentAcl());
-
acl.setEntriesInheriting(false);
assertThat(acl.isEntriesInheriting()).isFalse();
-
acl.setOwner(new PrincipalSid("ben"));
assertThat(new PrincipalSid("ben")).isEqualTo(acl.getOwner());
}
@@ -475,7 +444,6 @@ public class AclImplTests {
List loadedSids = Arrays.asList(new PrincipalSid("ben"), new GrantedAuthoritySid("ROLE_IGNORED"));
MutableAcl acl = new AclImpl(this.objectIdentity, 1, this.authzStrategy, this.pgs, null, loadedSids, true,
new PrincipalSid("joe"));
-
assertThat(acl.isSidLoaded(loadedSids)).isTrue();
assertThat(acl.isSidLoaded(Arrays.asList(new GrantedAuthoritySid("ROLE_IGNORED"), new PrincipalSid("ben"))))
.isTrue();
@@ -534,7 +502,6 @@ public class AclImplTests {
AclImpl parentAcl = new AclImpl(this.objectIdentity, 1L, this.authzStrategy, this.mockAuditLogger);
AclImpl childAcl = new AclImpl(this.objectIdentity, 2L, this.authzStrategy, this.mockAuditLogger);
AclImpl changeParentAcl = new AclImpl(this.objectIdentity, 3L, this.authzStrategy, this.mockAuditLogger);
-
childAcl.setParent(parentAcl);
childAcl.setParent(changeParentAcl);
}
@@ -562,10 +529,8 @@ public class AclImplTests {
ObjectIdentity oid = new ObjectIdentityImpl("type", 1);
AclAuthorizationStrategy authStrategy = new AclAuthorizationStrategyImpl(new SimpleGrantedAuthority("role"));
PermissionGrantingStrategy grantingStrategy = new DefaultPermissionGrantingStrategy(new ConsoleAuditLogger());
-
AclImpl acl = new AclImpl(oid, 1L, authStrategy, grantingStrategy, null, null, false, sid);
AccessControlEntryImpl ace = new AccessControlEntryImpl(1L, acl, sid, BasePermission.READ, true, true, true);
-
Field fieldAces = FieldUtils.getField(AclImpl.class, "aces");
fieldAces.setAccessible(true);
List aces = (List) fieldAces.get(acl);
@@ -617,7 +582,6 @@ public class AclImplTests {
try {
newAces = (List) acesField.get(acl);
newAces.clear();
-
for (int i = 0; i < oldAces.size(); i++) {
AccessControlEntry ac = oldAces.get(i);
// Just give an ID to all this acl's aces, rest of the fields are just
@@ -630,7 +594,6 @@ public class AclImplTests {
catch (IllegalAccessException ex) {
ex.printStackTrace();
}
-
return acl;
}
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
index b563914901..9a121f71ab 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
@@ -58,18 +58,14 @@ public class AclImplementationSecurityCheckTests {
"ROLE_OWNERSHIP");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity identity = new ObjectIdentityImpl(TARGET_CLASS, 100L);
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
-
Acl acl = new AclImpl(identity, 1L, aclAuthorizationStrategy, new ConsoleAuditLogger());
-
aclAuthorizationStrategy.securityCheck(acl, AclAuthorizationStrategy.CHANGE_GENERAL);
aclAuthorizationStrategy.securityCheck(acl, AclAuthorizationStrategy.CHANGE_AUDITING);
aclAuthorizationStrategy.securityCheck(acl, AclAuthorizationStrategy.CHANGE_OWNERSHIP);
-
// Create another authorization strategy
AclAuthorizationStrategy aclAuthorizationStrategy2 = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_ONE"), new SimpleGrantedAuthority("ROLE_TWO"),
@@ -102,21 +98,17 @@ public class AclImplementationSecurityCheckTests {
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_GENERAL");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity identity = new ObjectIdentityImpl(TARGET_CLASS, 100L);
// Authorization strategy will require a different role for each access
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
-
// Let's give the principal the ADMINISTRATION permission, without
// granting access
MutableAcl aclFirstDeny = new AclImpl(identity, 1L, aclAuthorizationStrategy, new ConsoleAuditLogger());
aclFirstDeny.insertAce(0, BasePermission.ADMINISTRATION, new PrincipalSid(auth), false);
-
// The CHANGE_GENERAL test should pass as the principal has ROLE_GENERAL
aclAuthorizationStrategy.securityCheck(aclFirstDeny, AclAuthorizationStrategy.CHANGE_GENERAL);
-
// The CHANGE_AUDITING and CHANGE_OWNERSHIP should fail since the
// principal doesn't have these authorities,
// nor granting access
@@ -132,7 +124,6 @@ public class AclImplementationSecurityCheckTests {
}
catch (AccessDeniedException expected) {
}
-
// Add granting access to this principal
aclFirstDeny.insertAce(1, BasePermission.ADMINISTRATION, new PrincipalSid(auth), true);
// and try again for CHANGE_AUDITING - the first ACE's granting flag
@@ -143,27 +134,21 @@ public class AclImplementationSecurityCheckTests {
}
catch (AccessDeniedException expected) {
}
-
// Create another ACL and give the principal the ADMINISTRATION
// permission, with granting access
MutableAcl aclFirstAllow = new AclImpl(identity, 1L, aclAuthorizationStrategy, new ConsoleAuditLogger());
aclFirstAllow.insertAce(0, BasePermission.ADMINISTRATION, new PrincipalSid(auth), true);
-
// The CHANGE_AUDITING test should pass as there is one ACE with
// granting access
-
aclAuthorizationStrategy.securityCheck(aclFirstAllow, AclAuthorizationStrategy.CHANGE_AUDITING);
-
// Add a deny ACE and test again for CHANGE_AUDITING
aclFirstAllow.insertAce(1, BasePermission.ADMINISTRATION, new PrincipalSid(auth), false);
try {
aclAuthorizationStrategy.securityCheck(aclFirstAllow, AclAuthorizationStrategy.CHANGE_AUDITING);
-
}
catch (AccessDeniedException notExpected) {
fail("It shouldn't have thrown AccessDeniedException");
}
-
// Create an ACL with no ACE
MutableAcl aclNoACE = new AclImpl(identity, 1L, aclAuthorizationStrategy, new ConsoleAuditLogger());
try {
@@ -171,12 +156,10 @@ public class AclImplementationSecurityCheckTests {
fail("It should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
// and still grant access for CHANGE_GENERAL
try {
aclAuthorizationStrategy.securityCheck(aclNoACE, AclAuthorizationStrategy.CHANGE_GENERAL);
-
}
catch (NotFoundException expected) {
fail("It shouldn't have thrown NotFoundException");
@@ -189,19 +172,16 @@ public class AclImplementationSecurityCheckTests {
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_GENERAL");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity identity = new ObjectIdentityImpl(TARGET_CLASS, 100);
// Authorization strategy will require a different role for each access
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_ONE"), new SimpleGrantedAuthority("ROLE_TWO"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
-
// Let's give the principal an ADMINISTRATION permission, with granting
// access
MutableAcl parentAcl = new AclImpl(identity, 1, aclAuthorizationStrategy, new ConsoleAuditLogger());
parentAcl.insertAce(0, BasePermission.ADMINISTRATION, new PrincipalSid(auth), true);
MutableAcl childAcl = new AclImpl(identity, 2, aclAuthorizationStrategy, new ConsoleAuditLogger());
-
// Check against the 'child' acl, which doesn't offer any authorization
// rights on CHANGE_OWNERSHIP
try {
@@ -209,21 +189,17 @@ public class AclImplementationSecurityCheckTests {
fail("It should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
-
// Link the child with its parent and test again against the
// CHANGE_OWNERSHIP right
childAcl.setParent(parentAcl);
childAcl.setEntriesInheriting(true);
try {
aclAuthorizationStrategy.securityCheck(childAcl, AclAuthorizationStrategy.CHANGE_OWNERSHIP);
-
}
catch (NotFoundException expected) {
fail("It shouldn't have thrown NotFoundException");
}
-
// Create a root parent and link it to the middle parent
MutableAcl rootParentAcl = new AclImpl(identity, 1, aclAuthorizationStrategy, new ConsoleAuditLogger());
parentAcl = new AclImpl(identity, 1, aclAuthorizationStrategy, new ConsoleAuditLogger());
@@ -233,7 +209,6 @@ public class AclImplementationSecurityCheckTests {
childAcl.setParent(parentAcl);
try {
aclAuthorizationStrategy.securityCheck(childAcl, AclAuthorizationStrategy.CHANGE_OWNERSHIP);
-
}
catch (NotFoundException expected) {
fail("It shouldn't have thrown NotFoundException");
@@ -245,12 +220,10 @@ public class AclImplementationSecurityCheckTests {
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_ONE");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity identity = new ObjectIdentityImpl(TARGET_CLASS, 100);
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
-
Acl acl = new AclImpl(identity, 1, aclAuthorizationStrategy,
new DefaultPermissionGrantingStrategy(new ConsoleAuditLogger()), null, null, false,
new PrincipalSid(auth));
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
index 6542c73b59..e2abb35c01 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
@@ -76,7 +76,6 @@ public class AuditLoggerTests {
@Test
public void successIsLoggedIfAceRequiresSuccessAudit() {
given(this.ace.isAuditSuccess()).willReturn(true);
-
this.logger.logIfNeeded(true, this.ace);
assertThat(this.bytes.toString()).startsWith("GRANTED due to ACE");
}
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java
index f4def65adc..309dc8776f 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java
@@ -42,7 +42,6 @@ public class ObjectIdentityImplTests {
}
catch (IllegalArgumentException expected) {
}
-
// Check String-Serializable constructor required field
try {
new ObjectIdentityImpl("", 1L);
@@ -50,7 +49,6 @@ public class ObjectIdentityImplTests {
}
catch (IllegalArgumentException expected) {
}
-
// Check Serializable parameter is not null
try {
new ObjectIdentityImpl(DOMAIN_CLASS, null);
@@ -58,7 +56,6 @@ public class ObjectIdentityImplTests {
}
catch (IllegalArgumentException expected) {
}
-
// The correct way of using String-Serializable constructor
try {
new ObjectIdentityImpl(DOMAIN_CLASS, 1L);
@@ -66,7 +63,6 @@ public class ObjectIdentityImplTests {
catch (IllegalArgumentException notExpected) {
fail("It shouldn't have thrown IllegalArgumentException");
}
-
// Check the Class-Serializable constructor
try {
new ObjectIdentityImpl(MockIdDomainObject.class, null);
@@ -91,9 +87,7 @@ public class ObjectIdentityImplTests {
fail("It should have thrown IdentityUnavailableException");
}
catch (IdentityUnavailableException expected) {
-
}
-
// getId() should return a non-null value
MockIdDomainObject mockId = new MockIdDomainObject();
try {
@@ -101,9 +95,7 @@ public class ObjectIdentityImplTests {
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
// getId() should return a Serializable object
mockId.setId(new MockIdDomainObject());
try {
@@ -112,7 +104,6 @@ public class ObjectIdentityImplTests {
}
catch (IllegalArgumentException expected) {
}
-
// getId() should return a Serializable object
mockId.setId(100L);
try {
@@ -132,7 +123,6 @@ public class ObjectIdentityImplTests {
ObjectIdentity obj = new ObjectIdentityImpl(DOMAIN_CLASS, 1L);
MockIdDomainObject mockObj = new MockIdDomainObject();
mockObj.setId(1L);
-
String string = "SOME_STRING";
assertThat(string).isNotSameAs(obj);
assertThat(obj).isNotNull();
@@ -155,7 +145,6 @@ public class ObjectIdentityImplTests {
public void longAndIntegerIdsWithSameValueAreEqualAndHaveSameHashcode() {
ObjectIdentity obj = new ObjectIdentityImpl(Object.class, 5L);
ObjectIdentity obj2 = new ObjectIdentityImpl(Object.class, 5);
-
assertThat(obj2).isEqualTo(obj);
assertThat(obj2.hashCode()).isEqualTo(obj.hashCode());
}
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java
index ec2c572b95..b6787f893c 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java
@@ -34,10 +34,8 @@ public class ObjectIdentityRetrievalStrategyImplTests {
public void testObjectIdentityCreation() {
MockIdDomainObject domain = new MockIdDomainObject();
domain.setId(1);
-
ObjectIdentityRetrievalStrategy retStrategy = new ObjectIdentityRetrievalStrategyImpl();
ObjectIdentity identity = retStrategy.getObjectIdentity(domain);
-
assertThat(identity).isNotNull();
assertThat(new ObjectIdentityImpl(domain)).isEqualTo(identity);
}
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
index 1d10aeb66c..5aef8e4c74 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
@@ -62,26 +62,19 @@ public class PermissionTests {
@Test
public void stringConversion() {
this.permissionFactory.registerPublicPermissions(SpecialPermission.class);
-
assertThat(BasePermission.READ.toString()).isEqualTo("BasePermission[...............................R=1]");
-
assertThat(BasePermission.ADMINISTRATION.toString())
.isEqualTo("BasePermission[...........................A....=16]");
-
assertThat(new CumulativePermission().set(BasePermission.READ).toString())
.isEqualTo("CumulativePermission[...............................R=1]");
-
assertThat(
new CumulativePermission().set(SpecialPermission.ENTER).set(BasePermission.ADMINISTRATION).toString())
.isEqualTo("CumulativePermission[..........................EA....=48]");
-
assertThat(new CumulativePermission().set(BasePermission.ADMINISTRATION).set(BasePermission.READ).toString())
.isEqualTo("CumulativePermission[...........................A...R=17]");
-
assertThat(new CumulativePermission().set(BasePermission.ADMINISTRATION).set(BasePermission.READ)
.clear(BasePermission.ADMINISTRATION).toString())
.isEqualTo("CumulativePermission[...............................R=1]");
-
assertThat(new CumulativePermission().set(BasePermission.ADMINISTRATION).set(BasePermission.READ)
.clear(BasePermission.ADMINISTRATION).clear(BasePermission.READ).toString())
.isEqualTo("CumulativePermission[................................=0]");
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/AbstractBasicLookupStrategyTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/AbstractBasicLookupStrategyTests.java
index 097be23708..6000bab596 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/AbstractBasicLookupStrategyTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/AbstractBasicLookupStrategyTests.java
@@ -147,7 +147,6 @@ public abstract class AbstractBasicLookupStrategyTests {
ObjectIdentity middleParentOid = new ObjectIdentityImpl(TARGET_CLASS, 101L);
// Deliberately use an integer for the child, to reproduce bug report in SEC-819
ObjectIdentity childOid = new ObjectIdentityImpl(TARGET_CLASS, 102);
-
Map map = this.strategy
.readAclsById(Arrays.asList(topParentOid, middleParentOid, childOid), null);
checkEntries(topParentOid, middleParentOid, childOid, map);
@@ -158,15 +157,12 @@ public abstract class AbstractBasicLookupStrategyTests {
ObjectIdentity topParentOid = new ObjectIdentityImpl(TARGET_CLASS, 100);
ObjectIdentity middleParentOid = new ObjectIdentityImpl(TARGET_CLASS, 101L);
ObjectIdentity childOid = new ObjectIdentityImpl(TARGET_CLASS, 102L);
-
// Objects were put in cache
this.strategy.readAclsById(Arrays.asList(topParentOid, middleParentOid, childOid), null);
-
// Let's empty the database to force acls retrieval from cache
emptyDatabase();
Map map = this.strategy
.readAclsById(Arrays.asList(topParentOid, middleParentOid, childOid), null);
-
checkEntries(topParentOid, middleParentOid, childOid, map);
}
@@ -175,7 +171,6 @@ public abstract class AbstractBasicLookupStrategyTests {
ObjectIdentity topParentOid = new ObjectIdentityImpl(TARGET_CLASS, 100L);
ObjectIdentity middleParentOid = new ObjectIdentityImpl(TARGET_CLASS, 101);
ObjectIdentity childOid = new ObjectIdentityImpl(TARGET_CLASS, 102L);
-
// Set a batch size to allow multiple database queries in order to retrieve all
// acls
this.strategy.setBatchSize(1);
@@ -187,31 +182,25 @@ public abstract class AbstractBasicLookupStrategyTests {
private void checkEntries(ObjectIdentity topParentOid, ObjectIdentity middleParentOid, ObjectIdentity childOid,
Map map) {
assertThat(map).hasSize(3);
-
MutableAcl topParent = (MutableAcl) map.get(topParentOid);
MutableAcl middleParent = (MutableAcl) map.get(middleParentOid);
MutableAcl child = (MutableAcl) map.get(childOid);
-
// Check the retrieved versions has IDs
assertThat(topParent.getId()).isNotNull();
assertThat(middleParent.getId()).isNotNull();
assertThat(child.getId()).isNotNull();
-
// Check their parents were correctly retrieved
assertThat(topParent.getParentAcl()).isNull();
assertThat(middleParent.getParentAcl().getObjectIdentity()).isEqualTo(topParentOid);
assertThat(child.getParentAcl().getObjectIdentity()).isEqualTo(middleParentOid);
-
// Check their ACEs were correctly retrieved
assertThat(topParent.getEntries()).hasSize(2);
assertThat(middleParent.getEntries()).hasSize(1);
assertThat(child.getEntries()).hasSize(1);
-
// Check object identities were correctly retrieved
assertThat(topParent.getObjectIdentity()).isEqualTo(topParentOid);
assertThat(middleParent.getObjectIdentity()).isEqualTo(middleParentOid);
assertThat(child.getObjectIdentity()).isEqualTo(childOid);
-
// Check each entry
assertThat(topParent.isEntriesInheriting()).isTrue();
assertThat(Long.valueOf(1)).isEqualTo(topParent.getId());
@@ -222,14 +211,12 @@ public abstract class AbstractBasicLookupStrategyTests {
assertThat(((AuditableAccessControlEntry) topParent.getEntries().get(0)).isAuditFailure()).isFalse();
assertThat(((AuditableAccessControlEntry) topParent.getEntries().get(0)).isAuditSuccess()).isFalse();
assertThat((topParent.getEntries().get(0)).isGranting()).isTrue();
-
assertThat(Long.valueOf(2)).isEqualTo(topParent.getEntries().get(1).getId());
assertThat(topParent.getEntries().get(1).getPermission()).isEqualTo(BasePermission.WRITE);
assertThat(topParent.getEntries().get(1).getSid()).isEqualTo(new PrincipalSid("ben"));
assertThat(((AuditableAccessControlEntry) topParent.getEntries().get(1)).isAuditFailure()).isFalse();
assertThat(((AuditableAccessControlEntry) topParent.getEntries().get(1)).isAuditSuccess()).isFalse();
assertThat(topParent.getEntries().get(1).isGranting()).isFalse();
-
assertThat(middleParent.isEntriesInheriting()).isTrue();
assertThat(Long.valueOf(2)).isEqualTo(middleParent.getId());
assertThat(new PrincipalSid("ben")).isEqualTo(middleParent.getOwner());
@@ -239,7 +226,6 @@ public abstract class AbstractBasicLookupStrategyTests {
assertThat(((AuditableAccessControlEntry) middleParent.getEntries().get(0)).isAuditFailure()).isFalse();
assertThat(((AuditableAccessControlEntry) middleParent.getEntries().get(0)).isAuditSuccess()).isFalse();
assertThat(middleParent.getEntries().get(0).isGranting()).isTrue();
-
assertThat(child.isEntriesInheriting()).isTrue();
assertThat(Long.valueOf(3)).isEqualTo(child.getId());
assertThat(new PrincipalSid("ben")).isEqualTo(child.getOwner());
@@ -255,15 +241,12 @@ public abstract class AbstractBasicLookupStrategyTests {
public void testAllParentsAreRetrievedWhenChildIsLoaded() {
String query = "INSERT INTO acl_object_identity(ID,OBJECT_ID_CLASS,OBJECT_ID_IDENTITY,PARENT_OBJECT,OWNER_SID,ENTRIES_INHERITING) VALUES (6,2,103,1,1,1);";
getJdbcTemplate().execute(query);
-
ObjectIdentity topParentOid = new ObjectIdentityImpl(TARGET_CLASS, 100L);
ObjectIdentity middleParentOid = new ObjectIdentityImpl(TARGET_CLASS, 101L);
ObjectIdentity childOid = new ObjectIdentityImpl(TARGET_CLASS, 102L);
ObjectIdentity middleParent2Oid = new ObjectIdentityImpl(TARGET_CLASS, 103L);
-
// Retrieve the child
Map map = this.strategy.readAclsById(Arrays.asList(childOid), null);
-
// Check that the child and all its parents were retrieved
assertThat(map.get(childOid)).isNotNull();
assertThat(map.get(childOid).getObjectIdentity()).isEqualTo(childOid);
@@ -271,7 +254,6 @@ public abstract class AbstractBasicLookupStrategyTests {
assertThat(map.get(middleParentOid).getObjectIdentity()).isEqualTo(middleParentOid);
assertThat(map.get(topParentOid)).isNotNull();
assertThat(map.get(topParentOid).getObjectIdentity()).isEqualTo(topParentOid);
-
// The second parent shouldn't have been retrieved
assertThat(map.get(middleParent2Oid)).isNull();
}
@@ -287,26 +269,21 @@ public abstract class AbstractBasicLookupStrategyTests {
+ "INSERT INTO acl_object_identity(ID,OBJECT_ID_CLASS,OBJECT_ID_IDENTITY,PARENT_OBJECT,OWNER_SID,ENTRIES_INHERITING) VALUES (9,2,108,7,1,1);"
+ "INSERT INTO acl_entry(ID,ACL_OBJECT_IDENTITY,ACE_ORDER,SID,MASK,GRANTING,AUDIT_SUCCESS,AUDIT_FAILURE) VALUES (7,6,0,1,1,1,0,0)";
getJdbcTemplate().execute(query);
-
ObjectIdentity grandParentOid = new ObjectIdentityImpl(TARGET_CLASS, 104L);
ObjectIdentity parent1Oid = new ObjectIdentityImpl(TARGET_CLASS, 105L);
ObjectIdentity parent2Oid = new ObjectIdentityImpl(TARGET_CLASS, 106);
ObjectIdentity childOid = new ObjectIdentityImpl(TARGET_CLASS, 107);
-
// First lookup only child, thus populating the cache with grandParent,
// parent1
// and child
List checkPermission = Arrays.asList(BasePermission.READ);
List sids = Arrays.asList(BEN_SID);
List childOids = Arrays.asList(childOid);
-
this.strategy.setBatchSize(6);
Map foundAcls = this.strategy.readAclsById(childOids, sids);
-
Acl foundChildAcl = foundAcls.get(childOid);
assertThat(foundChildAcl).isNotNull();
assertThat(foundChildAcl.isGranted(checkPermission, sids, false)).isTrue();
-
// Search for object identities has to be done in the following order:
// last
// element have to be one which
@@ -315,12 +292,10 @@ public abstract class AbstractBasicLookupStrategyTests {
List allOids = Arrays.asList(grandParentOid, parent1Oid, parent2Oid, childOid);
try {
foundAcls = this.strategy.readAclsById(allOids, sids);
-
}
catch (NotFoundException notExpected) {
fail("It shouldn't have thrown NotFoundException");
}
-
Acl foundParent2Acl = foundAcls.get(parent2Oid);
assertThat(foundParent2Acl).isNotNull();
assertThat(foundParent2Acl.isGranted(checkPermission, sids, false)).isTrue();
@@ -329,18 +304,14 @@ public abstract class AbstractBasicLookupStrategyTests {
@Test(expected = IllegalArgumentException.class)
public void nullOwnerIsNotSupported() {
String query = "INSERT INTO acl_object_identity(ID,OBJECT_ID_CLASS,OBJECT_ID_IDENTITY,PARENT_OBJECT,OWNER_SID,ENTRIES_INHERITING) VALUES (6,2,104,null,null,1);";
-
getJdbcTemplate().execute(query);
-
ObjectIdentity oid = new ObjectIdentityImpl(TARGET_CLASS, 104L);
-
this.strategy.readAclsById(Arrays.asList(oid), Arrays.asList(BEN_SID));
}
@Test
public void testCreatePrincipalSid() {
Sid result = this.strategy.createSid(true, "sid");
-
assertThat(result.getClass()).isEqualTo(PrincipalSid.class);
assertThat(((PrincipalSid) result).getPrincipal()).isEqualTo("sid");
}
@@ -348,7 +319,6 @@ public abstract class AbstractBasicLookupStrategyTests {
@Test
public void testCreateGrantedAuthority() {
Sid result = this.strategy.createSid(false, "sid");
-
assertThat(result.getClass()).isEqualTo(GrantedAuthoritySid.class);
assertThat(((GrantedAuthoritySid) result).getGrantedAuthority()).isEqualTo("sid");
}
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTestsDbHelper.java b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTestsDbHelper.java
index 16206dea2b..32a2547351 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTestsDbHelper.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTestsDbHelper.java
@@ -58,12 +58,10 @@ public class BasicLookupStrategyTestsDbHelper {
else {
connectionUrl = "jdbc:hsqldb:mem:lookupstrategytestWithAclClassIdType";
sqlClassPathResource = ACL_SCHEMA_SQL_FILE_WITH_ACL_CLASS_ID;
-
}
this.dataSource = new SingleConnectionDataSource(connectionUrl, "sa", "", true);
this.dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
this.jdbcTemplate = new JdbcTemplate(this.dataSource);
-
Resource resource = new ClassPathResource(sqlClassPathResource);
String sql = new String(FileCopyUtils.copyToByteArray(resource.getInputStream()));
this.jdbcTemplate.execute(sql);
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java b/acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
index 9d2d6c2e5d..eca0b5d635 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
@@ -35,7 +35,6 @@ public class DatabaseSeeder {
public DatabaseSeeder(DataSource dataSource, Resource resource) throws IOException {
Assert.notNull(dataSource, "dataSource required");
Assert.notNull(resource, "resource required");
-
JdbcTemplate template = new JdbcTemplate(dataSource);
String sql = new String(FileCopyUtils.copyToByteArray(resource.getInputStream()));
template.execute(sql);
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
index 04f496a43b..d293b50084 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
@@ -82,12 +82,10 @@ public class EhCacheBasedAclCacheTests {
this.myCache = new EhCacheBasedAclCache(this.cache,
new DefaultPermissionGrantingStrategy(new ConsoleAuditLogger()),
new AclAuthorizationStrategyImpl(new SimpleGrantedAuthority("ROLE_USER")));
-
ObjectIdentity identity = new ObjectIdentityImpl(TARGET_CLASS, 100L);
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
-
this.acl = new AclImpl(identity, 1L, aclAuthorizationStrategy, new ConsoleAuditLogger());
}
@@ -111,7 +109,6 @@ public class EhCacheBasedAclCacheTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
ObjectIdentity obj = null;
this.myCache.evictFromCache(obj);
@@ -119,7 +116,6 @@ public class EhCacheBasedAclCacheTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
Serializable id = null;
this.myCache.getFromCache(id);
@@ -127,7 +123,6 @@ public class EhCacheBasedAclCacheTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
ObjectIdentity obj = null;
this.myCache.getFromCache(obj);
@@ -135,7 +130,6 @@ public class EhCacheBasedAclCacheTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
MutableAcl acl = null;
this.myCache.putInCache(acl);
@@ -154,17 +148,13 @@ public class EhCacheBasedAclCacheTests {
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(this.acl);
oos.close();
-
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
MutableAcl retrieved = (MutableAcl) ois.readObject();
ois.close();
-
assertThat(retrieved).isEqualTo(this.acl);
-
Object retrieved1 = FieldUtils.getProtectedFieldValue("aclAuthorizationStrategy", retrieved);
assertThat(retrieved1).isNull();
-
Object retrieved2 = FieldUtils.getProtectedFieldValue("permissionGrantingStrategy", retrieved);
assertThat(retrieved2).isNull();
}
@@ -172,14 +162,12 @@ public class EhCacheBasedAclCacheTests {
@Test
public void clearCache() {
this.myCache.clearCache();
-
verify(this.cache).removeAll();
}
@Test
public void putInCache() {
this.myCache.putInCache(this.acl);
-
verify(this.cache, times(2)).put(this.element.capture());
assertThat(this.element.getValue().getKey()).isEqualTo(this.acl.getId());
assertThat(this.element.getValue().getObjectValue()).isEqualTo(this.acl);
@@ -192,29 +180,21 @@ public class EhCacheBasedAclCacheTests {
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_GENERAL");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity identityParent = new ObjectIdentityImpl(TARGET_CLASS, 2L);
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
MutableAcl parentAcl = new AclImpl(identityParent, 2L, aclAuthorizationStrategy, new ConsoleAuditLogger());
this.acl.setParent(parentAcl);
-
this.myCache.putInCache(this.acl);
-
verify(this.cache, times(4)).put(this.element.capture());
-
List allValues = this.element.getAllValues();
-
assertThat(allValues.get(0).getKey()).isEqualTo(parentAcl.getObjectIdentity());
assertThat(allValues.get(0).getObjectValue()).isEqualTo(parentAcl);
-
assertThat(allValues.get(1).getKey()).isEqualTo(parentAcl.getId());
assertThat(allValues.get(1).getObjectValue()).isEqualTo(parentAcl);
-
assertThat(allValues.get(2).getKey()).isEqualTo(this.acl.getObjectIdentity());
assertThat(allValues.get(2).getObjectValue()).isEqualTo(this.acl);
-
assertThat(allValues.get(3).getKey()).isEqualTo(this.acl.getId());
assertThat(allValues.get(3).getObjectValue()).isEqualTo(this.acl);
}
@@ -222,21 +202,16 @@ public class EhCacheBasedAclCacheTests {
@Test
public void getFromCacheSerializable() {
given(this.cache.get(this.acl.getId())).willReturn(new Element(this.acl.getId(), this.acl));
-
assertThat(this.myCache.getFromCache(this.acl.getId())).isEqualTo(this.acl);
}
@Test
public void getFromCacheSerializablePopulatesTransient() {
given(this.cache.get(this.acl.getId())).willReturn(new Element(this.acl.getId(), this.acl));
-
this.myCache.putInCache(this.acl);
-
ReflectionTestUtils.setField(this.acl, "permissionGrantingStrategy", null);
ReflectionTestUtils.setField(this.acl, "aclAuthorizationStrategy", null);
-
MutableAcl fromCache = this.myCache.getFromCache(this.acl.getId());
-
assertThat(ReflectionTestUtils.getField(fromCache, "aclAuthorizationStrategy")).isNotNull();
assertThat(ReflectionTestUtils.getField(fromCache, "permissionGrantingStrategy")).isNotNull();
}
@@ -244,21 +219,16 @@ public class EhCacheBasedAclCacheTests {
@Test
public void getFromCacheObjectIdentity() {
given(this.cache.get(this.acl.getId())).willReturn(new Element(this.acl.getId(), this.acl));
-
assertThat(this.myCache.getFromCache(this.acl.getId())).isEqualTo(this.acl);
}
@Test
public void getFromCacheObjectIdentityPopulatesTransient() {
given(this.cache.get(this.acl.getObjectIdentity())).willReturn(new Element(this.acl.getId(), this.acl));
-
this.myCache.putInCache(this.acl);
-
ReflectionTestUtils.setField(this.acl, "permissionGrantingStrategy", null);
ReflectionTestUtils.setField(this.acl, "aclAuthorizationStrategy", null);
-
MutableAcl fromCache = this.myCache.getFromCache(this.acl.getObjectIdentity());
-
assertThat(ReflectionTestUtils.getField(fromCache, "aclAuthorizationStrategy")).isNotNull();
assertThat(ReflectionTestUtils.getField(fromCache, "permissionGrantingStrategy")).isNotNull();
}
@@ -266,9 +236,7 @@ public class EhCacheBasedAclCacheTests {
@Test
public void evictCacheSerializable() {
given(this.cache.get(this.acl.getObjectIdentity())).willReturn(new Element(this.acl.getId(), this.acl));
-
this.myCache.evictFromCache(this.acl.getObjectIdentity());
-
verify(this.cache).remove(this.acl.getId());
verify(this.cache).remove(this.acl.getObjectIdentity());
}
@@ -276,9 +244,7 @@ public class EhCacheBasedAclCacheTests {
@Test
public void evictCacheObjectIdentity() {
given(this.cache.get(this.acl.getId())).willReturn(new Element(this.acl.getId(), this.acl));
-
this.myCache.evictFromCache(this.acl.getId());
-
verify(this.cache).remove(this.acl.getId());
verify(this.cache).remove(this.acl.getObjectIdentity());
}
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java
index 3e5e09c2f7..a4ff652ef1 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java
@@ -97,7 +97,6 @@ public class JdbcAclServiceTests {
given(this.lookupStrategy.readAclsById(anyList(), anyList())).willReturn(result);
ObjectIdentity objectIdentity = new ObjectIdentityImpl(Object.class, 1);
List sids = Arrays.asList(new PrincipalSid("user"));
-
this.aclService.readAclById(objectIdentity, sids);
}
@@ -108,7 +107,6 @@ public class JdbcAclServiceTests {
Object[] args = { "1", "org.springframework.security.acls.jdbc.JdbcAclServiceTests$MockLongIdDomainObject" };
given(this.jdbcOperations.query(anyString(), eq(args), any(RowMapper.class))).willReturn(result);
ObjectIdentity objectIdentity = new ObjectIdentityImpl(MockLongIdDomainObject.class, 1L);
-
List objectIdentities = this.aclService.findChildren(objectIdentity);
assertThat(objectIdentities.size()).isEqualTo(1);
assertThat(objectIdentities.get(0).getIdentifier()).isEqualTo("5577");
@@ -117,7 +115,6 @@ public class JdbcAclServiceTests {
@Test
public void findNoChildren() {
ObjectIdentity objectIdentity = new ObjectIdentityImpl(MockLongIdDomainObject.class, 1L);
-
List objectIdentities = this.aclService.findChildren(objectIdentity);
assertThat(objectIdentities).isNull();
}
@@ -125,7 +122,6 @@ public class JdbcAclServiceTests {
@Test
public void findChildrenWithoutIdType() {
ObjectIdentity objectIdentity = new ObjectIdentityImpl(MockLongIdDomainObject.class, 4711L);
-
List objectIdentities = this.aclServiceIntegration.findChildren(objectIdentity);
assertThat(objectIdentities.size()).isEqualTo(1);
assertThat(objectIdentities.get(0).getType()).isEqualTo(MockUntypedIdDomainObject.class.getName());
@@ -135,7 +131,6 @@ public class JdbcAclServiceTests {
@Test
public void findChildrenForUnknownObject() {
ObjectIdentity objectIdentity = new ObjectIdentityImpl(Object.class, 33);
-
List objectIdentities = this.aclServiceIntegration.findChildren(objectIdentity);
assertThat(objectIdentities).isNull();
}
@@ -143,7 +138,6 @@ public class JdbcAclServiceTests {
@Test
public void findChildrenOfIdTypeLong() {
ObjectIdentity objectIdentity = new ObjectIdentityImpl("location", "US-PAL");
-
List objectIdentities = this.aclServiceIntegration.findChildren(objectIdentity);
assertThat(objectIdentities.size()).isEqualTo(2);
assertThat(objectIdentities.get(0).getType()).isEqualTo(MockLongIdDomainObject.class.getName());
@@ -155,7 +149,6 @@ public class JdbcAclServiceTests {
@Test
public void findChildrenOfIdTypeString() {
ObjectIdentity objectIdentity = new ObjectIdentityImpl("location", "US");
-
this.aclServiceIntegration.setAclClassIdSupported(true);
List objectIdentities = this.aclServiceIntegration.findChildren(objectIdentity);
assertThat(objectIdentities.size()).isEqualTo(1);
@@ -166,7 +159,6 @@ public class JdbcAclServiceTests {
@Test
public void findChildrenOfIdTypeUUID() {
ObjectIdentity objectIdentity = new ObjectIdentityImpl(MockUntypedIdDomainObject.class, 5000L);
-
this.aclServiceIntegration.setAclClassIdSupported(true);
List objectIdentities = this.aclServiceIntegration.findChildren(objectIdentity);
assertThat(objectIdentities.size()).isEqualTo(1);
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 9d70049f1a..fe44732540 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
@@ -142,123 +142,97 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
@Transactional
public void testLifecycle() {
SecurityContextHolder.getContext().setAuthentication(this.auth);
-
MutableAcl topParent = this.jdbcMutableAclService.createAcl(getTopParentOid());
MutableAcl middleParent = this.jdbcMutableAclService.createAcl(getMiddleParentOid());
MutableAcl child = this.jdbcMutableAclService.createAcl(getChildOid());
-
// Specify the inheritance hierarchy
middleParent.setParent(topParent);
child.setParent(middleParent);
-
// Now let's add a couple of permissions
topParent.insertAce(0, BasePermission.READ, new PrincipalSid(this.auth), true);
topParent.insertAce(1, BasePermission.WRITE, new PrincipalSid(this.auth), false);
middleParent.insertAce(0, BasePermission.DELETE, new PrincipalSid(this.auth), true);
child.insertAce(0, BasePermission.DELETE, new PrincipalSid(this.auth), false);
-
// Explicitly save the changed ACL
this.jdbcMutableAclService.updateAcl(topParent);
this.jdbcMutableAclService.updateAcl(middleParent);
this.jdbcMutableAclService.updateAcl(child);
-
// Let's check if we can read them back correctly
Map map = this.jdbcMutableAclService
.readAclsById(Arrays.asList(getTopParentOid(), getMiddleParentOid(), getChildOid()));
assertThat(map).hasSize(3);
-
// Replace our current objects with their retrieved versions
topParent = (MutableAcl) map.get(getTopParentOid());
middleParent = (MutableAcl) map.get(getMiddleParentOid());
child = (MutableAcl) map.get(getChildOid());
-
// Check the retrieved versions has IDs
assertThat(topParent.getId()).isNotNull();
assertThat(middleParent.getId()).isNotNull();
assertThat(child.getId()).isNotNull();
-
// Check their parents were correctly persisted
assertThat(topParent.getParentAcl()).isNull();
assertThat(middleParent.getParentAcl().getObjectIdentity()).isEqualTo(getTopParentOid());
assertThat(child.getParentAcl().getObjectIdentity()).isEqualTo(getMiddleParentOid());
-
// Check their ACEs were correctly persisted
assertThat(topParent.getEntries()).hasSize(2);
assertThat(middleParent.getEntries()).hasSize(1);
assertThat(child.getEntries()).hasSize(1);
-
// Check the retrieved rights are correct
List read = Arrays.asList(BasePermission.READ);
List write = Arrays.asList(BasePermission.WRITE);
List delete = Arrays.asList(BasePermission.DELETE);
List pSid = Arrays.asList((Sid) new PrincipalSid(this.auth));
-
assertThat(topParent.isGranted(read, pSid, false)).isTrue();
assertThat(topParent.isGranted(write, pSid, false)).isFalse();
assertThat(middleParent.isGranted(delete, pSid, false)).isTrue();
assertThat(child.isGranted(delete, pSid, false)).isFalse();
-
try {
child.isGranted(Arrays.asList(BasePermission.ADMINISTRATION), pSid, false);
fail("Should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
-
// Now check the inherited rights (when not explicitly overridden) also look OK
assertThat(child.isGranted(read, pSid, false)).isTrue();
assertThat(child.isGranted(write, pSid, false)).isFalse();
assertThat(child.isGranted(delete, pSid, false)).isFalse();
-
// Next change the child so it doesn't inherit permissions from above
child.setEntriesInheriting(false);
this.jdbcMutableAclService.updateAcl(child);
child = (MutableAcl) this.jdbcMutableAclService.readAclById(getChildOid());
assertThat(child.isEntriesInheriting()).isFalse();
-
// Check the child permissions no longer inherit
assertThat(child.isGranted(delete, pSid, true)).isFalse();
-
try {
child.isGranted(read, pSid, true);
fail("Should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
-
try {
child.isGranted(write, pSid, true);
fail("Should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
-
// Let's add an identical permission to the child, but it'll appear AFTER the
// current permission, so has no impact
child.insertAce(1, BasePermission.DELETE, new PrincipalSid(this.auth), true);
-
// Let's also add another permission to the child
child.insertAce(2, BasePermission.CREATE, new PrincipalSid(this.auth), true);
-
// Save the changed child
this.jdbcMutableAclService.updateAcl(child);
child = (MutableAcl) this.jdbcMutableAclService.readAclById(getChildOid());
assertThat(child.getEntries()).hasSize(3);
-
// Output permissions
for (int i = 0; i < child.getEntries().size(); i++) {
System.out.println(child.getEntries().get(i));
}
-
// Check the permissions are as they should be
assertThat(child.isGranted(delete, pSid, true)).isFalse(); // as earlier
// permission
// overrode
assertThat(child.isGranted(Arrays.asList(BasePermission.CREATE), pSid, true)).isTrue();
-
// Now check the first ACE (index 0) really is DELETE for our Sid and is
// non-granting
AccessControlEntry entry = child.getEntries().get(0);
@@ -266,15 +240,12 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
assertThat(entry.getSid()).isEqualTo(new PrincipalSid(this.auth));
assertThat(entry.isGranting()).isFalse();
assertThat(entry.getId()).isNotNull();
-
// Now delete that first ACE
child.deleteAce(0);
-
// Save and check it worked
child = this.jdbcMutableAclService.updateAcl(child);
assertThat(child.getEntries()).hasSize(2);
assertThat(child.isGranted(delete, pSid, false)).isTrue();
-
SecurityContextHolder.clearContext();
}
@@ -285,7 +256,6 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
@Transactional
public void deleteAclAlsoDeletesChildren() {
SecurityContextHolder.getContext().setAuthentication(this.auth);
-
this.jdbcMutableAclService.createAcl(getTopParentOid());
MutableAcl middleParent = this.jdbcMutableAclService.createAcl(getMiddleParentOid());
MutableAcl child = this.jdbcMutableAclService.createAcl(getChildOid());
@@ -294,27 +264,21 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
this.jdbcMutableAclService.updateAcl(child);
// Check the childOid really is a child of middleParentOid
Acl childAcl = this.jdbcMutableAclService.readAclById(getChildOid());
-
assertThat(childAcl.getParentAcl().getObjectIdentity()).isEqualTo(getMiddleParentOid());
-
// Delete the mid-parent and test if the child was deleted, as well
this.jdbcMutableAclService.deleteAcl(getMiddleParentOid(), true);
-
try {
this.jdbcMutableAclService.readAclById(getMiddleParentOid());
fail("It should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
try {
this.jdbcMutableAclService.readAclById(getChildOid());
fail("It should have thrown NotFoundException");
}
catch (NotFoundException expected) {
-
}
-
Acl acl = this.jdbcMutableAclService.readAclById(getTopParentOid());
assertThat(acl).isNotNull();
assertThat(getTopParentOid()).isEqualTo(acl.getObjectIdentity());
@@ -328,14 +292,12 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
}
catch (IllegalArgumentException expected) {
}
-
try {
new JdbcMutableAclService(this.dataSource, null, this.aclCache);
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new JdbcMutableAclService(this.dataSource, this.lookupStrategy, null);
fail("It should have thrown IllegalArgumentException");
@@ -386,11 +348,9 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
SecurityContextHolder.getContext().setAuthentication(this.auth);
MutableAcl parent = this.jdbcMutableAclService.createAcl(getTopParentOid());
MutableAcl child = this.jdbcMutableAclService.createAcl(getMiddleParentOid());
-
// Specify the inheritance hierarchy
child.setParent(parent);
this.jdbcMutableAclService.updateAcl(child);
-
try {
this.jdbcMutableAclService.setForeignKeysInDatabase(false); // switch on FK
// checking in the
@@ -413,13 +373,11 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
MutableAcl child = this.jdbcMutableAclService.createAcl(getChildOid());
child.insertAce(0, BasePermission.DELETE, new PrincipalSid(this.auth), false);
this.jdbcMutableAclService.updateAcl(child);
-
// Remove the child and check all related database rows were removed accordingly
this.jdbcMutableAclService.deleteAcl(getChildOid(), false);
assertThat(this.jdbcTemplate.queryForList(SELECT_ALL_CLASSES, new Object[] { getTargetClass() })).hasSize(1);
assertThat(this.jdbcTemplate.queryForList("select * from acl_object_identity")).isEmpty();
assertThat(this.jdbcTemplate.queryForList("select * from acl_entry")).isEmpty();
-
// Check the cache
assertThat(this.aclCache.getFromCache(getChildOid())).isNull();
assertThat(this.aclCache.getFromCache(102L)).isNull();
@@ -432,7 +390,6 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
SecurityContextHolder.getContext().setAuthentication(this.auth);
ObjectIdentity oid = new ObjectIdentityImpl(TARGET_CLASS, 101);
this.jdbcMutableAclService.createAcl(oid);
-
assertThat(this.jdbcMutableAclService.readAclById(new ObjectIdentityImpl(TARGET_CLASS, 101L))).isNotNull();
}
@@ -445,27 +402,20 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
Authentication auth = new TestingAuthenticationToken("ben", "ignored", "ROLE_ADMINISTRATOR");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity parentOid = new ObjectIdentityImpl(TARGET_CLASS, 104L);
ObjectIdentity childOid = new ObjectIdentityImpl(TARGET_CLASS, 105L);
-
MutableAcl parent = this.jdbcMutableAclService.createAcl(parentOid);
MutableAcl child = this.jdbcMutableAclService.createAcl(childOid);
-
child.setParent(parent);
this.jdbcMutableAclService.updateAcl(child);
-
parent = (AclImpl) this.jdbcMutableAclService.readAclById(parentOid);
parent.insertAce(0, BasePermission.READ, new PrincipalSid("ben"), true);
this.jdbcMutableAclService.updateAcl(parent);
-
parent = (AclImpl) this.jdbcMutableAclService.readAclById(parentOid);
parent.insertAce(1, BasePermission.READ, new PrincipalSid("scott"), true);
this.jdbcMutableAclService.updateAcl(parent);
-
child = (MutableAcl) this.jdbcMutableAclService.readAclById(childOid);
parent = (MutableAcl) child.getParentAcl();
-
assertThat(parent.getEntries()).hasSize(2)
.withFailMessage("Fails because child has a stale reference to its parent");
assertThat(parent.getEntries().get(0).getPermission().getMask()).isEqualTo(1);
@@ -483,22 +433,16 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
Authentication auth = new TestingAuthenticationToken("system", "secret", "ROLE_IGNORED");
SecurityContextHolder.getContext().setAuthentication(auth);
ObjectIdentityImpl rootObject = new ObjectIdentityImpl(TARGET_CLASS, 1L);
-
MutableAcl parent = this.jdbcMutableAclService.createAcl(rootObject);
MutableAcl child = this.jdbcMutableAclService.createAcl(new ObjectIdentityImpl(TARGET_CLASS, 2L));
child.setParent(parent);
this.jdbcMutableAclService.updateAcl(child);
-
parent.insertAce(0, BasePermission.ADMINISTRATION, new GrantedAuthoritySid("ROLE_ADMINISTRATOR"), true);
this.jdbcMutableAclService.updateAcl(parent);
-
parent.insertAce(1, BasePermission.DELETE, new PrincipalSid("terry"), true);
this.jdbcMutableAclService.updateAcl(parent);
-
child = (MutableAcl) this.jdbcMutableAclService.readAclById(new ObjectIdentityImpl(TARGET_CLASS, 2L));
-
parent = (MutableAcl) child.getParentAcl();
-
assertThat(parent.getEntries()).hasSize(2);
assertThat(parent.getEntries().get(0).getPermission().getMask()).isEqualTo(16);
assertThat(parent.getEntries().get(0).getSid()).isEqualTo(new GrantedAuthoritySid("ROLE_ADMINISTRATOR"));
@@ -512,24 +456,19 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
Authentication auth = new TestingAuthenticationToken("ben", "ignored", "ROLE_ADMINISTRATOR");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity topParentOid = new ObjectIdentityImpl(TARGET_CLASS, 110L);
MutableAcl topParent = this.jdbcMutableAclService.createAcl(topParentOid);
-
// Add an ACE permission entry
Permission cm = new CumulativePermission().set(BasePermission.READ).set(BasePermission.ADMINISTRATION);
assertThat(cm.getMask()).isEqualTo(17);
Sid benSid = new PrincipalSid(auth);
topParent.insertAce(0, cm, benSid, true);
assertThat(topParent.getEntries()).hasSize(1);
-
// Explicitly save the changed ACL
topParent = this.jdbcMutableAclService.updateAcl(topParent);
-
// Check the mask was retrieved correctly
assertThat(topParent.getEntries().get(0).getPermission().getMask()).isEqualTo(17);
assertThat(topParent.isGranted(Arrays.asList(cm), Arrays.asList(benSid), true)).isTrue();
-
SecurityContextHolder.clearContext();
}
@@ -539,9 +478,7 @@ public class JdbcMutableAclServiceTests extends AbstractTransactionalJUnit4Sprin
new CustomJdbcMutableAclService(this.dataSource, this.lookupStrategy, this.aclCache));
CustomSid customSid = new CustomSid("Custom sid");
given(customJdbcMutableAclService.createOrRetrieveSidPrimaryKey("Custom sid", false, false)).willReturn(1L);
-
Long result = customJdbcMutableAclService.createOrRetrieveSidPrimaryKey(customSid, false);
-
assertThat(new Long(1L)).isEqualTo(result);
}
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTestsWithAclClassId.java b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTestsWithAclClassId.java
index f912ad7514..ab69977a56 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTestsWithAclClassId.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTestsWithAclClassId.java
@@ -75,11 +75,9 @@ public class JdbcMutableAclServiceTestsWithAclClassId extends JdbcMutableAclServ
@Transactional
public void identityWithUuidIdIsSupportedByCreateAcl() {
SecurityContextHolder.getContext().setAuthentication(getAuth());
-
UUID id = UUID.randomUUID();
ObjectIdentity oid = new ObjectIdentityImpl(TARGET_CLASS_WITH_UUID, id);
getJdbcMutableAclService().createAcl(oid);
-
assertThat(getJdbcMutableAclService().readAclById(new ObjectIdentityImpl(TARGET_CLASS_WITH_UUID, id)))
.isNotNull();
}
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/SpringCacheBasedAclCacheTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/SpringCacheBasedAclCacheTests.java
index 3d2a9c7928..9a3bd62400 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/SpringCacheBasedAclCacheTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/SpringCacheBasedAclCacheTests.java
@@ -89,37 +89,28 @@ public class SpringCacheBasedAclCacheTests {
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
AuditLogger auditLogger = new ConsoleAuditLogger();
-
PermissionGrantingStrategy permissionGrantingStrategy = new DefaultPermissionGrantingStrategy(auditLogger);
SpringCacheBasedAclCache myCache = new SpringCacheBasedAclCache(cache, permissionGrantingStrategy,
aclAuthorizationStrategy);
MutableAcl acl = new AclImpl(identity, 1L, aclAuthorizationStrategy, auditLogger);
-
assertThat(realCache).isEmpty();
myCache.putInCache(acl);
-
// Check we can get from cache the same objects we put in
assertThat(acl).isEqualTo(myCache.getFromCache(1L));
assertThat(acl).isEqualTo(myCache.getFromCache(identity));
-
// Put another object in cache
ObjectIdentity identity2 = new ObjectIdentityImpl(TARGET_CLASS, 101L);
MutableAcl acl2 = new AclImpl(identity2, 2L, aclAuthorizationStrategy, new ConsoleAuditLogger());
-
myCache.putInCache(acl2);
-
// Try to evict an entry that doesn't exist
myCache.evictFromCache(3L);
myCache.evictFromCache(new ObjectIdentityImpl(TARGET_CLASS, 102L));
assertThat(realCache).hasSize(4);
-
myCache.evictFromCache(1L);
assertThat(realCache).hasSize(2);
-
// Check the second object inserted
assertThat(acl2).isEqualTo(myCache.getFromCache(2L));
assertThat(acl2).isEqualTo(myCache.getFromCache(identity2));
-
myCache.evictFromCache(identity2);
assertThat(realCache).isEmpty();
}
@@ -129,31 +120,24 @@ public class SpringCacheBasedAclCacheTests {
public void cacheOperationsAclWithParent() throws Exception {
Cache cache = getCache();
Map realCache = (Map) cache.getNativeCache();
-
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_GENERAL");
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);
-
ObjectIdentity identity = new ObjectIdentityImpl(TARGET_CLASS, 1L);
ObjectIdentity identityParent = new ObjectIdentityImpl(TARGET_CLASS, 2L);
AclAuthorizationStrategy aclAuthorizationStrategy = new AclAuthorizationStrategyImpl(
new SimpleGrantedAuthority("ROLE_OWNERSHIP"), new SimpleGrantedAuthority("ROLE_AUDITING"),
new SimpleGrantedAuthority("ROLE_GENERAL"));
AuditLogger auditLogger = new ConsoleAuditLogger();
-
PermissionGrantingStrategy permissionGrantingStrategy = new DefaultPermissionGrantingStrategy(auditLogger);
SpringCacheBasedAclCache myCache = new SpringCacheBasedAclCache(cache, permissionGrantingStrategy,
aclAuthorizationStrategy);
-
MutableAcl acl = new AclImpl(identity, 1L, aclAuthorizationStrategy, auditLogger);
MutableAcl parentAcl = new AclImpl(identityParent, 2L, aclAuthorizationStrategy, auditLogger);
-
acl.setParent(parentAcl);
-
assertThat(realCache).isEmpty();
myCache.putInCache(acl);
assertThat(4).isEqualTo(realCache.size());
-
// Check we can get from cache the same objects we put in
AclImpl aclFromCache = (AclImpl) myCache.getFromCache(1L);
assertThat(aclFromCache).isEqualTo(acl);
diff --git a/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java b/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
index 0d5d0617a6..5922f8f670 100644
--- a/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
@@ -50,16 +50,13 @@ public class SidRetrievalStrategyTests {
public void correctSidsAreRetrieved() {
SidRetrievalStrategy retrStrategy = new SidRetrievalStrategyImpl();
List sids = retrStrategy.getSids(this.authentication);
-
assertThat(sids).isNotNull();
assertThat(sids).hasSize(4);
assertThat(sids.get(0)).isNotNull();
assertThat(sids.get(0) instanceof PrincipalSid).isTrue();
-
for (int i = 1; i < sids.size(); i++) {
assertThat(sids.get(i) instanceof GrantedAuthoritySid).isTrue();
}
-
assertThat(((PrincipalSid) sids.get(0)).getPrincipal()).isEqualTo("scott");
assertThat(((GrantedAuthoritySid) sids.get(1)).getGrantedAuthority()).isEqualTo("A");
assertThat(((GrantedAuthoritySid) sids.get(2)).getGrantedAuthority()).isEqualTo("B");
@@ -72,7 +69,6 @@ public class SidRetrievalStrategyTests {
List rhAuthorities = AuthorityUtils.createAuthorityList("D");
given(rh.getReachableGrantedAuthorities(anyCollection())).willReturn(rhAuthorities);
SidRetrievalStrategy strat = new SidRetrievalStrategyImpl(rh);
-
List sids = strat.getSids(this.authentication);
assertThat(sids).hasSize(2);
assertThat(sids.get(0)).isNotNull();
diff --git a/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java b/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
index c9ae5a238b..3b566e8c92 100644
--- a/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
@@ -46,17 +46,14 @@ public class SidTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
new PrincipalSid("");
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
new PrincipalSid("johndoe");
// throws no exception
-
// Check one Authentication-argument constructor
try {
Authentication authentication = null;
@@ -65,7 +62,6 @@ public class SidTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
Authentication authentication = new TestingAuthenticationToken(null, "password");
new PrincipalSid(authentication);
@@ -73,7 +69,6 @@ public class SidTests {
}
catch (IllegalArgumentException expected) {
}
-
Authentication authentication = new TestingAuthenticationToken("johndoe", "password");
new PrincipalSid(authentication);
// throws no exception
@@ -88,25 +83,19 @@ public class SidTests {
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
try {
new GrantedAuthoritySid("");
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
try {
new GrantedAuthoritySid("ROLE_TEST");
-
}
catch (IllegalArgumentException notExpected) {
fail("It shouldn't have thrown IllegalArgumentException");
}
-
// Check one GrantedAuthority-argument constructor
try {
GrantedAuthority ga = null;
@@ -114,22 +103,17 @@ public class SidTests {
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
try {
GrantedAuthority ga = new SimpleGrantedAuthority(null);
new GrantedAuthoritySid(ga);
fail("It should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
try {
GrantedAuthority ga = new SimpleGrantedAuthority("ROLE_TEST");
new GrantedAuthoritySid(ga);
-
}
catch (IllegalArgumentException notExpected) {
fail("It shouldn't have thrown IllegalArgumentException");
@@ -140,7 +124,6 @@ public class SidTests {
public void testPrincipalSidEquals() {
Authentication authentication = new TestingAuthenticationToken("johndoe", "password");
Sid principalSid = new PrincipalSid(authentication);
-
assertThat(principalSid.equals(null)).isFalse();
assertThat(principalSid.equals("DIFFERENT_TYPE_OBJECT")).isFalse();
assertThat(principalSid.equals(principalSid)).isTrue();
@@ -155,7 +138,6 @@ public class SidTests {
public void testGrantedAuthoritySidEquals() {
GrantedAuthority ga = new SimpleGrantedAuthority("ROLE_TEST");
Sid gaSid = new GrantedAuthoritySid(ga);
-
assertThat(gaSid.equals(null)).isFalse();
assertThat(gaSid.equals("DIFFERENT_TYPE_OBJECT")).isFalse();
assertThat(gaSid.equals(gaSid)).isTrue();
@@ -170,7 +152,6 @@ public class SidTests {
public void testPrincipalSidHashCode() {
Authentication authentication = new TestingAuthenticationToken("johndoe", "password");
Sid principalSid = new PrincipalSid(authentication);
-
assertThat(principalSid.hashCode()).isEqualTo("johndoe".hashCode());
assertThat(principalSid.hashCode()).isEqualTo(new PrincipalSid("johndoe").hashCode());
assertThat(principalSid.hashCode()).isNotEqualTo(new PrincipalSid("scott").hashCode());
@@ -182,7 +163,6 @@ public class SidTests {
public void testGrantedAuthoritySidHashCode() {
GrantedAuthority ga = new SimpleGrantedAuthority("ROLE_TEST");
Sid gaSid = new GrantedAuthoritySid(ga);
-
assertThat(gaSid.hashCode()).isEqualTo("ROLE_TEST".hashCode());
assertThat(gaSid.hashCode()).isEqualTo(new GrantedAuthoritySid("ROLE_TEST").hashCode());
assertThat(gaSid.hashCode()).isNotEqualTo(new GrantedAuthoritySid("ROLE_TEST_2").hashCode());
@@ -196,10 +176,8 @@ public class SidTests {
PrincipalSid principalSid = new PrincipalSid(authentication);
GrantedAuthority ga = new SimpleGrantedAuthority("ROLE_TEST");
GrantedAuthoritySid gaSid = new GrantedAuthoritySid(ga);
-
assertThat("johndoe".equals(principalSid.getPrincipal())).isTrue();
assertThat("scott".equals(principalSid.getPrincipal())).isFalse();
-
assertThat("ROLE_TEST".equals(gaSid.getGrantedAuthority())).isTrue();
assertThat("ROLE_TEST2".equals(gaSid.getGrantedAuthority())).isFalse();
}
@@ -209,7 +187,6 @@ public class SidTests {
User user = new User("user", "password", Collections.singletonList(new SimpleGrantedAuthority("ROLE_TEST")));
Authentication authentication = new TestingAuthenticationToken(user, "password");
PrincipalSid principalSid = new PrincipalSid(authentication);
-
assertThat("user").isEqualTo(principalSid.getPrincipal());
}
@@ -217,7 +194,6 @@ public class SidTests {
public void getPrincipalWhenPrincipalNotInstanceOfUserDetailsThenReturnsPrincipalName() {
Authentication authentication = new TestingAuthenticationToken("token", "password");
PrincipalSid principalSid = new PrincipalSid(authentication);
-
assertThat("token").isEqualTo(principalSid.getPrincipal());
}
@@ -225,7 +201,6 @@ public class SidTests {
public void getPrincipalWhenCustomAuthenticationPrincipalThenReturnsPrincipalName() {
Authentication authentication = new CustomAuthenticationToken(new CustomToken("token"), null);
PrincipalSid principalSid = new PrincipalSid(authentication);
-
assertThat("token").isEqualTo(principalSid.getPrincipal());
}
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 f7d81ac042..9c0923a18a 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
@@ -111,7 +111,6 @@ public class AnnotationSecurityAspectTests {
@Test(expected = AccessDeniedException.class)
public void internalPrivateCallIsIntercepted() {
SecurityContextHolder.getContext().setAuthentication(this.anne);
-
try {
this.secured.publicCallsPrivate();
fail("Expected AccessDeniedException");
@@ -124,7 +123,6 @@ public class AnnotationSecurityAspectTests {
@Test(expected = AccessDeniedException.class)
public void protectedMethodIsIntercepted() {
SecurityContextHolder.getContext().setAuthentication(this.anne);
-
this.secured.protectedMethod();
}
diff --git a/cas/src/test/java/org/springframework/security/cas/authentication/AbstractStatelessTicketCacheTests.java b/cas/src/test/java/org/springframework/security/cas/authentication/AbstractStatelessTicketCacheTests.java
index d9248e6eec..7f1233b7d5 100644
--- a/cas/src/test/java/org/springframework/security/cas/authentication/AbstractStatelessTicketCacheTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/authentication/AbstractStatelessTicketCacheTests.java
@@ -35,11 +35,9 @@ public abstract class AbstractStatelessTicketCacheTests {
protected CasAuthenticationToken getToken() {
List proxyList = new ArrayList<>();
proxyList.add("https://localhost/newPortal/login/cas");
-
User user = new User("rod", "password", true, true, true, true,
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
final Assertion assertion = new AssertionImpl("rod");
-
return new CasAuthenticationToken("key", user, "ST-0-ER94xMJmn6pha35CQRoZ",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"), user, assertion);
}
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 1d680d1683..d5bef694f1 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
@@ -71,7 +71,6 @@ public class CasAuthenticationProviderTests {
final ServiceProperties serviceProperties = new ServiceProperties();
serviceProperties.setSendRenew(false);
serviceProperties.setService("http://test.com");
-
return serviceProperties;
}
@@ -80,27 +79,20 @@ public class CasAuthenticationProviderTests {
CasAuthenticationProvider cap = new CasAuthenticationProvider();
cap.setAuthenticationUserDetailsService(new MockAuthoritiesPopulator());
cap.setKey("qwerty");
-
StatelessTicketCache cache = new MockStatelessTicketCache();
cap.setStatelessTicketCache(cache);
cap.setServiceProperties(makeServiceProperties());
-
cap.setTicketValidator(new MockTicketValidator(true));
cap.afterPropertiesSet();
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIER, "ST-123");
token.setDetails("details");
-
Authentication result = cap.authenticate(token);
-
// Confirm ST-123 was NOT added to the cache
assertThat(cache.getByTicketId("ST-456") == null).isTrue();
-
if (!(result instanceof CasAuthenticationToken)) {
fail("Should have returned a CasAuthenticationToken");
}
-
CasAuthenticationToken casResult = (CasAuthenticationToken) result;
assertThat(casResult.getPrincipal()).isEqualTo(makeUserDetailsFromAuthoritiesPopulator());
assertThat(casResult.getCredentials()).isEqualTo("ST-123");
@@ -108,11 +100,9 @@ public class CasAuthenticationProviderTests {
assertThat(casResult.getAuthorities()).contains(new SimpleGrantedAuthority("ROLE_B"));
assertThat(casResult.getKeyHash()).isEqualTo(cap.getKey().hashCode());
assertThat(casResult.getDetails()).isEqualTo("details");
-
// Now confirm the CasAuthenticationToken is automatically re-accepted.
// To ensure TicketValidator not called again, set it to deliver an exception...
cap.setTicketValidator(new MockTicketValidator(false));
-
Authentication laterResult = cap.authenticate(result);
assertThat(laterResult).isEqualTo(result);
}
@@ -122,34 +112,26 @@ public class CasAuthenticationProviderTests {
CasAuthenticationProvider cap = new CasAuthenticationProvider();
cap.setAuthenticationUserDetailsService(new MockAuthoritiesPopulator());
cap.setKey("qwerty");
-
StatelessTicketCache cache = new MockStatelessTicketCache();
cap.setStatelessTicketCache(cache);
cap.setTicketValidator(new MockTicketValidator(true));
cap.setServiceProperties(makeServiceProperties());
cap.afterPropertiesSet();
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
CasAuthenticationFilter.CAS_STATELESS_IDENTIFIER, "ST-456");
token.setDetails("details");
-
Authentication result = cap.authenticate(token);
-
// Confirm ST-456 was added to the cache
assertThat(cache.getByTicketId("ST-456") != null).isTrue();
-
if (!(result instanceof CasAuthenticationToken)) {
fail("Should have returned a CasAuthenticationToken");
}
-
assertThat(result.getPrincipal()).isEqualTo(makeUserDetailsFromAuthoritiesPopulator());
assertThat(result.getCredentials()).isEqualTo("ST-456");
assertThat(result.getDetails()).isEqualTo("details");
-
// Now try to authenticate again. To ensure TicketValidator not
// called again, set it to deliver an exception...
cap.setTicketValidator(new MockTicketValidator(false));
-
// Previously created UsernamePasswordAuthenticationToken is OK
Authentication newResult = cap.authenticate(token);
assertThat(newResult.getPrincipal()).isEqualTo(makeUserDetailsFromAuthoritiesPopulator());
@@ -163,22 +145,17 @@ public class CasAuthenticationProviderTests {
given(details.getServiceUrl()).willReturn(serviceUrl);
TicketValidator validator = mock(TicketValidator.class);
given(validator.validate(any(String.class), any(String.class))).willReturn(new AssertionImpl("rod"));
-
ServiceProperties serviceProperties = makeServiceProperties();
serviceProperties.setAuthenticateAllArtifacts(true);
-
CasAuthenticationProvider cap = new CasAuthenticationProvider();
cap.setAuthenticationUserDetailsService(new MockAuthoritiesPopulator());
cap.setKey("qwerty");
-
cap.setTicketValidator(validator);
cap.setServiceProperties(serviceProperties);
cap.afterPropertiesSet();
-
String ticket = "ST-456";
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
CasAuthenticationFilter.CAS_STATELESS_IDENTIFIER, ticket);
-
Authentication result = cap.authenticate(token);
}
@@ -189,40 +166,31 @@ public class CasAuthenticationProviderTests {
given(details.getServiceUrl()).willReturn(serviceUrl);
TicketValidator validator = mock(TicketValidator.class);
given(validator.validate(any(String.class), any(String.class))).willReturn(new AssertionImpl("rod"));
-
ServiceProperties serviceProperties = makeServiceProperties();
serviceProperties.setAuthenticateAllArtifacts(true);
-
CasAuthenticationProvider cap = new CasAuthenticationProvider();
cap.setAuthenticationUserDetailsService(new MockAuthoritiesPopulator());
cap.setKey("qwerty");
-
cap.setTicketValidator(validator);
cap.setServiceProperties(serviceProperties);
cap.afterPropertiesSet();
-
String ticket = "ST-456";
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
CasAuthenticationFilter.CAS_STATELESS_IDENTIFIER, ticket);
-
Authentication result = cap.authenticate(token);
verify(validator).validate(ticket, serviceProperties.getService());
-
serviceProperties.setAuthenticateAllArtifacts(true);
result = cap.authenticate(token);
verify(validator, times(2)).validate(ticket, serviceProperties.getService());
-
token.setDetails(details);
result = cap.authenticate(token);
verify(validator).validate(ticket, serviceUrl);
-
serviceProperties.setAuthenticateAllArtifacts(false);
serviceProperties.setService(null);
cap.setServiceProperties(serviceProperties);
cap.afterPropertiesSet();
result = cap.authenticate(token);
verify(validator, times(2)).validate(ticket, serviceUrl);
-
token.setDetails(new WebAuthenticationDetails(new MockHttpServletRequest()));
try {
cap.authenticate(token);
@@ -230,7 +198,6 @@ public class CasAuthenticationProviderTests {
}
catch (IllegalStateException success) {
}
-
cap.setServiceProperties(null);
cap.afterPropertiesSet();
try {
@@ -246,16 +213,13 @@ public class CasAuthenticationProviderTests {
CasAuthenticationProvider cap = new CasAuthenticationProvider();
cap.setAuthenticationUserDetailsService(new MockAuthoritiesPopulator());
cap.setKey("qwerty");
-
StatelessTicketCache cache = new MockStatelessTicketCache();
cap.setStatelessTicketCache(cache);
cap.setTicketValidator(new MockTicketValidator(true));
cap.setServiceProperties(makeServiceProperties());
cap.afterPropertiesSet();
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIER, "");
-
cap.authenticate(token);
}
@@ -265,16 +229,13 @@ public class CasAuthenticationProviderTests {
CasAuthenticationProvider cap = new CasAuthenticationProvider();
cap.setAuthenticationUserDetailsService(new MockAuthoritiesPopulator());
cap.setKey("qwerty");
-
StatelessTicketCache cache = new MockStatelessTicketCache();
cap.setStatelessTicketCache(cache);
cap.setTicketValidator(new MockTicketValidator(true));
cap.setServiceProperties(makeServiceProperties());
cap.afterPropertiesSet();
-
CasAuthenticationToken token = new CasAuthenticationToken("WRONG_KEY", makeUserDetails(), "credentials",
AuthorityUtils.createAuthorityList("XX"), makeUserDetails(), assertion);
-
cap.authenticate(token);
}
@@ -329,7 +290,6 @@ public class CasAuthenticationProviderTests {
cap.setTicketValidator(new MockTicketValidator(true));
cap.setServiceProperties(makeServiceProperties());
cap.afterPropertiesSet();
-
// TODO disabled because why do we need to expose this?
// assertThat(cap.getUserDetailsService() != null).isTrue();
assertThat(cap.getKey()).isEqualTo("qwerty");
@@ -346,10 +306,8 @@ public class CasAuthenticationProviderTests {
cap.setTicketValidator(new MockTicketValidator(true));
cap.setServiceProperties(makeServiceProperties());
cap.afterPropertiesSet();
-
TestingAuthenticationToken token = new TestingAuthenticationToken("user", "password", "ROLE_A");
assertThat(cap.supports(TestingAuthenticationToken.class)).isFalse();
-
// Try it anyway
assertThat(cap.authenticate(token)).isNull();
}
@@ -363,7 +321,6 @@ public class CasAuthenticationProviderTests {
cap.setTicketValidator(new MockTicketValidator(true));
cap.setServiceProperties(makeServiceProperties());
cap.afterPropertiesSet();
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("some_normal_user",
"password", AuthorityUtils.createAuthorityList("ROLE_A"));
assertThat(cap.authenticate(token)).isNull();
diff --git a/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationTokenTests.java b/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationTokenTests.java
index 2de2cc4ea6..21278296c5 100644
--- a/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationTokenTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationTokenTests.java
@@ -59,35 +59,30 @@ public class CasAuthenticationTokenTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
new CasAuthenticationToken("key", null, "Password", this.ROLES, makeUserDetails(), assertion);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new CasAuthenticationToken("key", makeUserDetails(), null, this.ROLES, makeUserDetails(), assertion);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES, makeUserDetails(), null);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES, null, assertion);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new CasAuthenticationToken("key", makeUserDetails(), "Password",
AuthorityUtils.createAuthorityList("ROLE_1", null), makeUserDetails(), assertion);
@@ -106,13 +101,10 @@ public class CasAuthenticationTokenTests {
@Test
public void testEqualsWhenEqual() {
final Assertion assertion = new AssertionImpl("test");
-
CasAuthenticationToken token1 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion);
-
CasAuthenticationToken token2 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion);
-
assertThat(token2).isEqualTo(token1);
}
@@ -138,30 +130,24 @@ public class CasAuthenticationTokenTests {
fail("Should have thrown NoSuchMethodException");
}
catch (NoSuchMethodException expected) {
-
}
}
@Test
public void testNotEqualsDueToAbstractParentEqualsCheck() {
final Assertion assertion = new AssertionImpl("test");
-
CasAuthenticationToken token1 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion);
-
CasAuthenticationToken token2 = new CasAuthenticationToken("key", makeUserDetails("OTHER_NAME"), "Password",
this.ROLES, makeUserDetails(), assertion);
-
assertThat(!token1.equals(token2)).isTrue();
}
@Test
public void testNotEqualsDueToDifferentAuthenticationClass() {
final Assertion assertion = new AssertionImpl("test");
-
CasAuthenticationToken token1 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion);
-
UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken("Test", "Password",
this.ROLES);
assertThat(!token1.equals(token2)).isTrue();
@@ -170,13 +156,10 @@ public class CasAuthenticationTokenTests {
@Test
public void testNotEqualsDueToKey() {
final Assertion assertion = new AssertionImpl("test");
-
CasAuthenticationToken token1 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion);
-
CasAuthenticationToken token2 = new CasAuthenticationToken("DIFFERENT_KEY", makeUserDetails(), "Password",
this.ROLES, makeUserDetails(), assertion);
-
assertThat(!token1.equals(token2)).isTrue();
}
@@ -184,13 +167,10 @@ public class CasAuthenticationTokenTests {
public void testNotEqualsDueToAssertion() {
final Assertion assertion = new AssertionImpl("test");
final Assertion assertion2 = new AssertionImpl("test");
-
CasAuthenticationToken token1 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion);
-
CasAuthenticationToken token2 = new CasAuthenticationToken("key", makeUserDetails(), "Password", this.ROLES,
makeUserDetails(), assertion2);
-
assertThat(!token1.equals(token2)).isTrue();
}
diff --git a/cas/src/test/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCacheTests.java b/cas/src/test/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCacheTests.java
index e571254522..513158a479 100644
--- a/cas/src/test/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCacheTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/authentication/EhCacheBasedTicketCacheTests.java
@@ -52,17 +52,13 @@ public class EhCacheBasedTicketCacheTests extends AbstractStatelessTicketCacheTe
EhCacheBasedTicketCache cache = new EhCacheBasedTicketCache();
cache.setCache(cacheManager.getCache("castickets"));
cache.afterPropertiesSet();
-
final CasAuthenticationToken token = getToken();
-
// Check it gets stored in the cache
cache.putTicketInCache(token);
assertThat(cache.getByTicketId("ST-0-ER94xMJmn6pha35CQRoZ")).isEqualTo(token);
-
// Check it gets removed from the cache
cache.removeTicketFromCache(getToken());
assertThat(cache.getByTicketId("ST-0-ER94xMJmn6pha35CQRoZ")).isNull();
-
// Check it doesn't return values for null or unknown service tickets
assertThat(cache.getByTicketId(null)).isNull();
assertThat(cache.getByTicketId("UNKNOWN_SERVICE_TICKET")).isNull();
@@ -71,15 +67,12 @@ public class EhCacheBasedTicketCacheTests extends AbstractStatelessTicketCacheTe
@Test
public void testStartupDetectsMissingCache() throws Exception {
EhCacheBasedTicketCache cache = new EhCacheBasedTicketCache();
-
try {
cache.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
Ehcache myCache = cacheManager.getCache("castickets");
cache.setCache(myCache);
assertThat(cache.getCache()).isEqualTo(myCache);
diff --git a/cas/src/test/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCacheTests.java b/cas/src/test/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCacheTests.java
index b9bfffcd51..607ed39260 100644
--- a/cas/src/test/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCacheTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/authentication/SpringCacheBasedTicketCacheTests.java
@@ -44,17 +44,13 @@ public class SpringCacheBasedTicketCacheTests extends AbstractStatelessTicketCac
@Test
public void testCacheOperation() throws Exception {
SpringCacheBasedTicketCache cache = new SpringCacheBasedTicketCache(cacheManager.getCache("castickets"));
-
final CasAuthenticationToken token = getToken();
-
// Check it gets stored in the cache
cache.putTicketInCache(token);
assertThat(cache.getByTicketId("ST-0-ER94xMJmn6pha35CQRoZ")).isEqualTo(token);
-
// Check it gets removed from the cache
cache.removeTicketFromCache(getToken());
assertThat(cache.getByTicketId("ST-0-ER94xMJmn6pha35CQRoZ")).isNull();
-
// Check it doesn't return values for null or unknown service tickets
assertThat(cache.getByTicketId(null)).isNull();
assertThat(cache.getByTicketId("UNKNOWN_SERVICE_TICKET")).isNull();
diff --git a/cas/src/test/java/org/springframework/security/cas/jackson2/CasAuthenticationTokenMixinTests.java b/cas/src/test/java/org/springframework/security/cas/jackson2/CasAuthenticationTokenMixinTests.java
index 7ed182ccc9..4eed00cbe9 100644
--- a/cas/src/test/java/org/springframework/security/cas/jackson2/CasAuthenticationTokenMixinTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/jackson2/CasAuthenticationTokenMixinTests.java
@@ -74,7 +74,6 @@ public class CasAuthenticationTokenMixinTests {
+ "\"authorities\": " + AUTHORITIES_SET_JSON
+ "}";
// @formatter:on
-
private static final String CAS_TOKEN_JSON = "{"
+ "\"@class\": \"org.springframework.security.cas.authentication.CasAuthenticationToken\", "
+ "\"keyHash\": " + KEY.hashCode() + "," + "\"principal\": " + USER_JSON + ", " + "\"credentials\": "
diff --git a/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationEntryPointTests.java b/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationEntryPointTests.java
index 15cb9df2c4..825542cb79 100644
--- a/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationEntryPointTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationEntryPointTests.java
@@ -38,7 +38,6 @@ public class CasAuthenticationEntryPointTests {
public void testDetectsMissingLoginFormUrl() throws Exception {
CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setServiceProperties(new ServiceProperties());
-
try {
ep.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
@@ -52,7 +51,6 @@ public class CasAuthenticationEntryPointTests {
public void testDetectsMissingServiceProperties() throws Exception {
CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login");
-
try {
ep.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
@@ -67,7 +65,6 @@ public class CasAuthenticationEntryPointTests {
CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login");
assertThat(ep.getLoginUrl()).isEqualTo("https://cas/login");
-
ep.setServiceProperties(new ServiceProperties());
assertThat(ep.getServiceProperties() != null).isTrue();
}
@@ -77,19 +74,14 @@ public class CasAuthenticationEntryPointTests {
ServiceProperties sp = new ServiceProperties();
sp.setSendRenew(false);
sp.setService("https://mycompany.com/bigWebApp/login/cas");
-
CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login");
ep.setServiceProperties(sp);
-
MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/some_path");
-
MockHttpServletResponse response = new MockHttpServletResponse();
-
ep.afterPropertiesSet();
ep.commence(request, response, null);
-
assertThat(
"https://cas/login?service=" + URLEncoder.encode("https://mycompany.com/bigWebApp/login/cas", "UTF-8"))
.isEqualTo(response.getRedirectedUrl());
@@ -100,16 +92,12 @@ public class CasAuthenticationEntryPointTests {
ServiceProperties sp = new ServiceProperties();
sp.setSendRenew(true);
sp.setService("https://mycompany.com/bigWebApp/login/cas");
-
CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login");
ep.setServiceProperties(sp);
-
MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/some_path");
-
MockHttpServletResponse response = new MockHttpServletResponse();
-
ep.afterPropertiesSet();
ep.commence(request, response, null);
assertThat("https://cas/login?service="
diff --git a/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationFilterTests.java b/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationFilterTests.java
index e37c07619f..e704ecd3ff 100644
--- a/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationFilterTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/web/CasAuthenticationFilterTests.java
@@ -69,12 +69,9 @@ public class CasAuthenticationFilterTests {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setServletPath("/login/cas");
request.addParameter("ticket", "ST-0-ER94xMJmn6pha35CQRoZ");
-
CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setAuthenticationManager((a) -> a);
-
assertThat(filter.requiresAuthentication(request, new MockHttpServletResponse())).isTrue();
-
Authentication result = filter.attemptAuthentication(request, new MockHttpServletResponse());
assertThat(result != null).isTrue();
}
@@ -85,7 +82,6 @@ public class CasAuthenticationFilterTests {
filter.setAuthenticationManager((a) -> {
throw new BadCredentialsException("Rejected");
});
-
filter.attemptAuthentication(new MockHttpServletRequest(), new MockHttpServletResponse());
}
@@ -96,7 +92,6 @@ public class CasAuthenticationFilterTests {
filter.setFilterProcessesUrl(url);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
-
request.setServletPath(url);
assertThat(filter.requiresAuthentication(request, response)).isTrue();
}
@@ -106,7 +101,6 @@ public class CasAuthenticationFilterTests {
CasAuthenticationFilter filter = new CasAuthenticationFilter();
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
-
request.setServletPath("/pgtCallback");
assertThat(filter.requiresAuthentication(request, response)).isFalse();
filter.setProxyReceptorUrl(request.getServletPath());
@@ -121,17 +115,14 @@ public class CasAuthenticationFilterTests {
public void testRequiresAuthenticationAuthAll() {
ServiceProperties properties = new ServiceProperties();
properties.setAuthenticateAllArtifacts(true);
-
String url = "/login/cas";
CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setFilterProcessesUrl(url);
filter.setServiceProperties(properties);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
-
request.setServletPath(url);
assertThat(filter.requiresAuthentication(request, response)).isTrue();
-
request.setServletPath("/other");
assertThat(filter.requiresAuthentication(request, response)).isFalse();
request.setParameter(properties.getArtifactParameter(), "value");
@@ -151,7 +142,6 @@ public class CasAuthenticationFilterTests {
CasAuthenticationFilter filter = new CasAuthenticationFilter();
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
-
request.setServletPath("/pgtCallback");
filter.setProxyGrantingTicketStorage(mock(ProxyGrantingTicketStorage.class));
filter.setProxyReceptorUrl(request.getServletPath());
@@ -171,20 +161,17 @@ public class CasAuthenticationFilterTests {
request.setServletPath("/authenticate");
MockHttpServletResponse response = new MockHttpServletResponse();
FilterChain chain = mock(FilterChain.class);
-
CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setServiceProperties(serviceProperties);
filter.setAuthenticationSuccessHandler(successHandler);
filter.setProxyGrantingTicketStorage(mock(ProxyGrantingTicketStorage.class));
filter.setAuthenticationManager(manager);
filter.afterPropertiesSet();
-
filter.doFilter(request, response, chain);
assertThat(SecurityContextHolder.getContext().getAuthentication()).isNotNull()
.withFailMessage("Authentication should not be null");
verify(chain).doFilter(request, response);
verifyZeroInteractions(successHandler);
-
// validate for when the filterProcessUrl matches
filter.setFilterProcessesUrl(request.getServletPath());
SecurityContextHolder.clearContext();
@@ -200,11 +187,9 @@ public class CasAuthenticationFilterTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
FilterChain chain = mock(FilterChain.class);
-
request.setServletPath("/pgtCallback");
filter.setProxyGrantingTicketStorage(mock(ProxyGrantingTicketStorage.class));
filter.setProxyReceptorUrl(request.getServletPath());
-
filter.doFilter(request, response, chain);
verifyZeroInteractions(chain);
}
diff --git a/cas/src/test/java/org/springframework/security/cas/web/ServicePropertiesTests.java b/cas/src/test/java/org/springframework/security/cas/web/ServicePropertiesTests.java
index 47bd7db94b..cc61ac93be 100644
--- a/cas/src/test/java/org/springframework/security/cas/web/ServicePropertiesTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/web/ServicePropertiesTests.java
@@ -68,10 +68,8 @@ public class ServicePropertiesTests {
assertThat(sp.getArtifactParameter()).isEqualTo("notticket");
sp.setServiceParameter("notservice");
assertThat(sp.getServiceParameter()).isEqualTo("notservice");
-
sp.setService("https://mycompany.com/service");
assertThat(sp.getService()).isEqualTo("https://mycompany.com/service");
-
sp.afterPropertiesSet();
}
}
diff --git a/cas/src/test/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetailsTests.java b/cas/src/test/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetailsTests.java
index a292662cc4..d7d95ea3a7 100644
--- a/cas/src/test/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetailsTests.java
+++ b/cas/src/test/java/org/springframework/security/cas/web/authentication/DefaultServiceAuthenticationDetailsTests.java
@@ -55,7 +55,6 @@ public class DefaultServiceAuthenticationDetailsTests {
this.request.setRequestURI("/cas-sample/secure/");
this.artifactPattern = DefaultServiceAuthenticationDetails
.createArtifactPattern(ServiceProperties.DEFAULT_CAS_ARTIFACT_PARAMETER);
-
}
@After
diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/HelloRSocketITests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/HelloRSocketITests.java
index a6809b8574..7262646c80 100644
--- a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/HelloRSocketITests.java
+++ b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/HelloRSocketITests.java
@@ -86,7 +86,6 @@ public class HelloRSocketITests {
public void retrieveMonoWhenSecureThenDenied() throws Exception {
this.requester = RSocketRequester.builder().rsocketStrategies(this.handler.getRSocketStrategies())
.connectTcp("localhost", this.server.address().getPort()).block();
-
String data = "rob";
assertThatCode(() -> this.requester.route("secure.retrieve-mono").data(data).retrieveMono(String.class).block())
.isNotNull();
@@ -106,7 +105,6 @@ public class HelloRSocketITests {
String hiRob = this.requester.route("secure.retrieve-mono")
.metadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE).data(data)
.retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
assertThat(this.controller.payloads).containsOnly(data);
}
diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/JwtITests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/JwtITests.java
index 12e27e88c9..f8b30d7e51 100644
--- a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/JwtITests.java
+++ b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/JwtITests.java
@@ -102,9 +102,7 @@ public class JwtITests {
this.requester = requester()
.setupMetadata(credentials.getToken(), BearerTokenMetadata.BEARER_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiRob = this.requester.route("secure.retrieve-mono").data("rob").retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
}
@@ -112,14 +110,11 @@ public class JwtITests {
public void routeWhenAuthenticationBearerThenAuthorized() {
MimeType authenticationMimeType = MimeTypeUtils
.parseMimeType(WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION.getString());
-
BearerTokenMetadata credentials = new BearerTokenMetadata("token");
given(this.decoder.decode(any())).willReturn(Mono.just(jwt()));
this.requester = requester().setupMetadata(credentials, authenticationMimeType)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiRob = this.requester.route("secure.retrieve-mono").data("rob").retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
}
diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerConnectionITests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerConnectionITests.java
index 1a73888c74..ecacae6b21 100644
--- a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerConnectionITests.java
+++ b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerConnectionITests.java
@@ -94,9 +94,7 @@ public class RSocketMessageHandlerConnectionITests {
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("user", "password");
this.requester = requester().setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiRob = this.requester.route("secure.retrieve-mono").data("rob").retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
}
@@ -105,7 +103,6 @@ public class RSocketMessageHandlerConnectionITests {
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("user", "password");
this.requester = requester().setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
assertThatCode(() -> this.requester.route("secure.admin.retrieve-mono").data("data").retrieveMono(String.class)
.block()).isInstanceOf(ApplicationErrorException.class);
}
@@ -116,12 +113,10 @@ public class RSocketMessageHandlerConnectionITests {
this.requester = requester()
.setupMetadata(connectCredentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiRob = this.requester.route("secure.admin.retrieve-mono")
.metadata(new UsernamePasswordMetadata("admin", "password"),
UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.data("rob").retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
}
@@ -131,12 +126,10 @@ public class RSocketMessageHandlerConnectionITests {
this.requester = requester()
.setupMetadata(connectCredentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiUser = this.requester.route("secure.authority.retrieve-mono")
.metadata(new UsernamePasswordMetadata("admin", "password"),
UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.data("Felipe").retrieveMono(String.class).block();
-
assertThat(hiUser).isEqualTo("Hi Felipe");
}
@@ -144,7 +137,6 @@ public class RSocketMessageHandlerConnectionITests {
public void connectWhenNotAuthenticated() {
this.requester = requester().connectTcp(this.server.address().getHostName(), this.server.address().getPort())
.block();
-
assertThatCode(() -> this.requester.route("retrieve-mono").data("data").retrieveMono(String.class).block())
.isNotNull();
// FIXME: https://github.com/rsocket/rsocket-java/issues/686
@@ -156,7 +148,6 @@ public class RSocketMessageHandlerConnectionITests {
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("evil", "password");
this.requester = requester().setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
assertThatCode(() -> this.requester.route("retrieve-mono").data("data").retrieveMono(String.class).block())
.isNotNull();
// FIXME: https://github.com/rsocket/rsocket-java/issues/686
@@ -168,7 +159,6 @@ public class RSocketMessageHandlerConnectionITests {
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("user", "password");
this.requester = requester().setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
assertThatCode(() -> this.requester.route("prohibit").data("data").retrieveMono(String.class).block())
.isInstanceOf(ApplicationErrorException.class);
}
@@ -178,9 +168,7 @@ public class RSocketMessageHandlerConnectionITests {
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("user", "password");
this.requester = requester().setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiRob = this.requester.route("anyroute").data("rob").retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
}
@@ -189,9 +177,7 @@ public class RSocketMessageHandlerConnectionITests {
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("admin", "password");
this.requester = requester().setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
.connectTcp(this.server.address().getHostName(), this.server.address().getPort()).block();
-
String hiEbert = this.requester.route("management.users").data("admin").retrieveMono(String.class).block();
-
assertThat(hiEbert).isEqualTo("Hi admin");
}
diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerITests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerITests.java
index eb22782c00..9b4f37a09d 100644
--- a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerITests.java
+++ b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerITests.java
@@ -79,7 +79,6 @@ public class RSocketMessageHandlerITests {
this.server = RSocketFactory.receive().frameDecoder(PayloadDecoder.ZERO_COPY)
.addSocketAcceptorPlugin(this.interceptor).acceptor(this.handler.responder())
.transport(TcpServerTransport.create("localhost", 0)).start().block();
-
this.requester = RSocketRequester.builder()
// .rsocketFactory((factory) ->
// factory.addRequesterPlugin(payloadInterceptor))
@@ -99,7 +98,6 @@ public class RSocketMessageHandlerITests {
String data = "rob";
assertThatCode(() -> this.requester.route("secure.retrieve-mono").data(data).retrieveMono(String.class).block())
.isInstanceOf(ApplicationErrorException.class).hasMessageContaining("Access Denied");
-
assertThat(this.controller.payloads).isEmpty();
}
@@ -111,7 +109,6 @@ public class RSocketMessageHandlerITests {
.metadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE).data(data)
.retrieveMono(String.class).block()).isInstanceOf(ApplicationErrorException.class)
.hasMessageContaining("Invalid Credentials");
-
assertThat(this.controller.payloads).isEmpty();
}
@@ -122,7 +119,6 @@ public class RSocketMessageHandlerITests {
String hiRob = this.requester.route("secure.retrieve-mono")
.metadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE).data(data)
.retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
assertThat(this.controller.payloads).containsOnly(data);
}
@@ -131,7 +127,6 @@ public class RSocketMessageHandlerITests {
public void retrieveMonoWhenPublicThenGranted() throws Exception {
String data = "rob";
String hiRob = this.requester.route("retrieve-mono").data(data).retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
assertThat(this.controller.payloads).containsOnly(data);
}
@@ -142,7 +137,6 @@ public class RSocketMessageHandlerITests {
assertThatCode(() -> this.requester.route("secure.retrieve-flux").data(data, String.class)
.retrieveFlux(String.class).collectList().block()).isInstanceOf(ApplicationErrorException.class)
.hasMessageContaining("Access Denied");
-
assertThat(this.controller.payloads).isEmpty();
}
@@ -151,7 +145,6 @@ public class RSocketMessageHandlerITests {
Flux data = Flux.just("a", "b", "c");
List hi = this.requester.route("retrieve-flux").data(data, String.class).retrieveFlux(String.class)
.collectList().block();
-
assertThat(hi).containsOnly("hello a", "hello b", "hello c");
assertThat(this.controller.payloads).containsOnlyElementsOf(data.collectList().block());
}
@@ -162,7 +155,6 @@ public class RSocketMessageHandlerITests {
assertThatCode(
() -> this.requester.route("secure.hello").data(data).retrieveFlux(String.class).collectList().block())
.isInstanceOf(ApplicationErrorException.class).hasMessageContaining("Access Denied");
-
assertThat(this.controller.payloads).isEmpty();
}
@@ -170,7 +162,6 @@ public class RSocketMessageHandlerITests {
public void sendWhenSecureThenDenied() throws Exception {
String data = "hi";
this.requester.route("secure.send").data(data).send().block();
-
assertThat(this.controller.payloads).isEmpty();
}
@@ -248,7 +239,6 @@ public class RSocketMessageHandlerITests {
@MessageMapping({ "secure.send", "send" })
Mono send(Mono payload) {
return payload.doOnNext(this::add).then(Mono.fromRunnable(() -> doNotifyAll()));
-
}
private synchronized void doNotifyAll() {
diff --git a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/SimpleAuthenticationITests.java b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/SimpleAuthenticationITests.java
index fc3d4e01ed..29f1c3b495 100644
--- a/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/SimpleAuthenticationITests.java
+++ b/config/src/integration-test/java/org/springframework/security/config/annotation/rsocket/SimpleAuthenticationITests.java
@@ -92,7 +92,6 @@ public class SimpleAuthenticationITests {
public void retrieveMonoWhenSecureThenDenied() throws Exception {
this.requester = RSocketRequester.builder().rsocketStrategies(this.handler.getRSocketStrategies())
.connectTcp("localhost", this.server.address().getPort()).block();
-
String data = "rob";
assertThatCode(() -> this.requester.route("secure.retrieve-mono").data(data).retrieveMono(String.class).block())
.isInstanceOf(ApplicationErrorException.class);
@@ -103,7 +102,6 @@ public class SimpleAuthenticationITests {
public void retrieveMonoWhenAuthorizedThenGranted() {
MimeType authenticationMimeType = MimeTypeUtils
.parseMimeType(WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION.getString());
-
UsernamePasswordMetadata credentials = new UsernamePasswordMetadata("rob", "password");
this.requester = RSocketRequester.builder().setupMetadata(credentials, authenticationMimeType)
.rsocketStrategies(this.handler.getRSocketStrategies())
@@ -111,7 +109,6 @@ public class SimpleAuthenticationITests {
String data = "rob";
String hiRob = this.requester.route("secure.retrieve-mono").metadata(credentials, authenticationMimeType)
.data(data).retrieveMono(String.class).block();
-
assertThat(hiRob).isEqualTo("Hi rob");
assertThat(this.controller.payloads).containsOnly(data);
}
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 53b57df075..103addaebd 100644
--- a/config/src/test/java/org/springframework/security/config/DataSourcePopulator.java
+++ b/config/src/test/java/org/springframework/security/config/DataSourcePopulator.java
@@ -34,13 +34,11 @@ public class DataSourcePopulator implements InitializingBean {
@Override
public void afterPropertiesSet() {
Assert.notNull(this.template, "dataSource required");
-
this.template.execute(
"CREATE TABLE USERS(USERNAME VARCHAR_IGNORECASE(50) NOT NULL PRIMARY KEY,PASSWORD VARCHAR_IGNORECASE(500) NOT NULL,ENABLED BOOLEAN NOT NULL);");
this.template.execute(
"CREATE TABLE AUTHORITIES(USERNAME VARCHAR_IGNORECASE(50) NOT NULL,AUTHORITY VARCHAR_IGNORECASE(50) NOT NULL,CONSTRAINT FK_AUTHORITIES_USERS FOREIGN KEY(USERNAME) REFERENCES USERS(USERNAME));");
this.template.execute("CREATE UNIQUE INDEX IX_AUTH_USERNAME ON AUTHORITIES(USERNAME,AUTHORITY);");
-
/*
* Passwords encoded using MD5, NOT in Base64 format, with null as salt Encoded
* password for rod is "koala" Encoded password for dianne is "emu" Encoded
diff --git a/config/src/test/java/org/springframework/security/config/FilterChainProxyConfigTests.java b/config/src/test/java/org/springframework/security/config/FilterChainProxyConfigTests.java
index 0730702b94..d570897460 100644
--- a/config/src/test/java/org/springframework/security/config/FilterChainProxyConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/FilterChainProxyConfigTests.java
@@ -111,7 +111,6 @@ public class FilterChainProxyConfigTests {
@Test
public void mixingPatternsAndPlaceholdersDoesntCauseOrderingIssues() {
FilterChainProxy fcp = this.appCtx.getBean("sec1235FilterChainProxy", FilterChainProxy.class);
-
List chains = fcp.getFilterChains();
assertThat(getPattern(chains.get(0))).isEqualTo("/login*");
assertThat(getPattern(chains.get(1))).isEqualTo("/logout");
@@ -127,17 +126,14 @@ public class FilterChainProxyConfigTests {
List filters = filterChainProxy.getFilters("/foo/blah;x=1");
assertThat(filters).hasSize(1);
assertThat(filters.get(0) instanceof SecurityContextHolderAwareRequestFilter).isTrue();
-
filters = filterChainProxy.getFilters("/some;x=2,y=3/other/path;z=4/blah");
assertThat(filters).isNotNull();
assertThat(filters).hasSize(3);
assertThat(filters.get(0) instanceof SecurityContextPersistenceFilter).isTrue();
assertThat(filters.get(1) instanceof SecurityContextHolderAwareRequestFilter).isTrue();
assertThat(filters.get(2) instanceof SecurityContextHolderAwareRequestFilter).isTrue();
-
filters = filterChainProxy.getFilters("/do/not/filter;x=7");
assertThat(filters).isEmpty();
-
filters = filterChainProxy.getFilters("/another/nonspecificmatch");
assertThat(filters).hasSize(3);
assertThat(filters.get(0) instanceof SecurityContextPersistenceFilter).isTrue();
@@ -148,13 +144,10 @@ public class FilterChainProxyConfigTests {
private void doNormalOperation(FilterChainProxy filterChainProxy) throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest("GET", "");
request.setServletPath("/foo/secure/super/somefile.html");
-
MockHttpServletResponse response = new MockHttpServletResponse();
FilterChain chain = mock(FilterChain.class);
-
filterChainProxy.doFilter(request, response, chain);
verify(chain).doFilter(any(HttpServletRequest.class), any(HttpServletResponse.class));
-
request.setServletPath("/a/path/which/doesnt/match/any/filter.html");
chain = mock(FilterChain.class);
filterChainProxy.doFilter(request, response, chain);
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 1a08796e61..fdec646a62 100644
--- a/config/src/test/java/org/springframework/security/config/MockUserServiceBeanPostProcessor.java
+++ b/config/src/test/java/org/springframework/security/config/MockUserServiceBeanPostProcessor.java
@@ -37,7 +37,6 @@ public class MockUserServiceBeanPostProcessor implements BeanPostProcessor {
if (bean instanceof PostProcessedMockUserDetailsService) {
((PostProcessedMockUserDetailsService) bean).setPostProcessorWasHere("Hello from the post processor!");
}
-
return bean;
}
diff --git a/config/src/test/java/org/springframework/security/config/SecurityNamespaceHandlerTests.java b/config/src/test/java/org/springframework/security/config/SecurityNamespaceHandlerTests.java
index 9b7ccaf51a..454209e4f0 100644
--- a/config/src/test/java/org/springframework/security/config/SecurityNamespaceHandlerTests.java
+++ b/config/src/test/java/org/springframework/security/config/SecurityNamespaceHandlerTests.java
@@ -90,13 +90,10 @@ public class SecurityNamespaceHandlerTests {
PowerMockito.spy(ClassUtils.class);
PowerMockito.doThrow(new NoClassDefFoundError(className)).when(ClassUtils.class, "forName",
eq(FILTER_CHAIN_PROXY_CLASSNAME), any(ClassLoader.class));
-
Log logger = mock(Log.class);
SecurityNamespaceHandler handler = new SecurityNamespaceHandler();
ReflectionTestUtils.setField(handler, "logger", logger);
-
handler.init();
-
PowerMockito.verifyStatic(ClassUtils.class);
ClassUtils.forName(eq(FILTER_CHAIN_PROXY_CLASSNAME), any(ClassLoader.class));
verifyZeroInteractions(logger);
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 c1cf8715e9..b98c51df78 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
@@ -43,10 +43,8 @@ public class SecurityConfigurerAdapterClosureTests {
return l;
}
});
-
this.conf.init(builder);
this.conf.configure(builder);
-
assertThat(this.conf.list).contains("a");
}
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 b6e0a5a87b..9e6aeba683 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
@@ -36,7 +36,6 @@ public class SecurityConfigurerAdapterTests {
public void postProcessObjectPostProcessorsAreSorted() {
this.adapter.addObjectPostProcessor(new OrderedObjectPostProcessor(Ordered.LOWEST_PRECEDENCE));
this.adapter.addObjectPostProcessor(new OrderedObjectPostProcessor(Ordered.HIGHEST_PRECEDENCE));
-
assertThat(this.adapter.postProcess("hi"))
.isEqualTo("hi " + Ordered.HIGHEST_PRECEDENCE + " " + Ordered.LOWEST_PRECEDENCE);
}
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 fd6749db83..2c3a719c01 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
@@ -76,11 +76,9 @@ public class AuthenticationManagerBuilderTests {
public void buildWhenAddAuthenticationProviderThenDoesNotPerformRegistration() throws Exception {
ObjectPostProcessor
\n"
+ " \n"
+ " \n" + "\n" + "";
-
this.mvc.perform(get("/login")).andExpect(content().string(expectedContent));
}
@Test
public void getLogoutWhenAutoConfigThenShowsDefaultLogoutPage() throws Exception {
-
this.spring.configLocations(this.xml("AutoConfig")).autowire();
-
this.mvc.perform(get("/logout")).andExpect(content().string(containsString("action=\"/logout\"")));
}
@Test
public void getLoginWhenConfiguredWithCustomAttributesThenLoginPageReflects() throws Exception {
-
this.spring.configLocations(this.xml("WithCustomAttributes")).autowire();
-
String expectedContent = "\n" + "\n" + " \n"
+ " \n"
+ " \n"
@@ -106,17 +99,13 @@ public class FormLoginBeanDefinitionParserTests {
+ " \n"
+ " \n"
+ " \n" + "\n" + "";
-
this.mvc.perform(get("/login")).andExpect(content().string(expectedContent));
-
this.mvc.perform(get("/logout")).andExpect(status().is3xxRedirection());
}
@Test
public void getLoginWhenConfiguredForOpenIdThenLoginPageReflects() throws Exception {
-
this.spring.configLocations(this.xml("WithOpenId")).autowire();
-
String expectedContent = "\n" + "\n" + " \n"
+ " \n"
+ " \n"
@@ -142,15 +131,12 @@ public class FormLoginBeanDefinitionParserTests {
+ " \n"
+ " \n"
+ " \n" + "\n" + "";
-
this.mvc.perform(get("/login")).andExpect(content().string(expectedContent));
}
@Test
public void getLoginWhenConfiguredForOpenIdWithCustomAttributesThenLoginPageReflects() throws Exception {
-
this.spring.configLocations(this.xml("WithOpenIdCustomAttributes")).autowire();
-
String expectedContent = "\n" + "\n" + " \n"
+ " \n"
+ " \n"
@@ -176,15 +162,12 @@ public class FormLoginBeanDefinitionParserTests {
+ " \n"
+ " \n"
+ " \n" + "\n" + "";
-
this.mvc.perform(get("/login")).andExpect(content().string(expectedContent));
}
@Test
public void failedLoginWhenConfiguredWithCustomAuthenticationFailureThenForwardsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("WithAuthenticationFailureForwardUrl")).autowire();
-
this.mvc.perform(post("/login").param("username", "bob").param("password", "invalidpassword"))
.andExpect(status().isOk()).andExpect(forwardedUrl("/failure_forward_url"))
.andExpect(request().attribute(WebAttributes.AUTHENTICATION_EXCEPTION, not(nullValue())));
@@ -192,9 +175,7 @@ public class FormLoginBeanDefinitionParserTests {
@Test
public void successfulLoginWhenConfiguredWithCustomAuthenticationSuccessThenForwardsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("WithAuthenticationSuccessForwardUrl")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password"))
.andExpect(status().isOk()).andExpect(forwardedUrl("/success_forward_url"));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/FormLoginConfigTests.java b/config/src/test/java/org/springframework/security/config/http/FormLoginConfigTests.java
index 7e55dde548..faa60c2bc5 100644
--- a/config/src/test/java/org/springframework/security/config/http/FormLoginConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/FormLoginConfigTests.java
@@ -66,66 +66,51 @@ public class FormLoginConfigTests {
@Test
public void getProtectedPageWhenFormLoginConfiguredThenRedirectsToDefaultLoginPage() throws Exception {
-
this.spring.configLocations(this.xml("WithAntRequestMatcher")).autowire();
-
this.mvc.perform(get("/")).andExpect(redirectedUrl("http://localhost/login"));
}
@Test
public void authenticateWhenDefaultTargetUrlConfiguredThenRedirectsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("WithDefaultTargetUrl")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password").with(csrf()))
.andExpect(redirectedUrl("/default"));
}
@Test
public void authenticateWhenConfiguredWithSpelThenRedirectsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("UsingSpel")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password").with(csrf()))
.andExpect(redirectedUrl(WebConfigUtilsTests.URL + "/default"));
-
this.mvc.perform(post("/login").param("username", "user").param("password", "wrong").with(csrf()))
.andExpect(redirectedUrl(WebConfigUtilsTests.URL + "/failure"));
-
this.mvc.perform(get("/")).andExpect(redirectedUrl("http://localhost" + WebConfigUtilsTests.URL + "/login"));
}
@Test
public void autowireWhenLoginPageIsMisconfiguredThenDetects() {
-
assertThatThrownBy(() -> this.spring.configLocations(this.xml("NoLeadingSlashLoginPage")).autowire())
.isInstanceOf(BeanCreationException.class);
}
@Test
public void autowireWhenDefaultTargetUrlIsMisconfiguredThenDetects() {
-
assertThatThrownBy(() -> this.spring.configLocations(this.xml("NoLeadingSlashDefaultTargetUrl")).autowire())
.isInstanceOf(BeanCreationException.class);
}
@Test
public void authenticateWhenCustomHandlerBeansConfiguredThenInvokesAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("WithSuccessAndFailureHandlers")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password").with(csrf()))
.andExpect(status().isIAmATeapot());
-
this.mvc.perform(post("/login").param("username", "user").param("password", "wrong").with(csrf()))
.andExpect(status().isIAmATeapot());
}
@Test
public void authenticateWhenCustomUsernameAndPasswordParametersThenSucceeds() throws Exception {
-
this.spring.configLocations(this.xml("WithUsernameAndPasswordParameters")).autowire();
-
this.mvc.perform(post("/login").param("xname", "user").param("xpass", "password").with(csrf()))
.andExpect(redirectedUrl("/"));
}
@@ -136,28 +121,21 @@ public class FormLoginConfigTests {
@Test
public void autowireWhenCustomLoginPageIsSlashLoginThenNoDefaultLoginPageGeneratingFilterIsWired()
throws Exception {
-
this.spring.configLocations(this.xml("ForSec2919")).autowire();
-
this.mvc.perform(get("/login")).andExpect(content().string("teapot"));
-
assertThat(getFilter(this.spring.getContext(), DefaultLoginPageGeneratingFilter.class)).isNull();
}
@Test
public void authenticateWhenCsrfIsEnabledThenRequiresToken() throws Exception {
-
this.spring.configLocations(this.xml("WithCsrfEnabled")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password"))
.andExpect(status().isForbidden());
}
@Test
public void authenticateWhenCsrfIsDisabledThenDoesNotRequireToken() throws Exception {
-
this.spring.configLocations(this.xml("WithCsrfDisabled")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password"))
.andExpect(status().isFound());
}
@@ -169,24 +147,19 @@ public class FormLoginConfigTests {
@Test
public void authenticateWhenLoginPageIsSlashLoginAndAuthenticationFailsThenRedirectContainsErrorParameter()
throws Exception {
-
this.spring.configLocations(this.xml("ForSec3147")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "wrong").with(csrf()))
.andExpect(redirectedUrl("/login?error"));
}
private Filter getFilter(ApplicationContext context, Class extends Filter> filterClass) {
FilterChainProxy filterChain = context.getBean(BeanIds.FILTER_CHAIN_PROXY, FilterChainProxy.class);
-
List filters = filterChain.getFilters("/any");
-
for (Filter filter : filters) {
if (filter.getClass() == filterClass) {
return filter;
}
}
-
return null;
}
@@ -210,14 +183,12 @@ public class FormLoginConfigTests {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) {
-
response.setStatus(HttpStatus.I_AM_A_TEAPOT.value());
}
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) {
-
response.setStatus(HttpStatus.I_AM_A_TEAPOT.value());
}
diff --git a/config/src/test/java/org/springframework/security/config/http/HttpConfigTests.java b/config/src/test/java/org/springframework/security/config/http/HttpConfigTests.java
index e0eacfd369..d3de9aab8d 100644
--- a/config/src/test/java/org/springframework/security/config/http/HttpConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/HttpConfigTests.java
@@ -51,25 +51,18 @@ public class HttpConfigTests {
@Test
public void getWhenUsingMinimalConfigurationThenRedirectsToLogin() throws Exception {
-
this.spring.configLocations(this.xml("Minimal")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isFound()).andExpect(redirectedUrl("http://localhost/login"));
}
@Test
public void getWhenUsingMinimalConfigurationThenPreventsSessionAsUrlParameter() throws Exception {
-
this.spring.configLocations(this.xml("Minimal")).autowire();
-
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
MockHttpServletResponse response = new MockHttpServletResponse();
-
FilterChainProxy proxy = this.spring.getContext().getBean(FilterChainProxy.class);
-
proxy.doFilter(request, new EncodeUrlDenyingHttpServletResponseWrapper(response), (req, resp) -> {
});
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(response.getRedirectedUrl()).isEqualTo("http://localhost/login");
}
diff --git a/config/src/test/java/org/springframework/security/config/http/HttpCorsConfigTests.java b/config/src/test/java/org/springframework/security/config/http/HttpCorsConfigTests.java
index 3809b4f5a1..6f3b20db83 100644
--- a/config/src/test/java/org/springframework/security/config/http/HttpCorsConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/HttpCorsConfigTests.java
@@ -66,36 +66,27 @@ public class HttpCorsConfigTests {
@Test
public void getWhenUsingCorsThenDoesSpringSecurityCorsHandshake() throws Exception {
-
this.spring.configLocations(this.xml("WithCors")).autowire();
-
this.mvc.perform(get("/").with(this.approved())).andExpect(corsResponseHeaders())
.andExpect((status().isIAmATeapot()));
-
this.mvc.perform(options("/").with(this.preflight())).andExpect(corsResponseHeaders())
.andExpect(status().isOk());
}
@Test
public void getWhenUsingCustomCorsConfigurationSourceThenDoesSpringSecurityCorsHandshake() throws Exception {
-
this.spring.configLocations(this.xml("WithCorsConfigurationSource")).autowire();
-
this.mvc.perform(get("/").with(this.approved())).andExpect(corsResponseHeaders())
.andExpect((status().isIAmATeapot()));
-
this.mvc.perform(options("/").with(this.preflight())).andExpect(corsResponseHeaders())
.andExpect(status().isOk());
}
@Test
public void getWhenUsingCustomCorsFilterThenDoesSPringSecurityCorsHandshake() throws Exception {
-
this.spring.configLocations(this.xml("WithCorsFilter")).autowire();
-
this.mvc.perform(get("/").with(this.approved())).andExpect(corsResponseHeaders())
.andExpect((status().isIAmATeapot()));
-
this.mvc.perform(options("/").with(this.preflight())).andExpect(corsResponseHeaders())
.andExpect(status().isOk());
}
@@ -115,12 +106,10 @@ public class HttpCorsConfigTests {
private RequestPostProcessor cors(boolean preflight) {
return (request) -> {
request.addHeader(HttpHeaders.ORIGIN, "https://example.com");
-
if (preflight) {
request.setMethod(HttpMethod.OPTIONS.name());
request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.POST.name());
}
-
return request;
};
}
@@ -149,7 +138,6 @@ public class HttpCorsConfigTests {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList(RequestMethod.GET.name(), RequestMethod.POST.name()));
-
super.registerCorsConfiguration("/**", configuration);
}
diff --git a/config/src/test/java/org/springframework/security/config/http/HttpHeadersConfigTests.java b/config/src/test/java/org/springframework/security/config/http/HttpHeadersConfigTests.java
index ef52dec747..da112ae731 100644
--- a/config/src/test/java/org/springframework/security/config/http/HttpHeadersConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/HttpHeadersConfigTests.java
@@ -51,7 +51,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
public class HttpHeadersConfigTests {
private static final String CONFIG_LOCATION_PREFIX = "classpath:org/springframework/security/config/http/HttpHeadersConfigTests";
-
static final Map defaultHeaders = ImmutableMap.builder()
.put("X-Content-Type-Options", "nosniff").put("X-Frame-Options", "DENY")
.put("Strict-Transport-Security", "max-age=31536000 ; includeSubDomains")
@@ -66,39 +65,28 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenHeadersDisabledThenResponseExcludesAllSecureHeaders() throws Exception {
-
this.spring.configLocations(this.xml("HeadersDisabled")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(excludesDefaults());
}
@Test
public void requestWhenHeadersDisabledViaPlaceholderThenResponseExcludesAllSecureHeaders() throws Exception {
-
System.setProperty("security.headers.disabled", "true");
-
this.spring.configLocations(this.xml("DisabledWithPlaceholder")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(excludesDefaults());
}
@Test
public void requestWhenHeadersEnabledViaPlaceholderThenResponseIncludesAllSecureHeaders() throws Exception {
-
System.setProperty("security.headers.disabled", "false");
-
this.spring.configLocations(this.xml("DisabledWithPlaceholder")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@Test
public void requestWhenHeadersDisabledRefMissingPlaceholderThenResponseIncludesAllSecureHeaders() throws Exception {
-
System.clearProperty("security.headers.disabled");
-
this.spring.configLocations(this.xml("DisabledWithPlaceholder")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@@ -111,28 +99,21 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenHeadersEnabledThenResponseContainsAllSecureHeaders() throws Exception {
-
this.spring.configLocations(this.xml("DefaultConfig")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@Test
public void requestWhenHeadersElementUsedThenResponseContainsAllSecureHeaders() throws Exception {
-
this.spring.configLocations(this.xml("HeadersEnabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@Test
public void requestWhenFrameOptionsConfiguredThenIncludesHeader() throws Exception {
-
Map headers = new HashMap(defaultHeaders);
headers.put("X-Frame-Options", "SAMEORIGIN");
-
this.spring.configLocations(this.xml("WithFrameOptions")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(headers));
}
@@ -141,86 +122,63 @@ public class HttpHeadersConfigTests {
*/
@Test
public void requestWhenDefaultsDisabledWithNoOverrideThenExcludesAllSecureHeaders() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithNoOverride")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(excludesDefaults());
}
@Test
public void requestWhenDefaultsDisabledWithPlaceholderTrueThenExcludesAllSecureHeaders() throws Exception {
-
System.setProperty("security.headers.defaults.disabled", "true");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithPlaceholder")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(excludesDefaults());
}
@Test
public void requestWhenDefaultsDisabledWithPlaceholderFalseThenIncludeAllSecureHeaders() throws Exception {
-
System.setProperty("security.headers.defaults.disabled", "false");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithPlaceholder")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@Test
public void requestWhenDefaultsDisabledWithPlaceholderMissingThenIncludeAllSecureHeaders() throws Exception {
-
System.clearProperty("security.headers.defaults.disabled");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithPlaceholder")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@Test
public void requestWhenUsingContentTypeOptionsThenDefaultsToNoSniff() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-Content-Type-Options");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithContentTypeOptions")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().string("X-Content-Type-Options", "nosniff")).andExpect(excludes(excludedHeaders));
}
@Test
public void requestWhenUsingFrameOptionsThenDefaultsToDeny() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-Frame-Options");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithFrameOptions")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(header().string("X-Frame-Options", "DENY"))
.andExpect(excludes(excludedHeaders));
}
@Test
public void requestWhenUsingFrameOptionsDenyThenRespondsWithDeny() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-Frame-Options");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithFrameOptionsDeny")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(header().string("X-Frame-Options", "DENY"))
.andExpect(excludes(excludedHeaders));
}
@Test
public void requestWhenUsingFrameOptionsSameOriginThenRespondsWithSameOrigin() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-Frame-Options");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithFrameOptionsSameOrigin")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().string("X-Frame-Options", "SAMEORIGIN")).andExpect(excludes(excludedHeaders));
}
@@ -249,12 +207,9 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingFrameOptionsAllowFromThenRespondsWithAllowFrom() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-Frame-Options");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithFrameOptionsAllowFrom")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().string("X-Frame-Options", "ALLOW-FROM https://example.org"))
.andExpect(excludes(excludedHeaders));
@@ -262,34 +217,26 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingFrameOptionsAllowFromWhitelistThenRespondsWithAllowFrom() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-Frame-Options");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithFrameOptionsAllowFromWhitelist")).autowire();
-
this.mvc.perform(get("/").param("from", "https://example.org")).andExpect(status().isOk())
.andExpect(header().string("X-Frame-Options", "ALLOW-FROM https://example.org"))
.andExpect(excludes(excludedHeaders));
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(header().string("X-Frame-Options", "DENY"))
.andExpect(excludes(excludedHeaders));
}
@Test
public void requestWhenUsingCustomHeaderThenRespondsWithThatHeader() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithCustomHeader")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(header().string("a", "b"))
.andExpect(header().string("c", "d")).andExpect(excludesDefaults());
}
@Test
public void requestWhenUsingCustomHeaderWriterThenRespondsWithThatHeader() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithCustomHeaderWriter")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(header().string("abc", "def"))
.andExpect(excludesDefaults());
}
@@ -309,36 +256,27 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingXssProtectionThenDefaultsToModeBlock() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-XSS-Protection");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithXssProtection")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().string("X-XSS-Protection", "1; mode=block")).andExpect(excludes(excludedHeaders));
}
@Test
public void requestWhenEnablingXssProtectionThenDefaultsToModeBlock() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-XSS-Protection");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithXssProtectionEnabled")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().string("X-XSS-Protection", "1; mode=block")).andExpect(excludes(excludedHeaders));
}
@Test
public void requestWhenDisablingXssProtectionThenDefaultsToZero() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("X-XSS-Protection");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithXssProtectionDisabled")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(header().string("X-XSS-Protection", "0"))
.andExpect(excludes(excludedHeaders));
}
@@ -353,24 +291,18 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingCacheControlThenRespondsWithCorrespondingHeaders() throws Exception {
-
Map includedHeaders = ImmutableMap.builder()
.put("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate").put("Expires", "0")
.put("Pragma", "no-cache").build();
-
this.spring.configLocations(this.xml("DefaultsDisabledWithCacheControl")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(includes(includedHeaders));
}
@Test
public void requestWhenUsingHstsThenRespondsWithHstsHeader() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("Strict-Transport-Security");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithHsts")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk())
.andExpect(header().string("Strict-Transport-Security", "max-age=31536000 ; includeSubDomains"))
.andExpect(excludes(excludedHeaders));
@@ -378,20 +310,15 @@ public class HttpHeadersConfigTests {
@Test
public void insecureRequestWhenUsingHstsThenExcludesHstsHeader() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithHsts")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(excludesDefaults());
}
@Test
public void insecureRequestWhenUsingCustomHstsRequestMatcherThenIncludesHstsHeader() throws Exception {
-
Set excludedHeaders = new HashSet<>(defaultHeaders.keySet());
excludedHeaders.remove("Strict-Transport-Security");
-
this.spring.configLocations(this.xml("DefaultsDisabledWithCustomHstsRequestMatcher")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().string("Strict-Transport-Security", "max-age=1"))
.andExpect(excludes(excludedHeaders));
@@ -414,7 +341,6 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingHpkpThenIncludesHpkpHeader() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkp")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk())
.andExpect(header().string("Public-Key-Pins-Report-Only",
"max-age=5184000 ; pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\""))
@@ -424,7 +350,6 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingHpkpDefaultsThenIncludesHpkpHeaderUsingSha256() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkpDefaults")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk())
.andExpect(header().string("Public-Key-Pins-Report-Only",
"max-age=5184000 ; pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\""))
@@ -434,7 +359,6 @@ public class HttpHeadersConfigTests {
@Test
public void insecureRequestWhenUsingHpkpThenExcludesHpkpHeader() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkpDefaults")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk())
.andExpect(header().doesNotExist("Public-Key-Pins-Report-Only")).andExpect(excludesDefaults());
}
@@ -442,7 +366,6 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingHpkpCustomMaxAgeThenIncludesHpkpHeaderAccordingly() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkpMaxAge")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk())
.andExpect(header().string("Public-Key-Pins-Report-Only",
"max-age=604800 ; pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\""))
@@ -452,7 +375,6 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingHpkpReportThenIncludesHpkpHeaderAccordingly() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkpReport")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk())
.andExpect(header().string("Public-Key-Pins",
"max-age=5184000 ; pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\""))
@@ -462,7 +384,6 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingHpkpIncludeSubdomainsThenIncludesHpkpHeaderAccordingly() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkpIncludeSubdomains")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(header().string(
"Public-Key-Pins-Report-Only",
"max-age=5184000 ; pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\" ; includeSubDomains"))
@@ -472,7 +393,6 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenUsingHpkpReportUriThenIncludesHpkpHeaderAccordingly() throws Exception {
this.spring.configLocations(this.xml("DefaultsDisabledWithHpkpReportUri")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(header().string(
"Public-Key-Pins-Report-Only",
"max-age=5184000 ; pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\" ; report-uri=\"https://example.net/pkp-report\""))
@@ -481,68 +401,51 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenCacheControlDisabledThenExcludesHeader() throws Exception {
-
Collection cacheControl = Arrays.asList("Cache-Control", "Expires", "Pragma");
Map allButCacheControl = remove(defaultHeaders, cacheControl);
-
this.spring.configLocations(this.xml("CacheControlDisabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(allButCacheControl))
.andExpect(excludes(cacheControl));
}
@Test
public void requestWhenContentTypeOptionsDisabledThenExcludesHeader() throws Exception {
-
Collection contentTypeOptions = Arrays.asList("X-Content-Type-Options");
Map allButContentTypeOptions = remove(defaultHeaders, contentTypeOptions);
-
this.spring.configLocations(this.xml("ContentTypeOptionsDisabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(allButContentTypeOptions))
.andExpect(excludes(contentTypeOptions));
}
@Test
public void requestWhenHstsDisabledThenExcludesHeader() throws Exception {
-
Collection hsts = Arrays.asList("Strict-Transport-Security");
Map allButHsts = remove(defaultHeaders, hsts);
-
this.spring.configLocations(this.xml("HstsDisabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(allButHsts))
.andExpect(excludes(hsts));
}
@Test
public void requestWhenHpkpDisabledThenExcludesHeader() throws Exception {
-
this.spring.configLocations(this.xml("HpkpDisabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includesDefaults());
}
@Test
public void requestWhenFrameOptionsDisabledThenExcludesHeader() throws Exception {
-
Collection frameOptions = Arrays.asList("X-Frame-Options");
Map allButFrameOptions = remove(defaultHeaders, frameOptions);
-
this.spring.configLocations(this.xml("FrameOptionsDisabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(allButFrameOptions))
.andExpect(excludes(frameOptions));
}
@Test
public void requestWhenXssProtectionDisabledThenExcludesHeader() throws Exception {
-
Collection xssProtection = Arrays.asList("X-XSS-Protection");
Map allButXssProtection = remove(defaultHeaders, xssProtection);
-
this.spring.configLocations(this.xml("XssProtectionDisabled")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(allButXssProtection))
.andExpect(excludes(xssProtection));
}
@@ -589,29 +492,22 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenContentSecurityPolicyDirectivesConfiguredThenIncludesDirectives() throws Exception {
-
Map includedHeaders = new HashMap<>(defaultHeaders);
includedHeaders.put("Content-Security-Policy", "default-src 'self'");
-
this.spring.configLocations(this.xml("ContentSecurityPolicyWithPolicyDirectives")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(includedHeaders));
}
@Test
public void requestWhenHeadersDisabledAndContentSecurityPolicyConfiguredThenExcludesHeader() throws Exception {
-
this.spring.configLocations(this.xml("HeadersDisabledWithContentSecurityPolicy")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(excludesDefaults())
.andExpect(excludes("Content-Security-Policy"));
}
@Test
public void requestWhenDefaultsDisabledAndContentSecurityPolicyConfiguredThenIncludesHeader() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithContentSecurityPolicy")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(excludesDefaults())
.andExpect(header().string("Content-Security-Policy", "default-src 'self'"));
}
@@ -626,30 +522,23 @@ public class HttpHeadersConfigTests {
@Test
public void requestWhenContentSecurityPolicyConfiguredWithReportOnlyThenIncludesReportOnlyHeader()
throws Exception {
-
Map includedHeaders = new HashMap<>(defaultHeaders);
includedHeaders.put("Content-Security-Policy-Report-Only",
"default-src https:; report-uri https://example.org/");
-
this.spring.configLocations(this.xml("ContentSecurityPolicyWithReportOnly")).autowire();
-
this.mvc.perform(get("/").secure(true)).andExpect(status().isOk()).andExpect(includes(includedHeaders));
}
@Test
public void requestWhenReferrerPolicyConfiguredThenResponseDefaultsToNoReferrer() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithReferrerPolicy")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(excludesDefaults())
.andExpect(header().string("Referrer-Policy", "no-referrer"));
}
@Test
public void requestWhenReferrerPolicyConfiguredWithSameOriginThenRespondsWithSameOrigin() throws Exception {
-
this.spring.configLocations(this.xml("DefaultsDisabledWithReferrerPolicySameOrigin")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(excludesDefaults())
.andExpect(header().string("Referrer-Policy", "same-origin"));
}
@@ -684,11 +573,9 @@ public class HttpHeadersConfigTests {
private static Map remove(Map map, Collection keys) {
Map copy = new HashMap<>(map);
-
for (K key : keys) {
copy.remove(key);
}
-
return copy;
}
diff --git a/config/src/test/java/org/springframework/security/config/http/HttpInterceptUrlTests.java b/config/src/test/java/org/springframework/security/config/http/HttpInterceptUrlTests.java
index 614c072d60..671a392dae 100644
--- a/config/src/test/java/org/springframework/security/config/http/HttpInterceptUrlTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/HttpInterceptUrlTests.java
@@ -48,11 +48,8 @@ public class HttpInterceptUrlTests {
@Test
public void interceptUrlWhenRequestMatcherRefThenWorks() throws Exception {
loadConfig("interceptUrlWhenRequestMatcherRefThenWorks.xml");
-
this.mockMvc.perform(get("/foo")).andExpect(status().isUnauthorized());
-
this.mockMvc.perform(get("/FOO")).andExpect(status().isUnauthorized());
-
this.mockMvc.perform(get("/other")).andExpect(status().isOk());
}
@@ -65,9 +62,7 @@ public class HttpInterceptUrlTests {
context.setServletContext(new MockServletContext());
context.refresh();
this.context = context;
-
context.getAutowireCapableBeanFactory().autowireBean(this);
-
Filter springSecurityFilterChain = context.getBean("springSecurityFilterChain", Filter.class);
this.mockMvc = MockMvcBuilders.standaloneSetup(new FooController()).addFilters(springSecurityFilterChain)
.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 07b4708f9e..1b7d40c339 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
@@ -64,11 +64,8 @@ public class InterceptUrlConfigTests {
*/
@Test
public void requestWhenMethodIsSpecifiedThenItIsNotGivenPriority() throws Exception {
-
this.spring.configLocations(this.xml("Sec2256")).autowire();
-
this.mvc.perform(post("/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
}
@@ -77,24 +74,16 @@ public class InterceptUrlConfigTests {
*/
@Test
public void requestWhenUsingPatchThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("PatchMethod")).autowire();
-
this.mvc.perform(get("/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(patch("/path").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
this.mvc.perform(patch("/path").with(httpBasic("admin", "password"))).andExpect(status().isOk());
-
}
@Test
public void requestWhenUsingHasAnyRoleThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("HasAnyRole")).autowire();
-
this.mvc.perform(get("/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/path").with(httpBasic("admin", "password"))).andExpect(status().isForbidden());
}
@@ -103,14 +92,10 @@ public class InterceptUrlConfigTests {
*/
@Test
public void requestWhenUsingPathVariablesThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("PathVariables")).autowire();
-
this.mvc.perform(get("/path/user/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/path/otheruser/path").with(httpBasic("user", "password")))
.andExpect(status().isForbidden());
-
this.mvc.perform(get("/path").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
}
@@ -119,14 +104,10 @@ public class InterceptUrlConfigTests {
*/
@Test
public void requestWhenUsingCamelCasePathVariablesThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("CamelCasePathVariables")).autowire();
-
this.mvc.perform(get("/path/user/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/path/otheruser/path").with(httpBasic("user", "password")))
.andExpect(status().isForbidden());
-
this.mvc.perform(get("/PATH/user/path").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
}
@@ -135,55 +116,37 @@ public class InterceptUrlConfigTests {
*/
@Test
public void requestWhenUsingPathVariablesAndTypeConversionThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("TypeConversionPathVariables")).autowire();
-
this.mvc.perform(get("/path/1/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/path/2/path").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
}
@Test
public void requestWhenUsingMvcMatchersThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("MvcMatchers")).autowire();
-
this.mvc.perform(get("/path")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/path.html")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/path/")).andExpect(status().isUnauthorized());
}
@Test
public void requestWhenUsingMvcMatchersAndPathVariablesThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("MvcMatchersPathVariables")).autowire();
-
this.mvc.perform(get("/path/user/path").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/path/otheruser/path").with(httpBasic("user", "password")))
.andExpect(status().isForbidden());
-
this.mvc.perform(get("/PATH/user/path").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
}
@Test
public void requestWhenUsingMvcMatchersAndServletPathThenAuthorizesRequestsAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("MvcMatchersServletPath")).autowire();
-
MockServletContext servletContext = mockServletContext("/spring");
ConfigurableWebApplicationContext context = this.spring.getContext();
context.setServletContext(servletContext);
-
this.mvc.perform(get("/spring/path").servletPath("/spring")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/spring/path.html").servletPath("/spring")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/spring/path/").servletPath("/spring")).andExpect(status().isUnauthorized());
-
}
@Test
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 56c9106964..1438a39056 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
@@ -161,41 +161,29 @@ public class MiscHttpConfigTests {
@Test
public void requestWhenUsingDebugFilterAndPatternIsNotConfigureForSecurityThenRespondsOk() throws Exception {
-
this.spring.configLocations(xml("NoSecurityForPattern")).autowire();
-
this.mvc.perform(get("/unprotected")).andExpect(status().isNotFound());
-
this.mvc.perform(get("/nomatch")).andExpect(status().isNotFound());
}
@Test
public void requestWhenHttpPatternUsesRegexMatchingThenMatchesAccordingly() throws Exception {
-
this.spring.configLocations(xml("RegexSecurityPattern")).autowire();
-
this.mvc.perform(get("/protected")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/unprotected")).andExpect(status().isNotFound());
}
@Test
public void requestWhenHttpPatternUsesCiRegexMatchingThenMatchesAccordingly() throws Exception {
-
this.spring.configLocations(xml("CiRegexSecurityPattern")).autowire();
-
this.mvc.perform(get("/ProTectEd")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/UnProTectEd")).andExpect(status().isNotFound());
}
@Test
public void requestWhenHttpPatternUsesCustomRequestMatcherThenMatchesAccordingly() throws Exception {
-
this.spring.configLocations(xml("CustomRequestMatcher")).autowire();
-
this.mvc.perform(get("/protected")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/unprotected")).andExpect(status().isNotFound());
}
@@ -204,94 +192,64 @@ public class MiscHttpConfigTests {
*/
@Test
public void requestWhenUsingMinimalConfigurationThenHonorsAnonymousEndpoints() throws Exception {
-
this.spring.configLocations(xml("AnonymousEndpoints")).autowire();
-
this.mvc.perform(get("/protected")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/unprotected")).andExpect(status().isNotFound());
-
assertThat(getFilter(AnonymousAuthenticationFilter.class)).isNotNull();
}
@Test
public void requestWhenAnonymousIsDisabledThenRejectsAnonymousEndpoints() throws Exception {
-
this.spring.configLocations(xml("AnonymousDisabled")).autowire();
-
this.mvc.perform(get("/protected")).andExpect(status().isUnauthorized());
-
this.mvc.perform(get("/unprotected")).andExpect(status().isUnauthorized());
-
assertThat(getFilter(AnonymousAuthenticationFilter.class)).isNull();
}
@Test
public void requestWhenAnonymousUsesCustomAttributesThenRespondsWithThoseAttributes() throws Exception {
-
this.spring.configLocations(xml("AnonymousCustomAttributes")).autowire();
-
this.mvc.perform(get("/protected").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
this.mvc.perform(get("/protected")).andExpect(status().isOk()).andExpect(content().string("josh"));
-
this.mvc.perform(get("/customKey")).andExpect(status().isOk())
.andExpect(content().string(String.valueOf("myCustomKey".hashCode())));
}
@Test
public void requestWhenAnonymousUsesMultipleGrantedAuthoritiesThenRespondsWithThoseAttributes() throws Exception {
-
this.spring.configLocations(xml("AnonymousMultipleAuthorities")).autowire();
-
this.mvc.perform(get("/protected").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
this.mvc.perform(get("/protected")).andExpect(status().isOk()).andExpect(content().string("josh"));
-
this.mvc.perform(get("/customKey")).andExpect(status().isOk())
.andExpect(content().string(String.valueOf("myCustomKey".hashCode())));
}
@Test
public void requestWhenInterceptUrlMatchesMethodThenSecuresAccordingly() throws Exception {
-
this.spring.configLocations(xml("InterceptUrlMethod")).autowire();
-
this.mvc.perform(get("/protected").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(post("/protected").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
this.mvc.perform(post("/protected").with(httpBasic("poster", "password"))).andExpect(status().isOk());
-
this.mvc.perform(delete("/protected").with(httpBasic("poster", "password"))).andExpect(status().isForbidden());
-
this.mvc.perform(delete("/protected").with(httpBasic("admin", "password"))).andExpect(status().isOk());
}
@Test
public void requestWhenInterceptUrlMatchesMethodAndRequiresHttpsThenSecuresAccordingly() throws Exception {
-
this.spring.configLocations(xml("InterceptUrlMethodRequiresHttps")).autowire();
-
this.mvc.perform(post("/protected").with(csrf())).andExpect(status().isOk());
-
this.mvc.perform(get("/protected").secure(true).with(httpBasic("user", "password")))
.andExpect(status().isForbidden());
-
this.mvc.perform(get("/protected").secure(true).with(httpBasic("admin", "password")))
.andExpect(status().isOk());
}
@Test
public void requestWhenInterceptUrlMatchesAnyPatternAndRequiresHttpsThenSecuresAccordingly() throws Exception {
-
this.spring.configLocations(xml("InterceptUrlMethodRequiresHttpsAny")).autowire();
-
this.mvc.perform(post("/protected").with(csrf())).andExpect(status().isOk());
-
this.mvc.perform(get("/protected").secure(true).with(httpBasic("user", "password")))
.andExpect(status().isForbidden());
-
this.mvc.perform(get("/protected").secure(true).with(httpBasic("admin", "password")))
.andExpect(status().isOk());
}
@@ -299,20 +257,15 @@ public class MiscHttpConfigTests {
@Test
public void configureWhenOncePerRequestIsFalseThenFilterSecurityInterceptorExercisedForForwards() {
this.spring.configLocations(xml("OncePerRequest")).autowire();
-
FilterSecurityInterceptor filterSecurityInterceptor = getFilter(FilterSecurityInterceptor.class);
assertThat(filterSecurityInterceptor.isObserveOncePerRequest()).isFalse();
}
@Test
public void requestWhenCustomHttpBasicEntryPointRefThenInvokesOnCommence() throws Exception {
-
this.spring.configLocations(xml("CustomHttpBasicEntryPointRef")).autowire();
-
AuthenticationEntryPoint entryPoint = this.spring.getContext().getBean(AuthenticationEntryPoint.class);
-
this.mvc.perform(get("/protected")).andExpect(status().isOk());
-
verify(entryPoint).commence(any(HttpServletRequest.class), any(HttpServletResponse.class),
any(AuthenticationException.class));
}
@@ -326,7 +279,6 @@ public class MiscHttpConfigTests {
@Test
public void getWhenPortsMappedThenRedirectedAccordingly() throws Exception {
this.spring.configLocations(xml("PortsMappedInterceptUrlMethodRequiresAny")).autowire();
-
this.mvc.perform(get("http://localhost:9080/protected"))
.andExpect(redirectedUrl("https://localhost:9443/protected"));
}
@@ -335,11 +287,8 @@ public class MiscHttpConfigTests {
public void configureWhenCustomFiltersThenAddedToChainInCorrectOrder() {
System.setProperty("customFilterRef", "userFilter");
this.spring.configLocations(xml("CustomFilters")).autowire();
-
List filters = getFilters("/");
-
Class> userFilterClass = this.spring.getContext().getBean("userFilter").getClass();
-
assertThat(filters).extracting((Extractor>) (filter) -> filter.getClass()).containsSubsequence(
userFilterClass, userFilterClass, SecurityContextPersistenceFilter.class, LogoutFilter.class,
userFilterClass);
@@ -354,7 +303,6 @@ public class MiscHttpConfigTests {
@Test
public void configureWhenUsingX509ThenAddsX509FilterCorrectly() {
this.spring.configLocations(xml("X509")).autowire();
-
assertThat(getFilters("/")).extracting((Extractor>) (filter) -> filter.getClass())
.containsSubsequence(CsrfFilter.class, X509AuthenticationFilter.class,
ExceptionTranslationFilter.class);
@@ -364,7 +312,6 @@ public class MiscHttpConfigTests {
public void getWhenUsingX509AndPropertyPlaceholderThenSubjectPrincipalRegexIsConfigured() throws Exception {
System.setProperty("subject_principal_regex", "OU=(.*?)(?:,|$)");
this.spring.configLocations(xml("X509")).autowire();
-
this.mvc.perform(get("/protected")
.with(x509("classpath:org/springframework/security/config/http/MiscHttpConfigTests-certificate.pem")))
.andExpect(status().isOk());
@@ -379,9 +326,7 @@ public class MiscHttpConfigTests {
@Test
public void logoutWhenSpecifyingCookiesToDeleteThenSetCookieAdded() throws Exception {
this.spring.configLocations(xml("DeleteCookies")).autowire();
-
MvcResult result = this.mvc.perform(post("/logout").with(csrf())).andReturn();
-
List values = result.getResponse().getHeaders("Set-Cookie");
assertThat(values.size()).isEqualTo(2);
assertThat(values).extracting((value) -> value.split("=")[0]).contains("JSESSIONID", "mycookie");
@@ -390,29 +335,22 @@ public class MiscHttpConfigTests {
@Test
public void logoutWhenSpecifyingSuccessHandlerRefThenResponseHandledAccordingly() throws Exception {
this.spring.configLocations(xml("LogoutSuccessHandlerRef")).autowire();
-
this.mvc.perform(post("/logout").with(csrf())).andExpect(redirectedUrl("/logoutSuccessEndpoint"));
}
@Test
public void getWhenUnauthenticatedThenUsesConfiguredRequestCache() throws Exception {
this.spring.configLocations(xml("RequestCache")).autowire();
-
RequestCache requestCache = this.spring.getContext().getBean(RequestCache.class);
-
this.mvc.perform(get("/"));
-
verify(requestCache).saveRequest(any(HttpServletRequest.class), any(HttpServletResponse.class));
}
@Test
public void getWhenUnauthenticatedThenUsesConfiguredAuthenticationEntryPoint() throws Exception {
this.spring.configLocations(xml("EntryPoint")).autowire();
-
AuthenticationEntryPoint entryPoint = this.spring.getContext().getBean(AuthenticationEntryPoint.class);
-
this.mvc.perform(get("/"));
-
verify(entryPoint).commence(any(HttpServletRequest.class), any(HttpServletResponse.class),
any(AuthenticationException.class));
}
@@ -426,38 +364,29 @@ public class MiscHttpConfigTests {
@Test
public void configureWhenUsingCustomUserDetailsServiceThenBeanPostProcessorsAreStillApplied() {
this.spring.configLocations(xml("Sec750")).autowire();
-
BeanNameCollectingPostProcessor postProcessor = this.spring.getContext()
.getBean(BeanNameCollectingPostProcessor.class);
-
assertThat(postProcessor.getBeforeInitPostProcessedBeans()).contains("authenticationProvider", "userService");
assertThat(postProcessor.getAfterInitPostProcessedBeans()).contains("authenticationProvider", "userService");
-
}
/* SEC-934 */
@Test
public void getWhenUsingTwoIdenticalInterceptUrlsThenTheSecondTakesPrecedence() throws Exception {
this.spring.configLocations(xml("Sec934")).autowire();
-
this.mvc.perform(get("/protected").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/protected").with(httpBasic("admin", "password"))).andExpect(status().isForbidden());
}
@Test
public void getWhenAuthenticatingThenConsultsCustomSecurityContextRepository() throws Exception {
this.spring.configLocations(xml("SecurityContextRepository")).autowire();
-
SecurityContextRepository repository = this.spring.getContext().getBean(SecurityContextRepository.class);
SecurityContext context = new SecurityContextImpl(new TestingAuthenticationToken("user", "password"));
given(repository.loadContext(any(HttpRequestResponseHolder.class))).willReturn(context);
-
MvcResult result = this.mvc.perform(get("/protected").with(httpBasic("user", "password")))
.andExpect(status().isOk()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNotNull();
-
verify(repository, atLeastOnce()).saveContext(any(SecurityContext.class), any(HttpServletRequest.class),
any(HttpServletResponse.class));
}
@@ -465,25 +394,18 @@ public class MiscHttpConfigTests {
@Test
public void getWhenUsingInterceptUrlExpressionsThenAuthorizesAccordingly() throws Exception {
this.spring.configLocations(xml("InterceptUrlExpressions")).autowire();
-
this.mvc.perform(get("/protected").with(httpBasic("admin", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/protected").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
this.mvc.perform(get("/unprotected").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
}
@Test
public void getWhenUsingCustomExpressionHandlerThenAuthorizesAccordingly() throws Exception {
this.spring.configLocations(xml("ExpressionHandler")).autowire();
-
PermissionEvaluator permissionEvaluator = this.spring.getContext().getBean(PermissionEvaluator.class);
given(permissionEvaluator.hasPermission(any(Authentication.class), any(Object.class), any(Object.class)))
.willReturn(false);
-
this.mvc.perform(get("/").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
-
verify(permissionEvaluator).hasPermission(any(Authentication.class), any(Object.class), any(Object.class));
}
@@ -491,26 +413,19 @@ public class MiscHttpConfigTests {
public void configureWhenProtectingLoginPageThenWarningLogged() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
redirectLogsTo(baos, DefaultFilterChainValidator.class);
-
this.spring.configLocations(xml("ProtectedLoginPage")).autowire();
-
assertThat(baos.toString()).contains("[WARN]");
}
@Test
public void configureWhenUsingDisableUrlRewritingThenRedirectIsNotEncodedByResponse()
throws IOException, ServletException {
-
this.spring.configLocations(xml("DisableUrlRewriting")).autowire();
-
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
MockHttpServletResponse response = new MockHttpServletResponse();
-
FilterChainProxy proxy = this.spring.getContext().getBean(FilterChainProxy.class);
-
proxy.doFilter(request, new EncodeUrlDenyingHttpServletResponseWrapper(response), (req, resp) -> {
});
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(response.getRedirectedUrl()).isEqualTo("http://localhost/login");
}
@@ -520,11 +435,9 @@ public class MiscHttpConfigTests {
assertThatCode(
() -> this.spring.configLocations(MiscHttpConfigTests.xml("MissingUserDetailsService")).autowire())
.isInstanceOf(BeansException.class);
-
try (XmlWebApplicationContext parent = new XmlWebApplicationContext()) {
parent.setConfigLocations(MiscHttpConfigTests.xml("AutoConfig"));
parent.refresh();
-
try (XmlWebApplicationContext child = new XmlWebApplicationContext()) {
child.setParent(parent);
child.setConfigLocation(MiscHttpConfigTests.xml("MissingUserDetailsService"));
@@ -536,9 +449,7 @@ public class MiscHttpConfigTests {
@Test
public void loginWhenConfiguredWithNoInternalAuthenticationProvidersThenSuccessfullyAuthenticates()
throws Exception {
-
this.spring.configLocations(xml("NoInternalAuthenticationProviders")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password"))
.andExpect(redirectedUrl("/"));
}
@@ -546,16 +457,13 @@ public class MiscHttpConfigTests {
@Test
public void loginWhenUsingDefaultsThenErasesCredentialsAfterAuthentication() throws Exception {
this.spring.configLocations(xml("HttpBasic")).autowire();
-
this.mvc.perform(get("/password").with(httpBasic("user", "password"))).andExpect(content().string(""));
}
@Test
public void loginWhenAuthenticationManagerConfiguredToEraseCredentialsThenErasesCredentialsAfterAuthentication()
throws Exception {
-
this.spring.configLocations(xml("AuthenticationManagerEraseCredentials")).autowire();
-
this.mvc.perform(get("/password").with(httpBasic("user", "password"))).andExpect(content().string(""));
}
@@ -565,28 +473,22 @@ public class MiscHttpConfigTests {
@Test
public void loginWhenAuthenticationManagerRefConfiguredToKeepCredentialsThenKeepsCredentialsAfterAuthentication()
throws Exception {
-
this.spring.configLocations(xml("AuthenticationManagerRefKeepCredentials")).autowire();
-
this.mvc.perform(get("/password").with(httpBasic("user", "password"))).andExpect(content().string("password"));
}
@Test
public void loginWhenAuthenticationManagerRefIsNotAProviderManagerThenKeepsCredentialsAccordingly()
throws Exception {
-
this.spring.configLocations(xml("AuthenticationManagerRefNotProviderManager")).autowire();
-
this.mvc.perform(get("/password").with(httpBasic("user", "password"))).andExpect(content().string("password"));
}
@Test
public void loginWhenJeeFilterThenExtractsRoles() throws Exception {
this.spring.configLocations(xml("JeeFilter")).autowire();
-
Principal user = mock(Principal.class);
given(user.getName()).willReturn("joe");
-
this.mvc.perform(get("/roles").principal(user).with((request) -> {
request.addUserRole("admin");
request.addUserRole("user");
@@ -598,26 +500,19 @@ public class MiscHttpConfigTests {
@Test
public void loginWhenUsingCustomAuthenticationDetailsSourceRefThenAuthenticationSourcesDetailsAccordingly()
throws Exception {
-
this.spring.configLocations(xml("CustomAuthenticationDetailsSourceRef")).autowire();
-
Object details = mock(Object.class);
AuthenticationDetailsSource source = this.spring.getContext().getBean(AuthenticationDetailsSource.class);
given(source.buildDetails(any(Object.class))).willReturn(details);
-
this.mvc.perform(get("/details").with(httpBasic("user", "password")))
.andExpect(content().string(details.getClass().getName()));
-
this.mvc.perform(get("/details")
.with(x509("classpath:org/springframework/security/config/http/MiscHttpConfigTests-certificate.pem")))
.andExpect(content().string(details.getClass().getName()));
-
MockHttpSession session = (MockHttpSession) this.mvc
.perform(post("/login").param("username", "user").param("password", "password").with(csrf()))
.andReturn().getRequest().getSession(false);
-
this.mvc.perform(get("/details").session(session)).andExpect(content().string(details.getClass().getName()));
-
assertThat(ReflectionTestUtils.getField(getFilter(OpenIDAuthenticationFilter.class),
"authenticationDetailsSource")).isEqualTo(source);
}
@@ -625,29 +520,24 @@ public class MiscHttpConfigTests {
@Test
public void loginWhenUsingJaasApiProvisionThenJaasSubjectContainsUsername() throws Exception {
this.spring.configLocations(xml("Jaas")).autowire();
-
AuthorityGranter granter = this.spring.getContext().getBean(AuthorityGranter.class);
given(granter.grant(any(Principal.class))).willReturn(new HashSet<>(Arrays.asList("USER")));
-
this.mvc.perform(get("/username").with(httpBasic("user", "password"))).andExpect(content().string("user"));
}
@Test
public void getWhenUsingCustomHttpFirewallThenFirewallIsInvoked() throws Exception {
this.spring.configLocations(xml("HttpFirewall")).autowire();
-
FirewalledRequest request = new FirewalledRequest(new MockHttpServletRequest()) {
@Override
public void reset() {
}
};
HttpServletResponse response = new MockHttpServletResponse();
-
HttpFirewall firewall = this.spring.getContext().getBean(HttpFirewall.class);
given(firewall.getFirewalledRequest(any(HttpServletRequest.class))).willReturn(request);
given(firewall.getFirewalledResponse(any(HttpServletResponse.class))).willReturn(response);
this.mvc.perform(get("/unprotected"));
-
verify(firewall).getFirewalledRequest(any(HttpServletRequest.class));
verify(firewall).getFirewalledResponse(any(HttpServletResponse.class));
}
@@ -655,22 +545,18 @@ public class MiscHttpConfigTests {
@Test
public void getWhenUsingCustomRequestRejectedHandlerThenRequestRejectedHandlerIsInvoked() throws Exception {
this.spring.configLocations(xml("RequestRejectedHandler")).autowire();
-
HttpServletResponse response = new MockHttpServletResponse();
-
RequestRejectedException rejected = new RequestRejectedException("failed");
HttpFirewall firewall = this.spring.getContext().getBean(HttpFirewall.class);
RequestRejectedHandler requestRejectedHandler = this.spring.getContext().getBean(RequestRejectedHandler.class);
given(firewall.getFirewalledRequest(any(HttpServletRequest.class))).willThrow(rejected);
this.mvc.perform(get("/unprotected"));
-
verify(requestRejectedHandler).handle(any(), any(), any());
}
@Test
public void getWhenUsingCustomAccessDecisionManagerThenAuthorizesAccordingly() throws Exception {
this.spring.configLocations(xml("CustomAccessDecisionManager")).autowire();
-
this.mvc.perform(get("/unprotected").with(httpBasic("user", "password"))).andExpect(status().isForbidden());
}
@@ -680,16 +566,13 @@ public class MiscHttpConfigTests {
@Test
public void authenticateWhenUsingPortMapperThenRedirectsAppropriately() throws Exception {
this.spring.configLocations(xml("PortsMappedRequiresHttps")).autowire();
-
MockHttpSession session = (MockHttpSession) this.mvc.perform(get("https://localhost:9080/protected"))
.andExpect(redirectedUrl("https://localhost:9443/login")).andReturn().getRequest().getSession(false);
-
session = (MockHttpSession) this.mvc
.perform(post("/login").param("username", "user").param("password", "password").session(session)
.with(csrf()))
.andExpect(redirectedUrl("https://localhost:9443/protected")).andReturn().getRequest()
.getSession(false);
-
this.mvc.perform(get("http://localhost:9080/protected").session(session))
.andExpect(redirectedUrl("https://localhost:9443/protected"));
}
@@ -715,7 +598,6 @@ public class MiscHttpConfigTests {
private void assertThatFiltersMatchExpectedAutoConfigList(String url) {
Iterator filters = getFilters(url).iterator();
-
assertThat(filters.next()).isInstanceOf(SecurityContextPersistenceFilter.class);
assertThat(filters.next()).isInstanceOf(WebAsyncManagerIntegrationFilter.class);
assertThat(filters.next()).isInstanceOf(HeaderWriterFilter.class);
@@ -768,11 +650,9 @@ public class MiscHttpConfigTests {
@GetMapping("/customKey")
String customKey() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-
if (authentication != null && authentication instanceof AnonymousAuthenticationToken) {
return String.valueOf(((AnonymousAuthenticationToken) authentication).getKeyHash());
}
-
return null;
}
diff --git a/config/src/test/java/org/springframework/security/config/http/MultiHttpBlockConfigTests.java b/config/src/test/java/org/springframework/security/config/http/MultiHttpBlockConfigTests.java
index dd3fb990e3..4c19f1d5d2 100644
--- a/config/src/test/java/org/springframework/security/config/http/MultiHttpBlockConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/MultiHttpBlockConfigTests.java
@@ -52,12 +52,9 @@ public class MultiHttpBlockConfigTests {
@Test
public void requestWhenUsingMutuallyExclusiveHttpElementsThenIsRoutedAccordingly() throws Exception {
-
this.spring.configLocations(this.xml("DistinctHttpElements")).autowire();
-
this.mvc.perform(MockMvcRequestBuilders.get("/first").with(httpBasic("user", "password")))
.andExpect(status().isOk());
-
this.mvc.perform(post("/second/login").param("username", "user").param("password", "password").with(csrf()))
.andExpect(status().isFound()).andExpect(redirectedUrl("/"));
}
@@ -80,11 +77,8 @@ public class MultiHttpBlockConfigTests {
@Test
public void requestWhenTargettingAuthenticationManagersToCorrespondingHttpElementsThenAuthenticationProceeds()
throws Exception {
-
this.spring.configLocations(this.xml("Sec1937")).autowire();
-
this.mvc.perform(get("/first").with(httpBasic("first", "password")).with(csrf())).andExpect(status().isOk());
-
this.mvc.perform(post("/second/login").param("username", "second").param("password", "password").with(csrf()))
.andExpect(redirectedUrl("/"));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/NamespaceHttpBasicTests.java b/config/src/test/java/org/springframework/security/config/http/NamespaceHttpBasicTests.java
index 028ccf8f6a..166757825d 100644
--- a/config/src/test/java/org/springframework/security/config/http/NamespaceHttpBasicTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/NamespaceHttpBasicTests.java
@@ -88,12 +88,9 @@ public class NamespaceHttpBasicTests {
" ");
// @formatter:on
-
this.request.addHeader("Authorization",
"Basic " + Base64.getEncoder().encodeToString("user:test".getBytes("UTF-8")));
-
this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain);
-
assertThat(this.response.getStatus()).isEqualTo(HttpServletResponse.SC_OK);
}
@@ -108,9 +105,7 @@ public class NamespaceHttpBasicTests {
"\n" +
" ");
// @formatter:on
-
this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain);
-
assertThat(this.response.getStatus()).isEqualTo(HttpServletResponse.SC_UNAUTHORIZED);
assertThat(this.response.getHeader("WWW-Authenticate")).isEqualTo("Basic realm=\"Realm\"");
}
diff --git a/config/src/test/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserTests.java
index 0b0842641d..a6ade1e729 100644
--- a/config/src/test/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserTests.java
@@ -100,7 +100,6 @@ public class OAuth2ClientBeanDefinitionParserTests {
@Test
public void requestWhenAuthorizeThenRedirect() throws Exception {
this.spring.configLocations(xml("Minimal")).autowire();
-
MvcResult result = this.mvc.perform(get("/oauth2/authorization/google")).andExpect(status().is3xxRedirection())
.andReturn();
assertThat(result.getResponse().getRedirectedUrl()).matches(
@@ -111,58 +110,46 @@ public class OAuth2ClientBeanDefinitionParserTests {
@Test
public void requestWhenCustomClientRegistrationRepositoryThenCalled() throws Exception {
this.spring.configLocations(xml("CustomClientRegistrationRepository")).autowire();
-
ClientRegistration clientRegistration = CommonOAuth2Provider.GOOGLE.getBuilder("google")
.clientId("google-client-id").clientSecret("google-client-secret")
.redirectUri("http://localhost/callback/google").scope("scope1", "scope2").build();
given(this.clientRegistrationRepository.findByRegistrationId(any())).willReturn(clientRegistration);
-
MvcResult result = this.mvc.perform(get("/oauth2/authorization/google")).andExpect(status().is3xxRedirection())
.andReturn();
assertThat(result.getResponse().getRedirectedUrl()).matches(
"https://accounts.google.com/o/oauth2/v2/auth\\?" + "response_type=code&client_id=google-client-id&"
+ "scope=scope1%20scope2&state=.{15,}&redirect_uri=http://localhost/callback/google");
-
verify(this.clientRegistrationRepository).findByRegistrationId(any());
}
@Test
public void requestWhenCustomAuthorizationRequestResolverThenCalled() throws Exception {
this.spring.configLocations(xml("CustomConfiguration")).autowire();
-
ClientRegistration clientRegistration = this.clientRegistrationRepository.findByRegistrationId("google");
-
OAuth2AuthorizationRequest authorizationRequest = createAuthorizationRequest(clientRegistration);
given(this.authorizationRequestResolver.resolve(any())).willReturn(authorizationRequest);
-
this.mvc.perform(get("/oauth2/authorization/google")).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("https://accounts.google.com/o/oauth2/v2/auth?"
+ "response_type=code&client_id=google-client-id&"
+ "scope=scope1%20scope2&state=state&redirect_uri=http://localhost/callback/google"));
-
verify(this.authorizationRequestResolver).resolve(any());
}
@Test
public void requestWhenAuthorizationResponseMatchThenProcess() throws Exception {
this.spring.configLocations(xml("CustomConfiguration")).autowire();
-
ClientRegistration clientRegistration = this.clientRegistrationRepository.findByRegistrationId("google");
-
OAuth2AuthorizationRequest authorizationRequest = createAuthorizationRequest(clientRegistration);
given(this.authorizationRequestRepository.loadAuthorizationRequest(any())).willReturn(authorizationRequest);
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get(authorizationRequest.getRedirectUri()).params(params))
.andExpect(status().is3xxRedirection()).andExpect(redirectedUrl(authorizationRequest.getRedirectUri()));
-
ArgumentCaptor authorizedClientCaptor = ArgumentCaptor
.forClass(OAuth2AuthorizedClient.class);
verify(this.authorizedClientRepository).saveAuthorizedClient(authorizedClientCaptor.capture(), any(), any(),
@@ -176,23 +163,18 @@ public class OAuth2ClientBeanDefinitionParserTests {
@Test
public void requestWhenCustomAuthorizedClientServiceThenCalled() throws Exception {
this.spring.configLocations(xml("CustomAuthorizedClientService")).autowire();
-
ClientRegistration clientRegistration = this.clientRegistrationRepository.findByRegistrationId("google");
-
OAuth2AuthorizationRequest authorizationRequest = createAuthorizationRequest(clientRegistration);
given(this.authorizationRequestRepository.loadAuthorizationRequest(any())).willReturn(authorizationRequest);
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get(authorizationRequest.getRedirectUri()).params(params))
.andExpect(status().is3xxRedirection()).andExpect(redirectedUrl(authorizationRequest.getRedirectUri()));
-
verify(this.authorizedClientService).saveAuthorizedClient(any(), any());
}
@@ -200,13 +182,10 @@ public class OAuth2ClientBeanDefinitionParserTests {
@Test
public void requestWhenAuthorizedClientFoundThenMethodArgumentResolved() throws Exception {
this.spring.configLocations(xml("AuthorizedClientArgumentResolver")).autowire();
-
ClientRegistration clientRegistration = this.clientRegistrationRepository.findByRegistrationId("google");
-
OAuth2AuthorizedClient authorizedClient = new OAuth2AuthorizedClient(clientRegistration, "user",
TestOAuth2AccessTokens.noScopes());
given(this.authorizedClientRepository.loadAuthorizedClient(any(), any(), any())).willReturn(authorizedClient);
-
this.mvc.perform(get("/authorized-client")).andExpect(status().isOk()).andExpect(content().string("resolved"));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParserTests.java
index 190fd7e704..50e77f770c 100644
--- a/config/src/test/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParserTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParserTests.java
@@ -144,9 +144,7 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestLoginWhenMultiClientRegistrationThenReturnLoginPageWithClients() throws Exception {
this.spring.configLocations(this.xml("MultiClientRegistration")).autowire();
-
MvcResult result = this.mvc.perform(get("/login")).andExpect(status().is2xxSuccessful()).andReturn();
-
assertThat(result.getResponse().getContentAsString())
.contains("Google");
assertThat(result.getResponse().getContentAsString())
@@ -157,10 +155,8 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenSingleClientRegistrationThenAutoRedirect() throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("http://localhost/oauth2/authorization/google-login"));
-
verify(this.requestCache).saveRequest(any(), any());
}
@@ -169,7 +165,6 @@ public class OAuth2LoginBeanDefinitionParserTests {
public void requestWhenSingleClientRegistrationAndRequestFaviconNotAuthenticatedThenRedirectDefaultLoginPage()
throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration")).autowire();
-
this.mvc.perform(get("/favicon.ico").accept(new MediaType("image", "*"))).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("http://localhost/login"));
}
@@ -179,7 +174,6 @@ public class OAuth2LoginBeanDefinitionParserTests {
public void requestWhenSingleClientRegistrationAndRequestXHRNotAuthenticatedThenDoesNotRedirectForAuthorization()
throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration")).autowire();
-
this.mvc.perform(get("/").header("X-Requested-With", "XMLHttpRequest")).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("http://localhost/login"));
}
@@ -188,12 +182,10 @@ public class OAuth2LoginBeanDefinitionParserTests {
public void requestWhenAuthorizationRequestNotFoundThenThrowAuthenticationException() throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration-WithCustomAuthenticationFailureHandler"))
.autowire();
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", "state123");
this.mvc.perform(get("/login/oauth2/code/google").params(params));
-
ArgumentCaptor exceptionCaptor = ArgumentCaptor
.forClass(AuthenticationException.class);
verify(this.authenticationFailureHandler).onAuthenticationFailure(any(), any(), exceptionCaptor.capture());
@@ -206,25 +198,20 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenAuthorizationResponseValidThenAuthenticate() throws Exception {
this.spring.configLocations(this.xml("MultiClientRegistration-WithCustomConfiguration")).autowire();
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, "github-login");
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/github-login").params(params)).andExpect(status().is2xxSuccessful());
-
ArgumentCaptor authenticationCaptor = ArgumentCaptor.forClass(Authentication.class);
verify(this.authenticationSuccessHandler).onAuthenticationSuccess(any(), any(), authenticationCaptor.capture());
Authentication authentication = authenticationCaptor.getValue();
@@ -235,25 +222,20 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenAuthorizationResponseValidThenAuthenticationSuccessEventPublished() throws Exception {
this.spring.configLocations(this.xml("MultiClientRegistration-WithCustomConfiguration")).autowire();
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, "github-login");
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/github-login").params(params));
-
verify(this.authenticationSuccessListener).onApplicationEvent(any(AuthenticationSuccessEvent.class));
}
@@ -261,27 +243,22 @@ public class OAuth2LoginBeanDefinitionParserTests {
public void requestWhenOidcAuthenticationResponseValidThenJwtDecoderFactoryCalled() throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration-WithJwtDecoderFactoryAndDefaultSuccessHandler"))
.autowire();
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, "google-login");
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.oidcRequest()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.oidcAccessTokenResponse()
.build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
Jwt jwt = TestJwts.user();
given(this.jwtDecoderFactory.createDecoder(any())).willReturn((token) -> jwt);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/google-login").params(params)).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("/"));
-
verify(this.jwtDecoderFactory).createDecoder(any());
verify(this.requestCache).getRequest(any(), any());
}
@@ -290,28 +267,22 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenCustomGrantedAuthoritiesMapperThenCalled() throws Exception {
this.spring.configLocations(this.xml("MultiClientRegistration-WithCustomGrantedAuthorities")).autowire();
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, "github-login");
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
given(this.userAuthoritiesMapper.mapAuthorities(any()))
.willReturn((Collection) AuthorityUtils.createAuthorityList("ROLE_OAUTH2_USER"));
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/github-login").params(params)).andExpect(status().is2xxSuccessful());
-
ArgumentCaptor authenticationCaptor = ArgumentCaptor.forClass(Authentication.class);
verify(this.authenticationSuccessHandler).onAuthenticationSuccess(any(), any(), authenticationCaptor.capture());
Authentication authentication = authenticationCaptor.getValue();
@@ -319,25 +290,19 @@ public class OAuth2LoginBeanDefinitionParserTests {
assertThat(authentication.getAuthorities()).hasSize(1);
assertThat(authentication.getAuthorities()).first().isInstanceOf(SimpleGrantedAuthority.class)
.hasToString("ROLE_OAUTH2_USER");
-
// re-setup for OIDC test
attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, "google-login");
authorizationRequest = TestOAuth2AuthorizationRequests.oidcRequest().attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
accessTokenResponse = TestOAuth2AccessTokenResponses.oidcAccessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
Jwt jwt = TestJwts.user();
given(this.jwtDecoderFactory.createDecoder(any())).willReturn((token) -> jwt);
-
given(this.userAuthoritiesMapper.mapAuthorities(any()))
.willReturn((Collection) AuthorityUtils.createAuthorityList("ROLE_OIDC_USER"));
-
this.mvc.perform(get("/login/oauth2/code/google-login").params(params)).andExpect(status().is2xxSuccessful());
-
authenticationCaptor = ArgumentCaptor.forClass(Authentication.class);
verify(this.authenticationSuccessHandler, times(2)).onAuthenticationSuccess(any(), any(),
authenticationCaptor.capture());
@@ -352,25 +317,20 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenCustomLoginProcessingUrlThenProcessAuthentication() throws Exception {
this.spring.configLocations(this.xml("MultiClientRegistration-WithCustomLoginProcessingUrl")).autowire();
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, "github-login");
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/github-login").params(params)).andExpect(status().is2xxSuccessful());
-
ArgumentCaptor authenticationCaptor = ArgumentCaptor.forClass(Authentication.class);
verify(this.authenticationSuccessHandler).onAuthenticationSuccess(any(), any(), authenticationCaptor.capture());
Authentication authentication = authenticationCaptor.getValue();
@@ -382,9 +342,7 @@ public class OAuth2LoginBeanDefinitionParserTests {
public void requestWhenCustomAuthorizationRequestResolverThenCalled() throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration-WithCustomAuthorizationRequestResolver"))
.autowire();
-
this.mvc.perform(get("/oauth2/authorization/google-login")).andExpect(status().is3xxRedirection());
-
verify(this.authorizationRequestResolver).resolve(any());
}
@@ -392,7 +350,6 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenMultiClientRegistrationThenRedirectDefaultLoginPage() throws Exception {
this.spring.configLocations(this.xml("MultiClientRegistration")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("http://localhost/login"));
}
@@ -400,7 +357,6 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenCustomLoginPageThenRedirectCustomLoginPage() throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration-WithCustomLoginPage")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("http://localhost/custom-login"));
}
@@ -410,7 +366,6 @@ public class OAuth2LoginBeanDefinitionParserTests {
public void requestWhenSingleClientRegistrationAndFormLoginConfiguredThenRedirectDefaultLoginPage()
throws Exception {
this.spring.configLocations(this.xml("SingleClientRegistration-WithFormLogin")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("http://localhost/login"));
}
@@ -418,84 +373,66 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenCustomClientRegistrationRepositoryThenCalled() throws Exception {
this.spring.configLocations(this.xml("WithCustomClientRegistrationRepository")).autowire();
-
ClientRegistration clientRegistration = TestClientRegistrations.clientRegistration().build();
given(this.clientRegistrationRepository.findByRegistrationId(any())).willReturn(clientRegistration);
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, clientRegistration.getRegistrationId());
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/" + clientRegistration.getRegistrationId()).params(params));
-
verify(this.clientRegistrationRepository).findByRegistrationId(clientRegistration.getRegistrationId());
}
@Test
public void requestWhenCustomAuthorizedClientRepositoryThenCalled() throws Exception {
this.spring.configLocations(this.xml("WithCustomAuthorizedClientRepository")).autowire();
-
ClientRegistration clientRegistration = TestClientRegistrations.clientRegistration().build();
given(this.clientRegistrationRepository.findByRegistrationId(any())).willReturn(clientRegistration);
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, clientRegistration.getRegistrationId());
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/" + clientRegistration.getRegistrationId()).params(params));
-
verify(this.authorizedClientRepository).saveAuthorizedClient(any(), any(), any(), any());
}
@Test
public void requestWhenCustomAuthorizedClientServiceThenCalled() throws Exception {
this.spring.configLocations(this.xml("WithCustomAuthorizedClientService")).autowire();
-
ClientRegistration clientRegistration = TestClientRegistrations.clientRegistration().build();
given(this.clientRegistrationRepository.findByRegistrationId(any())).willReturn(clientRegistration);
-
Map attributes = new HashMap<>();
attributes.put(OAuth2ParameterNames.REGISTRATION_ID, clientRegistration.getRegistrationId());
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.attributes(attributes).build();
given(this.authorizationRequestRepository.removeAuthorizationRequest(any(), any()))
.willReturn(authorizationRequest);
-
OAuth2AccessTokenResponse accessTokenResponse = TestOAuth2AccessTokenResponses.accessTokenResponse().build();
given(this.accessTokenResponseClient.getTokenResponse(any())).willReturn(accessTokenResponse);
-
OAuth2User oauth2User = TestOAuth2Users.create();
given(this.oauth2UserService.loadUser(any())).willReturn(oauth2User);
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("code", "code123");
params.add("state", authorizationRequest.getState());
this.mvc.perform(get("/login/oauth2/code/" + clientRegistration.getRegistrationId()).params(params));
-
verify(this.authorizedClientService).saveAuthorizedClient(any(), any());
}
@@ -503,13 +440,10 @@ public class OAuth2LoginBeanDefinitionParserTests {
@Test
public void requestWhenAuthorizedClientFoundThenMethodArgumentResolved() throws Exception {
this.spring.configLocations(xml("AuthorizedClientArgumentResolver")).autowire();
-
ClientRegistration clientRegistration = this.clientRegistrationRepository.findByRegistrationId("google-login");
-
OAuth2AuthorizedClient authorizedClient = new OAuth2AuthorizedClient(clientRegistration, "user",
TestOAuth2AccessTokens.noScopes());
given(this.authorizedClientRepository.loadAuthorizedClient(any(), any(), any())).willReturn(authorizedClient);
-
this.mvc.perform(get("/authorized-client")).andExpect(status().isOk()).andExpect(content().string("resolved"));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/OAuth2ResourceServerBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/http/OAuth2ResourceServerBeanDefinitionParserTests.java
index aa233653b1..9ba660ea3a 100644
--- a/config/src/test/java/org/springframework/security/config/http/OAuth2ResourceServerBeanDefinitionParserTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/OAuth2ResourceServerBeanDefinitionParserTests.java
@@ -138,7 +138,6 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isNotFound());
}
@@ -147,59 +146,48 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
this.spring.configLocations(xml("WebServer"), xml("JwkSetUri")).autowire();
mockWebServer(jwks("Default"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isNotFound());
}
@Test
public void getWhenExpiredBearerTokenThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("Expired");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(invalidTokenHeader("An error occurred while attempting to decode the Jwt"));
}
@Test
public void getWhenBadJwkEndpointThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations("malformed");
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(header().string("WWW-Authenticate", "Bearer"));
}
@Test
public void getWhenUnavailableJwkEndpointThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("WebServer"), xml("JwkSetUri")).autowire();
this.web.shutdown();
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(header().string("WWW-Authenticate", "Bearer"));
}
@Test
public void getWhenMalformedBearerTokenThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
this.mvc.perform(get("/").header("Authorization", "Bearer an\"invalid\"token"))
.andExpect(status().isUnauthorized()).andExpect(invalidTokenHeader("Bearer token is malformed"));
}
@Test
public void getWhenMalformedPayloadThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("MalformedPayload");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(
invalidTokenHeader("An error occurred while attempting to decode the Jwt: Malformed payload"));
@@ -207,30 +195,24 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void getWhenUnsignedBearerTokenThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
String token = this.token("Unsigned");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(invalidTokenHeader("Unsupported algorithm of none"));
}
@Test
public void getWhenBearerTokenBeforeNotBeforeThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
this.mockRestOperations(jwks("Default"));
String token = this.token("TooEarly");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(invalidTokenHeader("An error occurred while attempting to decode the Jwt"));
}
@Test
public void getWhenBearerTokenInTwoPlacesThenInvalidRequest() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
this.mvc.perform(get("/").header("Authorization", "Bearer token").param("access_token", "token"))
.andExpect(status().isBadRequest())
.andExpect(invalidRequestHeader("Found multiple bearer tokens in the request"));
@@ -238,22 +220,17 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void getWhenBearerTokenInTwoParametersThenInvalidRequest() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
MultiValueMap params = new LinkedMultiValueMap<>();
params.add("access_token", "token1");
params.add("access_token", "token2");
-
this.mvc.perform(get("/").params(params)).andExpect(status().isBadRequest())
.andExpect(invalidRequestHeader("Found multiple bearer tokens in the request"));
}
@Test
public void postWhenBearerTokenAsFormParameterThenIgnoresToken() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
this.mvc.perform(post("/") // engage csrf
.param("access_token", "token")).andExpect(status().isForbidden())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, "Bearer")); // different
@@ -263,95 +240,77 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void getWhenNoBearerTokenThenUnauthorized() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, "Bearer"));
}
@Test
public void getWhenSufficientlyScopedBearerTokenThenAcceptsRequest() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidMessageReadScope");
-
this.mvc.perform(get("/requires-read-scope").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound());
}
@Test
public void getWhenInsufficientScopeThenInsufficientScopeError() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/requires-read-scope").header("Authorization", "Bearer " + token))
.andExpect(status().isForbidden()).andExpect(insufficientScopeHeader());
}
@Test
public void getWhenInsufficientScpThenInsufficientScopeError() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidMessageWriteScp");
-
this.mvc.perform(get("/requires-read-scope").header("Authorization", "Bearer " + token))
.andExpect(status().isForbidden()).andExpect(insufficientScopeHeader());
}
@Test
public void getWhenAuthorizationServerHasNoMatchingKeyThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Empty"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(invalidTokenHeader("An error occurred while attempting to decode the Jwt"));
}
@Test
public void getWhenAuthorizationServerHasMultipleMatchingKeysThenOk() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("TwoKeys"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound());
}
@Test
public void getWhenKeyMatchesByKidThenOk() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("TwoKeys"));
String token = this.token("Kid");
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound());
}
@Test
public void postWhenValidBearerTokenAndNoCsrfTokenThenOk() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(post("/authenticated").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound());
}
@Test
public void postWhenNoBearerTokenThenCsrfDenies() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
this.mvc.perform(post("/authenticated")).andExpect(status().isForbidden())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, "Bearer")); // different
// from
@@ -360,11 +319,9 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void postWhenExpiredBearerTokenAndNoCsrfThenInvalidToken() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("Expired");
-
this.mvc.perform(post("/authenticated").header("Authorization", "Bearer " + token))
.andExpect(status().isUnauthorized())
.andExpect(invalidTokenHeader("An error occurred while attempting to decode the Jwt"));
@@ -372,49 +329,37 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenJwtThenSessionIsNotCreated() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
MvcResult result = this.mvc.perform(get("/").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNull();
}
@Test
public void requestWhenIntrospectionThenSessionIsNotCreated() throws Exception {
-
this.spring.configLocations(xml("WebServer"), xml("IntrospectionUri")).autowire();
mockWebServer(json("Active"));
-
MvcResult result = this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token"))
.andExpect(status().isNotFound()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNull();
}
@Test
public void requestWhenNoBearerTokenThenSessionIsCreated() throws Exception {
-
this.spring.configLocations(xml("JwkSetUri")).autowire();
-
MvcResult result = this.mvc.perform(get("/")).andExpect(status().isUnauthorized()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNotNull();
}
@Test
public void requestWhenSessionManagementConfiguredThenUses() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("AlwaysSessionCreation")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
MvcResult result = this.mvc.perform(get("/").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNotNull();
}
@@ -422,15 +367,11 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
public void getWhenCustomBearerTokenResolverThenUses() throws Exception {
this.spring.configLocations(xml("MockBearerTokenResolver"), xml("MockJwtDecoder"), xml("BearerTokenResolver"))
.autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
given(decoder.decode("token")).willReturn(TestJwts.jwt().build());
-
BearerTokenResolver bearerTokenResolver = this.spring.getContext().getBean(BearerTokenResolver.class);
given(bearerTokenResolver.resolve(any(HttpServletRequest.class))).willReturn("token");
-
this.mvc.perform(get("/")).andExpect(status().isNotFound());
-
verify(decoder).decode("token");
verify(bearerTokenResolver).resolve(any(HttpServletRequest.class));
}
@@ -438,41 +379,30 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenBearerTokenResolverAllowsRequestBodyThenEitherHeaderOrRequestBodyIsAccepted()
throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("AllowBearerTokenInBody")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
given(decoder.decode(anyString())).willReturn(TestJwts.jwt().build());
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token"))
.andExpect(status().isNotFound());
-
this.mvc.perform(post("/authenticated").param("access_token", "token")).andExpect(status().isNotFound());
}
@Test
public void requestWhenBearerTokenResolverAllowsQueryParameterThenEitherHeaderOrQueryParameterIsAccepted()
throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("AllowBearerTokenInQuery")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
given(decoder.decode(anyString())).willReturn(TestJwts.jwt().build());
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token"))
.andExpect(status().isNotFound());
-
this.mvc.perform(get("/authenticated").param("access_token", "token")).andExpect(status().isNotFound());
-
verify(decoder, times(2)).decode("token");
}
@Test
public void requestWhenBearerTokenResolverAllowsRequestBodyAndRequestContainsTwoTokensThenInvalidRequest()
throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("AllowBearerTokenInBody")).autowire();
-
this.mvc.perform(post("/authenticated").param("access_token", "token").header("Authorization", "Bearer token")
.with(csrf())).andExpect(status().isBadRequest())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, containsString("invalid_request")));
@@ -481,9 +411,7 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenBearerTokenResolverAllowsQueryParameterAndRequestContainsTwoTokensThenInvalidRequest()
throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("AllowBearerTokenInQuery")).autowire();
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token").param("access_token", "token"))
.andExpect(status().isBadRequest())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, containsString("invalid_request")));
@@ -493,22 +421,16 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
public void getBearerTokenResolverWhenNoResolverSpecifiedThenTheDefaultIsUsed() {
OAuth2ResourceServerBeanDefinitionParser oauth2 = new OAuth2ResourceServerBeanDefinitionParser(
mock(BeanReference.class), mock(List.class), mock(Map.class), mock(Map.class), mock(List.class));
-
assertThat(oauth2.getBearerTokenResolver(mock(Element.class))).isInstanceOf(RootBeanDefinition.class);
}
@Test
public void requestWhenCustomJwtDecoderThenUsed() throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("Jwt")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
-
given(decoder.decode(anyString())).willReturn(TestJwts.jwt().build());
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token"))
.andExpect(status().isNotFound());
-
verify(decoder).decode("token");
}
@@ -520,12 +442,9 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenRealmNameConfiguredThenUsesOnUnauthenticated() throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("AuthenticationEntryPoint")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
Mockito.when(decoder.decode(anyString())).thenThrow(JwtException.class);
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer invalid_token"))
.andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer realm=\"myRealm\"")));
@@ -533,12 +452,9 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenRealmNameConfiguredThenUsesOnAccessDenied() throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("AccessDeniedHandler")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
given(decoder.decode(anyString())).willReturn(TestJwts.jwt().build());
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer insufficiently_scoped"))
.andExpect(status().isForbidden())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer realm=\"myRealm\"")));
@@ -546,86 +462,66 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenCustomJwtValidatorFailsThenCorrespondingErrorMessage() throws Exception {
-
this.spring.configLocations(xml("MockJwtValidator"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
OAuth2TokenValidator jwtValidator = this.spring.getContext().getBean(OAuth2TokenValidator.class);
-
OAuth2Error error = new OAuth2Error("custom-error", "custom-description", "custom-uri");
-
given(jwtValidator.validate(any(Jwt.class))).willReturn(OAuth2TokenValidatorResult.failure(error));
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, containsString("custom-description")));
}
@Test
public void requestWhenClockSkewSetThenTimestampWindowRelaxedAccordingly() throws Exception {
-
this.spring.configLocations(xml("UnexpiredJwtClockSkew"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ExpiresAt4687177990");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isNotFound());
}
@Test
public void requestWhenClockSkewSetButJwtStillTooLateThenReportsExpired() throws Exception {
-
this.spring.configLocations(xml("ExpiredJwtClockSkew"), xml("Jwt")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ExpiresAt4687177990");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isUnauthorized())
.andExpect(invalidTokenHeader("Jwt expired at"));
}
@Test
public void requestWhenJwtAuthenticationConverterThenUsed() throws Exception {
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("MockJwtAuthenticationConverter"),
xml("JwtAuthenticationConverter")).autowire();
-
Converter jwtAuthenticationConverter = (Converter) this.spring
.getContext().getBean("jwtAuthenticationConverter");
given(jwtAuthenticationConverter.convert(any(Jwt.class)))
.willReturn(new JwtAuthenticationToken(TestJwts.jwt().build(), Collections.emptyList()));
-
JwtDecoder jwtDecoder = this.spring.getContext().getBean(JwtDecoder.class);
given(jwtDecoder.decode(anyString())).willReturn(TestJwts.jwt().build());
-
this.mvc.perform(get("/").header("Authorization", "Bearer token")).andExpect(status().isNotFound());
-
verify(jwtAuthenticationConverter).convert(any(Jwt.class));
}
@Test
public void requestWhenUsingPublicKeyAndValidTokenThenAuthenticates() throws Exception {
-
this.spring.configLocations(xml("SingleKey"), xml("Jwt")).autowire();
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token)).andExpect(status().isNotFound());
}
@Test
public void requestWhenUsingPublicKeyAndSignatureFailsThenReturnsInvalidToken() throws Exception {
-
this.spring.configLocations(xml("SingleKey"), xml("Jwt")).autowire();
String token = this.token("WrongSignature");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token))
.andExpect(invalidTokenHeader("signature"));
}
@Test
public void requestWhenUsingPublicKeyAlgorithmDoesNotMatchThenReturnsInvalidToken() throws Exception {
-
this.spring.configLocations(xml("SingleKey"), xml("Jwt")).autowire();
String token = this.token("WrongAlgorithm");
-
this.mvc.perform(get("/").header("Authorization", "Bearer " + token))
.andExpect(invalidTokenHeader("algorithm"));
}
@@ -634,7 +530,6 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
public void getWhenIntrospectingThenOk() throws Exception {
this.spring.configLocations(xml("OpaqueTokenRestOperations"), xml("OpaqueToken")).autowire();
mockRestOperations(json("Active"));
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token"))
.andExpect(status().isNotFound());
}
@@ -643,7 +538,6 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
public void getWhenIntrospectionFailsThenUnauthorized() throws Exception {
this.spring.configLocations(xml("OpaqueTokenRestOperations"), xml("OpaqueToken")).autowire();
mockRestOperations(json("Inactive"));
-
this.mvc.perform(get("/").header("Authorization", "Bearer token")).andExpect(status().isUnauthorized())
.andExpect(
header().string(HttpHeaders.WWW_AUTHENTICATE, containsString("Provided token isn't active")));
@@ -653,7 +547,6 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
public void getWhenIntrospectionLacksScopeThenForbidden() throws Exception {
this.spring.configLocations(xml("OpaqueTokenRestOperations"), xml("OpaqueToken")).autowire();
mockRestOperations(json("ActiveNoScopes"));
-
this.mvc.perform(get("/requires-read-scope").header("Authorization", "Bearer token"))
.andExpect(status().isForbidden())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, containsString("scope")));
@@ -674,21 +567,17 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void getWhenAuthenticationManagerResolverThenUses() throws Exception {
this.spring.configLocations(xml("AuthenticationManagerResolver")).autowire();
-
AuthenticationManagerResolver authenticationManagerResolver = this.spring.getContext()
.getBean(AuthenticationManagerResolver.class);
given(authenticationManagerResolver.resolve(any(HttpServletRequest.class))).willReturn(
(authentication) -> new JwtAuthenticationToken(TestJwts.jwt().build(), Collections.emptyList()));
-
this.mvc.perform(get("/").header("Authorization", "Bearer token")).andExpect(status().isNotFound());
-
verify(authenticationManagerResolver).resolve(any(HttpServletRequest.class));
}
@Test
public void getWhenMultipleIssuersThenUsesIssuerClaimToDifferentiate() throws Exception {
this.spring.configLocations(xml("WebServer"), xml("MultipleIssuers")).autowire();
-
MockWebServer server = this.spring.getContext().getBean(MockWebServer.class);
String metadata = "{\n" + " \"issuer\": \"%s\", \n" + " \"jwks_uri\": \"%s/.well-known/jwks.json\" \n"
+ "}";
@@ -699,22 +588,16 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
String jwtOne = jwtFromIssuer(issuerOne);
String jwtTwo = jwtFromIssuer(issuerTwo);
String jwtThree = jwtFromIssuer(issuerThree);
-
mockWebServer(String.format(metadata, issuerOne, issuerOne));
mockWebServer(jwkSet);
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer " + jwtOne))
.andExpect(status().isNotFound());
-
mockWebServer(String.format(metadata, issuerTwo, issuerTwo));
mockWebServer(jwkSet);
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer " + jwtTwo))
.andExpect(status().isNotFound());
-
mockWebServer(String.format(metadata, issuerThree, issuerThree));
mockWebServer(jwkSet);
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer " + jwtThree))
.andExpect(status().isUnauthorized()).andExpect(invalidTokenHeader("Invalid issuer"));
}
@@ -722,18 +605,13 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenBasicAndResourceServerEntryPointsThenBearerTokenPresides() throws Exception {
// different from DSL
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("BasicAndResourceServer")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
given(decoder.decode(anyString())).willThrow(JwtException.class);
-
this.mvc.perform(get("/authenticated").with(httpBasic("some", "user"))).andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, startsWith("Basic")));
-
this.mvc.perform(get("/authenticated")).andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer")));
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer invalid_token"))
.andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer")));
@@ -742,32 +620,23 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
@Test
public void requestWhenFormLoginAndResourceServerEntryPointsThenSessionCreatedByRequest() throws Exception {
// different from DSL
-
this.spring.configLocations(xml("MockJwtDecoder"), xml("FormAndResourceServer")).autowire();
-
JwtDecoder decoder = this.spring.getContext().getBean(JwtDecoder.class);
given(decoder.decode(anyString())).willThrow(JwtException.class);
-
MvcResult result = this.mvc.perform(get("/authenticated")).andExpect(status().isUnauthorized()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNotNull();
-
result = this.mvc.perform(get("/authenticated").header("Authorization", "Bearer token"))
.andExpect(status().isUnauthorized()).andReturn();
-
assertThat(result.getRequest().getSession(false)).isNull();
}
@Test
public void getWhenAlsoUsingHttpBasicThenCorrectProviderEngages() throws Exception {
-
this.spring.configLocations(xml("JwtRestOperations"), xml("BasicAndResourceServer")).autowire();
mockRestOperations(jwks("Default"));
String token = this.token("ValidNoScopes");
-
this.mvc.perform(get("/authenticated").header("Authorization", "Bearer " + token))
.andExpect(status().isNotFound());
-
this.mvc.perform(get("/authenticated").with(httpBasic("user", "password"))).andExpect(status().isNotFound());
}
@@ -800,11 +669,9 @@ public class OAuth2ResourceServerBeanDefinitionParserTests {
.willReturn(true);
Element child = mock(Element.class);
ParserContext pc = new ParserContext(mock(XmlReaderContext.class), mock(BeanDefinitionParserDelegate.class));
-
parser.validateConfiguration(element, child, null, pc);
verify(pc.getReaderContext()).error(anyString(), eq(element));
reset(pc.getReaderContext());
-
parser.validateConfiguration(element, null, child, pc);
verify(pc.getReaderContext()).error(anyString(), eq(element));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/OpenIDConfigTests.java b/config/src/test/java/org/springframework/security/config/http/OpenIDConfigTests.java
index fad993004f..7017e60822 100644
--- a/config/src/test/java/org/springframework/security/config/http/OpenIDConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/OpenIDConfigTests.java
@@ -72,63 +72,47 @@ public class OpenIDConfigTests {
@Test
public void requestWhenOpenIDAndFormLoginBothConfiguredThenRedirectsToGeneratedLoginPage() throws Exception {
-
this.spring.configLocations(this.xml("WithFormLogin")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isFound()).andExpect(redirectedUrl("http://localhost/login"));
-
assertThat(getFilter(DefaultLoginPageGeneratingFilter.class)).isNotNull();
}
@Test
public void requestWhenOpenIDAndFormLoginWithFormLoginPageConfiguredThenFormLoginPageWins() throws Exception {
-
this.spring.configLocations(this.xml("WithFormLoginPage")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isFound()).andExpect(redirectedUrl("http://localhost/form-page"));
}
@Test
public void requestWhenOpenIDAndFormLoginWithOpenIDLoginPageConfiguredThenOpenIDLoginPageWins() throws Exception {
-
this.spring.configLocations(this.xml("WithOpenIDLoginPageAndFormLogin")).autowire();
-
this.mvc.perform(get("/")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost/openid-page"));
}
@Test
public void configureWhenOpenIDAndFormLoginBothConfigureLoginPagesThenWiringException() {
-
assertThatCode(() -> this.spring.configLocations(this.xml("WithFormLoginAndOpenIDLoginPages")).autowire())
.isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void requestWhenOpenIDAndRememberMeConfiguredThenRememberMePassedToIdp() throws Exception {
-
this.spring.configLocations(this.xml("WithRememberMe")).autowire();
-
OpenIDAuthenticationFilter openIDFilter = getFilter(OpenIDAuthenticationFilter.class);
-
String openIdEndpointUrl = "https://testopenid.com?openid.return_to=";
Set returnToUrlParameters = new HashSet<>();
returnToUrlParameters.add(AbstractRememberMeServices.DEFAULT_PARAMETER);
openIDFilter.setReturnToUrlParameters(returnToUrlParameters);
-
OpenIDConsumer consumer = mock(OpenIDConsumer.class);
given(consumer.beginConsumption(any(HttpServletRequest.class), anyString(), anyString(), anyString()))
.will((invocation) -> openIdEndpointUrl + invocation.getArgument(2));
openIDFilter.setConsumer(consumer);
-
String expectedReturnTo = new StringBuilder("http://localhost/login/openid").append("?")
.append(AbstractRememberMeServices.DEFAULT_PARAMETER).append("=").append("on").toString();
-
this.mvc.perform(get("/")).andExpect(status().isFound()).andExpect(redirectedUrl("http://localhost/login"));
-
this.mvc.perform(get("/login")).andExpect(status().isOk())
.andExpect(content().string(containsString(AbstractRememberMeServices.DEFAULT_PARAMETER)));
-
this.mvc.perform(get("/login/openid")
.param(OpenIDAuthenticationFilter.DEFAULT_CLAIMED_IDENTITY_FIELD, "https://ww1.openid.com")
.param(AbstractRememberMeServices.DEFAULT_PARAMETER, "on")).andExpect(status().isFound())
@@ -137,21 +121,16 @@ public class OpenIDConfigTests {
@Test
public void requestWhenAttributeExchangeConfiguredThenFetchAttributesPassedToIdp() throws Exception {
-
this.spring.configLocations(this.xml("WithOpenIDAttributes")).autowire();
-
OpenIDAuthenticationFilter openIDFilter = getFilter(OpenIDAuthenticationFilter.class);
OpenID4JavaConsumer consumer = getFieldValue(openIDFilter, "consumer");
ConsumerManager manager = getFieldValue(consumer, "consumerManager");
manager.setMaxAssocAttempts(0);
-
try (MockWebServer server = new MockWebServer()) {
String endpoint = server.url("/").toString();
-
server.enqueue(new MockResponse().addHeader(YadisResolver.YADIS_XRDS_LOCATION, endpoint));
server.enqueue(new MockResponse()
.setBody(String.format("%s", endpoint)));
-
this.mvc.perform(
get("/login/openid").param(OpenIDAuthenticationFilter.DEFAULT_CLAIMED_IDENTITY_FIELD, endpoint))
.andExpect(status().isFound())
@@ -169,11 +148,8 @@ public class OpenIDConfigTests {
@Test
public void requestWhenLoginPageConfiguredWithPhraseLoginThenRedirectsOnlyToUserGeneratedLoginPage()
throws Exception {
-
this.spring.configLocations(this.xml("Sec2919")).autowire();
-
assertThat(getFilter(DefaultLoginPageGeneratingFilter.class)).isNull();
-
this.mvc.perform(get("/login")).andExpect(status().isOk()).andExpect(content().string("a custom login page"));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/PlaceHolderAndELConfigTests.java b/config/src/test/java/org/springframework/security/config/http/PlaceHolderAndELConfigTests.java
index e413874758..13478ad795 100644
--- a/config/src/test/java/org/springframework/security/config/http/PlaceHolderAndELConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/PlaceHolderAndELConfigTests.java
@@ -52,11 +52,8 @@ public class PlaceHolderAndELConfigTests {
@Test
public void getWhenUsingPlaceholderThenUnsecuredPatternCorrectlyConfigured() throws Exception {
-
System.setProperty("pattern.nofilters", "/unsecured");
-
this.spring.configLocations(this.xml("UnsecuredPattern")).autowire();
-
this.mvc.perform(get("/unsecured")).andExpect(status().isOk());
}
@@ -65,27 +62,19 @@ public class PlaceHolderAndELConfigTests {
*/
@Test
public void loginWhenUsingPlaceholderThenInterceptUrlsAndFormLoginWorks() throws Exception {
-
System.setProperty("secure.Url", "/secured");
System.setProperty("secure.role", "ROLE_NUNYA");
System.setProperty("login.page", "/loginPage");
System.setProperty("default.target", "/defaultTarget");
System.setProperty("auth.failure", "/authFailure");
-
this.spring.configLocations(this.xml("InterceptUrlAndFormLogin")).autowire();
-
// login-page setting
-
this.mvc.perform(get("/secured")).andExpect(redirectedUrl("http://localhost/loginPage"));
-
// login-processing-url setting
// default-target-url setting
-
this.mvc.perform(post("/loginPage").param("username", "user").param("password", "password"))
.andExpect(redirectedUrl("/defaultTarget"));
-
// authentication-failure-url setting
-
this.mvc.perform(post("/loginPage").param("username", "user").param("password", "wrong"))
.andExpect(redirectedUrl("/authFailure"));
}
@@ -95,44 +84,31 @@ public class PlaceHolderAndELConfigTests {
*/
@Test
public void loginWhenUsingSpELThenInterceptUrlsAndFormLoginWorks() throws Exception {
-
System.setProperty("secure.url", "/secured");
System.setProperty("secure.role", "ROLE_NUNYA");
System.setProperty("login.page", "/loginPage");
System.setProperty("default.target", "/defaultTarget");
System.setProperty("auth.failure", "/authFailure");
-
this.spring.configLocations(this.xml("InterceptUrlAndFormLoginWithSpEL")).autowire();
-
// login-page setting
-
this.mvc.perform(get("/secured")).andExpect(redirectedUrl("http://localhost/loginPage"));
-
// login-processing-url setting
// default-target-url setting
-
this.mvc.perform(post("/loginPage").param("username", "user").param("password", "password"))
.andExpect(redirectedUrl("/defaultTarget"));
-
// authentication-failure-url setting
-
this.mvc.perform(post("/loginPage").param("username", "user").param("password", "wrong"))
.andExpect(redirectedUrl("/authFailure"));
-
}
@Test
@WithMockUser
public void requestWhenUsingPlaceholderOrSpELThenPortMapperWorks() throws Exception {
-
System.setProperty("http", "9080");
System.setProperty("https", "9443");
-
this.spring.configLocations(this.xml("PortMapping")).autowire();
-
this.mvc.perform(get("http://localhost:9080/secured")).andExpect(status().isFound())
.andExpect(redirectedUrl("https://localhost:9443/secured"));
-
this.mvc.perform(get("https://localhost:9443/unsecured")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost:9080/unsecured"));
}
@@ -140,12 +116,9 @@ public class PlaceHolderAndELConfigTests {
@Test
@WithMockUser
public void requestWhenUsingPlaceholderThenRequiresChannelWorks() throws Exception {
-
System.setProperty("secure.url", "/secured");
System.setProperty("required.channel", "https");
-
this.spring.configLocations(this.xml("RequiresChannel")).autowire();
-
this.mvc.perform(get("http://localhost/secured")).andExpect(status().isFound())
.andExpect(redirectedUrl("https://localhost/secured"));
}
@@ -153,20 +126,15 @@ public class PlaceHolderAndELConfigTests {
@Test
@WithMockUser
public void requestWhenUsingPlaceholderThenAccessDeniedPageWorks() throws Exception {
-
System.setProperty("accessDenied", "/go-away");
-
this.spring.configLocations(this.xml("AccessDeniedPage")).autowire();
-
this.mvc.perform(get("/secured")).andExpect(forwardedUrl("/go-away"));
}
@Test
@WithMockUser
public void requestWhenUsingSpELThenAccessDeniedPageWorks() throws Exception {
-
this.spring.configLocations(this.xml("AccessDeniedPageWithSpEL")).autowire();
-
this.mvc.perform(get("/secured")).andExpect(forwardedUrl("/go-away"));
}
diff --git a/config/src/test/java/org/springframework/security/config/http/RememberMeConfigTests.java b/config/src/test/java/org/springframework/security/config/http/RememberMeConfigTests.java
index e16b8ec2b1..46fc53c570 100644
--- a/config/src/test/java/org/springframework/security/config/http/RememberMeConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/RememberMeConfigTests.java
@@ -69,17 +69,12 @@ public class RememberMeConfigTests {
@Test
public void requestWithRememberMeWhenUsingCustomTokenRepositoryThenAutomaticallyReauthenticates() throws Exception {
-
this.spring.configLocations(this.xml("WithTokenRepository")).autowire();
-
MvcResult result = this.rememberAuthentication("user", "password")
.andExpect(cookie().secure(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, false))
.andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
-
JdbcTemplate template = this.spring.getContext().getBean(JdbcTemplate.class);
int count = template.queryForObject("select count(*) from persistent_logins", int.class);
assertThat(count).isEqualTo(1);
@@ -87,42 +82,30 @@ public class RememberMeConfigTests {
@Test
public void requestWithRememberMeWhenUsingCustomDataSourceThenAutomaticallyReauthenticates() throws Exception {
-
this.spring.configLocations(this.xml("WithDataSource")).autowire();
-
TestDataSource dataSource = this.spring.getContext().getBean(TestDataSource.class);
JdbcTemplate template = new JdbcTemplate(dataSource);
template.execute(JdbcTokenRepositoryImpl.CREATE_TABLE_SQL);
-
MvcResult result = this.rememberAuthentication("user", "password")
.andExpect(cookie().secure(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, false))
.andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
-
int count = template.queryForObject("select count(*) from persistent_logins", int.class);
assertThat(count).isEqualTo(1);
}
@Test
public void requestWithRememberMeWhenUsingAuthenticationSuccessHandlerThenInvokesHandler() throws Exception {
-
this.spring.configLocations(this.xml("WithAuthenticationSuccessHandler")).autowire();
-
TestDataSource dataSource = this.spring.getContext().getBean(TestDataSource.class);
JdbcTemplate template = new JdbcTemplate(dataSource);
template.execute(JdbcTokenRepositoryImpl.CREATE_TABLE_SQL);
-
MvcResult result = this.rememberAuthentication("user", "password")
.andExpect(cookie().secure(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, false))
.andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(redirectedUrl("/target"));
-
int count = template.queryForObject("select count(*) from persistent_logins", int.class);
assertThat(count).isEqualTo(1);
}
@@ -131,16 +114,12 @@ public class RememberMeConfigTests {
public void requestWithRememberMeWhenUsingCustomRememberMeServicesThenAuthenticates() throws Exception {
// SEC-1281 - using key with external services
this.spring.configLocations(this.xml("WithServicesRef")).autowire();
-
MvcResult result = this.rememberAuthentication("user", "password")
.andExpect(cookie().secure(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, false))
.andExpect(cookie().maxAge(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, 5000))
.andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
-
// SEC-909
this.mvc.perform(post("/logout").cookie(cookie).with(csrf()))
.andExpect(cookie().maxAge(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, 0))
@@ -149,13 +128,9 @@ public class RememberMeConfigTests {
@Test
public void logoutWhenUsingRememberMeDefaultsThenCookieIsCancelled() throws Exception {
-
this.spring.configLocations(this.xml("DefaultConfig")).autowire();
-
MvcResult result = this.rememberAuthentication("user", "password").andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(post("/logout").cookie(cookie).with(csrf()))
.andExpect(cookie().maxAge(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, 0));
}
@@ -163,23 +138,17 @@ public class RememberMeConfigTests {
@Test
public void requestWithRememberMeWhenTokenValidityIsConfiguredThenCookieReflectsCorrectExpiration()
throws Exception {
-
this.spring.configLocations(this.xml("TokenValidity")).autowire();
-
MvcResult result = this.rememberAuthentication("user", "password")
.andExpect(cookie().maxAge(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, 10000))
.andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
}
@Test
public void requestWithRememberMeWhenTokenValidityIsNegativeThenCookieReflectsCorrectExpiration() throws Exception {
-
this.spring.configLocations(this.xml("NegativeTokenValidity")).autowire();
-
this.rememberAuthentication("user", "password")
.andExpect(cookie().maxAge(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, -1));
}
@@ -193,18 +162,14 @@ public class RememberMeConfigTests {
@Test
public void requestWithRememberMeWhenTokenValidityIsResolvedByPropertyPlaceholderThenCookieReflectsCorrectExpiration()
throws Exception {
-
this.spring.configLocations(this.xml("Sec2165")).autowire();
-
this.rememberAuthentication("user", "password")
.andExpect(cookie().maxAge(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, 30));
}
@Test
public void requestWithRememberMeWhenUseSecureCookieIsTrueThenCookieIsSecure() throws Exception {
-
this.spring.configLocations(this.xml("SecureCookie")).autowire();
-
this.rememberAuthentication("user", "password")
.andExpect(cookie().secure(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, true));
}
@@ -214,9 +179,7 @@ public class RememberMeConfigTests {
*/
@Test
public void requestWithRememberMeWhenUseSecureCookieIsFalseThenCookieIsNotSecure() throws Exception {
-
this.spring.configLocations(this.xml("Sec1827")).autowire();
-
this.rememberAuthentication("user", "password")
.andExpect(cookie().secure(AbstractRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, false));
}
@@ -232,17 +195,12 @@ public class RememberMeConfigTests {
public void requestWithRememberMeWhenUsingCustomUserDetailsServiceThenInvokesThisUserDetailsService()
throws Exception {
this.spring.configLocations(this.xml("WithUserDetailsService")).autowire();
-
UserDetailsService userDetailsService = this.spring.getContext().getBean(UserDetailsService.class);
given(userDetailsService.loadUserByUsername("user"))
.willAnswer((invocation) -> new User("user", "{noop}password", Collections.emptyList()));
-
MvcResult result = this.rememberAuthentication("user", "password").andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
-
verify(userDetailsService, atLeastOnce()).loadUserByUsername("user");
}
@@ -251,14 +209,10 @@ public class RememberMeConfigTests {
*/
@Test
public void requestWithRememberMeWhenExcludingBasicAuthenticationFilterThenStillReauthenticates() throws Exception {
-
this.spring.configLocations(this.xml("Sec742")).autowire();
-
MvcResult result = this.mvc.perform(login("user", "password").param("remember-me", "true").with(csrf()))
.andExpect(redirectedUrl("/messageList.html")).andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
}
@@ -267,15 +221,11 @@ public class RememberMeConfigTests {
*/
@Test
public void requestWithRememberMeWhenUsingCustomRememberMeParameterThenReauthenticates() throws Exception {
-
this.spring.configLocations(this.xml("WithRememberMeParameter")).autowire();
-
MvcResult result = this.mvc
.perform(login("user", "password").param("custom-remember-me-parameter", "true").with(csrf()))
.andExpect(redirectedUrl("/")).andReturn();
-
Cookie cookie = rememberMeCookie(result);
-
this.mvc.perform(get("/authenticated").cookie(cookie)).andExpect(status().isOk());
}
@@ -290,9 +240,7 @@ public class RememberMeConfigTests {
*/
@Test
public void authenticateWhenUsingCustomRememberMeCookieNameThenIssuesCookieWithThatName() throws Exception {
-
this.spring.configLocations(this.xml("WithRememberMeCookie")).autowire();
-
this.rememberAuthentication("user", "password").andExpect(cookie().exists("custom-remember-me-cookie"));
}
@@ -309,7 +257,6 @@ public class RememberMeConfigTests {
}
private ResultActions rememberAuthentication(String username, String password) throws Exception {
-
return this.mvc.perform(
login(username, password).param(AbstractRememberMeServices.DEFAULT_PARAMETER, "true").with(csrf()))
.andExpect(redirectedUrl("/"));
diff --git a/config/src/test/java/org/springframework/security/config/http/SecurityContextHolderAwareRequestConfigTests.java b/config/src/test/java/org/springframework/security/config/http/SecurityContextHolderAwareRequestConfigTests.java
index ddb27b5cf5..d0ecc45474 100644
--- a/config/src/test/java/org/springframework/security/config/http/SecurityContextHolderAwareRequestConfigTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/SecurityContextHolderAwareRequestConfigTests.java
@@ -66,132 +66,89 @@ public class SecurityContextHolderAwareRequestConfigTests {
@Test
public void servletLoginWhenUsingDefaultConfigurationThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("Simple")).autowire();
-
this.mvc.perform(get("/good-login")).andExpect(status().isOk()).andExpect(content().string("user"));
}
@Test
public void servletAuthenticateWhenUsingDefaultConfigurationThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("Simple")).autowire();
-
this.mvc.perform(get("/authenticate")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost/login"));
}
@Test
public void servletLogoutWhenUsingDefaultConfigurationThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("Simple")).autowire();
-
MvcResult result = this.mvc.perform(get("/good-login")).andReturn();
-
MockHttpSession session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNotNull();
-
result = this.mvc.perform(get("/do-logout").session(session)).andExpect(status().isOk())
.andExpect(content().string("")).andReturn();
-
session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNull();
}
@Test
public void servletAuthenticateWhenUsingHttpBasicThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("HttpBasic")).autowire();
-
this.mvc.perform(get("/authenticate")).andExpect(status().isUnauthorized())
.andExpect(header().string(HttpHeaders.WWW_AUTHENTICATE, containsString("discworld")));
}
@Test
public void servletAuthenticateWhenUsingFormLoginThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("FormLogin")).autowire();
-
this.mvc.perform(get("/authenticate")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost/login"));
}
@Test
public void servletLoginWhenUsingMultipleHttpConfigsThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("MultiHttp")).autowire();
-
this.mvc.perform(get("/good-login")).andExpect(status().isOk()).andExpect(content().string("user"));
-
this.mvc.perform(get("/v2/good-login")).andExpect(status().isOk()).andExpect(content().string("user2"));
}
@Test
public void servletAuthenticateWhenUsingMultipleHttpConfigsThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("MultiHttp")).autowire();
-
this.mvc.perform(get("/authenticate")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost/login"));
-
this.mvc.perform(get("/v2/authenticate")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost/login2"));
-
}
@Test
public void servletLogoutWhenUsingMultipleHttpConfigsThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("MultiHttp")).autowire();
-
MvcResult result = this.mvc.perform(get("/good-login")).andReturn();
-
MockHttpSession session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNotNull();
-
result = this.mvc.perform(get("/do-logout").session(session)).andExpect(status().isOk())
.andExpect(content().string("")).andReturn();
-
session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNotNull();
-
result = this.mvc.perform(get("/v2/good-login")).andReturn();
-
session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNotNull();
-
result = this.mvc.perform(get("/v2/do-logout").session(session)).andExpect(status().isOk())
.andExpect(content().string("")).andReturn();
-
session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNull();
}
@Test
public void servletLogoutWhenUsingCustomLogoutThenUsesSpringSecurity() throws Exception {
-
this.spring.configLocations(this.xml("Logout")).autowire();
-
this.mvc.perform(get("/authenticate")).andExpect(status().isFound())
.andExpect(redirectedUrl("http://localhost/signin"));
-
MvcResult result = this.mvc.perform(get("/good-login")).andReturn();
-
MockHttpSession session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNotNull();
-
result = this.mvc.perform(get("/do-logout").session(session)).andExpect(status().isOk())
.andExpect(content().string("")).andExpect(cookie().maxAge("JSESSIONID", 0)).andReturn();
-
session = (MockHttpSession) result.getRequest().getSession(false);
-
assertThat(session).isNotNull();
}
@@ -201,9 +158,7 @@ public class SecurityContextHolderAwareRequestConfigTests {
@Test
@WithMockUser
public void servletIsUserInRoleWhenUsingDefaultConfigThenRoleIsSet() throws Exception {
-
this.spring.configLocations(this.xml("Simple")).autowire();
-
this.mvc.perform(get("/role")).andExpect(content().string("true"));
}
@@ -216,33 +171,26 @@ public class SecurityContextHolderAwareRequestConfigTests {
@GetMapping("/v2/good-login")
public String v2Login(HttpServletRequest request) throws ServletException {
-
request.login("user2", "password2");
-
return this.principal();
}
@GetMapping("/good-login")
public String login(HttpServletRequest request) throws ServletException {
-
request.login("user", "password");
-
return this.principal();
}
@GetMapping("/v2/authenticate")
public String v2Authenticate(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
-
return this.authenticate(request, response);
}
@GetMapping("/authenticate")
public String authenticate(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
-
request.authenticate(response);
-
return this.principal();
}
@@ -254,7 +202,6 @@ public class SecurityContextHolderAwareRequestConfigTests {
@GetMapping("/do-logout")
public String logout(HttpServletRequest request) throws ServletException {
request.logout();
-
return this.principal();
}
diff --git a/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigServlet31Tests.java b/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigServlet31Tests.java
index 6575395228..7995b13de2 100644
--- a/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigServlet31Tests.java
+++ b/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigServlet31Tests.java
@@ -90,40 +90,29 @@ public class SessionManagementConfigServlet31Tests {
request.setMethod("POST");
request.setParameter("username", "user");
request.setParameter("password", "password");
-
request.getSession().setAttribute("attribute1", "value1");
-
String id = request.getSession().getId();
-
loadContext("\n" + " \n" + " \n"
+ " \n" + " " + XML_AUTHENTICATION_MANAGER);
-
this.springSecurityFilterChain.doFilter(request, this.response, this.chain);
-
assertThat(request.getSession().getId()).isNotEqualTo(id);
assertThat(request.getSession().getAttribute("attribute1")).isEqualTo("value1");
}
@Test
public void changeSessionId() throws Exception {
-
MockHttpServletRequest request = new MockHttpServletRequest("GET", "");
request.getSession();
request.setServletPath("/login");
request.setMethod("POST");
request.setParameter("username", "user");
request.setParameter("password", "password");
-
String id = request.getSession().getId();
-
loadContext("\n" + " \n"
+ " \n"
+ " \n" + " " + XML_AUTHENTICATION_MANAGER);
-
this.springSecurityFilterChain.doFilter(request, this.response, this.chain);
-
assertThat(request.getSession().getId()).isNotEqualTo(id);
-
}
private void loadContext(String context) {
@@ -135,7 +124,6 @@ public class SessionManagementConfigServlet31Tests {
HttpSessionSecurityContextRepository repo = new HttpSessionSecurityContextRepository();
HttpRequestResponseHolder requestResponseHolder = new HttpRequestResponseHolder(this.request, this.response);
repo.loadContext(requestResponseHolder);
-
SecurityContextImpl securityContextImpl = new SecurityContextImpl();
securityContextImpl.setAuthentication(auth);
repo.saveContext(securityContextImpl, requestResponseHolder.getRequest(), requestResponseHolder.getResponse());
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 f7bd58f0b0..cdd74a6916 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
@@ -92,52 +92,41 @@ public class SessionManagementConfigTests {
@Test
public void requestWhenCreateSessionAlwaysThenAlwaysCreatesSession() throws Exception {
this.spring.configLocations(this.xml("CreateSessionAlways")).autowire();
-
MockHttpServletRequest request = get("/").buildRequest(this.servletContext());
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK);
assertThat(request.getSession(false)).isNotNull();
}
@Test
public void requestWhenCreateSessionIsSetToNeverThenDoesNotCreateSessionOnLoginChallenge() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionNever")).autowire();
-
MockHttpServletRequest request = get("/auth").buildRequest(this.servletContext());
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(request.getSession(false)).isNull();
}
@Test
public void requestWhenCreateSessionIsSetToNeverThenDoesNotCreateSessionOnLogin() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionNever")).autowire();
-
MockHttpServletRequest request = post("/login").param("username", "user").param("password", "password")
.buildRequest(this.servletContext());
request = csrf().postProcessRequest(request);
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(request.getSession(false)).isNull();
}
@Test
public void requestWhenCreateSessionIsSetToNeverThenUsesExistingSession() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionNever")).autowire();
-
MockHttpServletRequest request = post("/login").param("username", "user").param("password", "password")
.buildRequest(this.servletContext());
request = csrf().postProcessRequest(request);
MockHttpSession session = new MockHttpSession();
request.setSession(session);
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(request.getSession(false)).isNotNull();
assertThat(request.getSession(false)
@@ -146,72 +135,56 @@ public class SessionManagementConfigTests {
@Test
public void requestWhenCreateSessionIsSetToStatelessThenDoesNotCreateSessionOnLoginChallenge() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionStateless")).autowire();
-
this.mvc.perform(get("/auth")).andExpect(status().isFound()).andExpect(session().exists(false));
}
@Test
public void requestWhenCreateSessionIsSetToStatelessThenDoesNotCreateSessionOnLogin() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionStateless")).autowire();
-
this.mvc.perform(post("/login").param("username", "user").param("password", "password").with(csrf()))
.andExpect(status().isFound()).andExpect(session().exists(false));
}
@Test
public void requestWhenCreateSessionIsSetToStatelessThenIgnoresExistingSession() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionStateless")).autowire();
-
MvcResult result = this.mvc
.perform(post("/login").param("username", "user").param("password", "password")
.session(new MockHttpSession()).with(csrf()))
.andExpect(status().isFound()).andExpect(session()).andReturn();
-
assertThat(result.getRequest().getSession(false)
.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY)).isNull();
}
@Test
public void requestWhenCreateSessionIsSetToIfRequiredThenDoesNotCreateSessionOnPublicInvocation() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionIfRequired")).autowire();
-
ServletContext servletContext = this.mvc.getDispatcherServlet().getServletContext();
MockHttpServletRequest request = get("/").buildRequest(servletContext);
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK);
assertThat(request.getSession(false)).isNull();
}
@Test
public void requestWhenCreateSessionIsSetToIfRequiredThenCreatesSessionOnLoginChallenge() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionIfRequired")).autowire();
-
ServletContext servletContext = this.mvc.getDispatcherServlet().getServletContext();
MockHttpServletRequest request = get("/auth").buildRequest(servletContext);
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(request.getSession(false)).isNotNull();
}
@Test
public void requestWhenCreateSessionIsSetToIfRequiredThenCreatesSessionOnLogin() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionIfRequired")).autowire();
-
ServletContext servletContext = this.mvc.getDispatcherServlet().getServletContext();
MockHttpServletRequest request = post("/login").param("username", "user").param("password", "password")
.buildRequest(servletContext);
request = csrf().postProcessRequest(request);
MockHttpServletResponse response = request(request, this.spring.getContext());
-
assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_MOVED_TEMPORARILY);
assertThat(request.getSession(false)).isNotNull();
}
@@ -221,12 +194,9 @@ public class SessionManagementConfigTests {
*/
@Test
public void requestWhenRejectingUserBasedOnMaxSessionsExceededThenDoesNotCreateSession() throws Exception {
-
this.spring.configLocations(this.xml("Sec1208")).autowire();
-
this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(status().isOk())
.andExpect(session());
-
this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(status().isUnauthorized())
.andExpect(session().exists(false));
}
@@ -237,9 +207,7 @@ public class SessionManagementConfigTests {
@Test
public void requestWhenSessionFixationProtectionDisabledAndConcurrencyControlEnabledThenSessionNotInvalidated()
throws Exception {
-
this.spring.configLocations(this.xml("Sec2137")).autowire();
-
MockHttpSession session = new MockHttpSession();
this.mvc.perform(get("/auth").session(session).with(httpBasic("user", "password"))).andExpect(status().isOk())
.andExpect(session().id(session.getId()));
@@ -248,15 +216,12 @@ public class SessionManagementConfigTests {
@Test
public void autowireWhenExportingSessionRegistryBeanThenAvailableForWiring() {
this.spring.configLocations(this.xml("ConcurrencyControlSessionRegistryAlias")).autowire();
-
this.sessionRegistryIsValid();
}
@Test
public void requestWhenExpiredUrlIsSetThenInvalidatesSessionAndRedirects() throws Exception {
-
this.spring.configLocations(this.xml("ConcurrencyControlExpiredUrl")).autowire();
-
this.mvc.perform(get("/auth").session(this.expiredSession()).with(httpBasic("user", "password")))
.andExpect(redirectedUrl("/expired")).andExpect(session().exists(false));
}
@@ -264,9 +229,7 @@ public class SessionManagementConfigTests {
@Test
public void requestWhenConcurrencyControlAndCustomLogoutHandlersAreSetThenAllAreInvokedWhenSessionExpires()
throws Exception {
-
this.spring.configLocations(this.xml("ConcurrencyControlLogoutAndRememberMeHandlers")).autowire();
-
this.mvc.perform(get("/auth").session(this.expiredSession()).with(httpBasic("user", "password")))
.andExpect(status().isOk()).andExpect(cookie().maxAge("testCookie", 0))
.andExpect(cookie().exists("rememberMeCookie")).andExpect(session().valid(true));
@@ -274,9 +237,7 @@ public class SessionManagementConfigTests {
@Test
public void requestWhenConcurrencyControlAndRememberMeAreSetThenInvokedWhenSessionExpires() throws Exception {
-
this.spring.configLocations(this.xml("ConcurrencyControlRememberMeHandler")).autowire();
-
this.mvc.perform(get("/auth").session(this.expiredSession()).with(httpBasic("user", "password")))
.andExpect(status().isOk()).andExpect(cookie().exists("rememberMeCookie"))
.andExpect(session().exists(false));
@@ -287,25 +248,18 @@ public class SessionManagementConfigTests {
*/
@Test
public void autowireWhenConcurrencyControlIsSetThenLogoutHandlersGetAuthenticationObject() throws Exception {
-
this.spring.configLocations(this.xml("ConcurrencyControlCustomLogoutHandler")).autowire();
-
MvcResult result = this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(session())
.andReturn();
-
MockHttpSession session = (MockHttpSession) result.getRequest().getSession(false);
-
SessionRegistry sessionRegistry = this.spring.getContext().getBean(SessionRegistry.class);
sessionRegistry.getSessionInformation(session.getId()).expireNow();
-
this.mvc.perform(get("/auth").session(session)).andExpect(header().string("X-Username", "user"));
}
@Test
public void requestWhenConcurrencyControlIsSetThenDefaultsToResponseBodyExpirationResponse() throws Exception {
-
this.spring.configLocations(this.xml("ConcurrencyControlSessionRegistryAlias")).autowire();
-
this.mvc.perform(get("/auth").session(this.expiredSession()).with(httpBasic("user", "password")))
.andExpect(content().string("This session has been expired (possibly due to multiple concurrent "
+ "logins being attempted as the same user)."));
@@ -313,71 +267,53 @@ public class SessionManagementConfigTests {
@Test
public void requestWhenCustomSessionAuthenticationStrategyThenInvokesOnAuthentication() throws Exception {
-
this.spring.configLocations(this.xml("SessionAuthenticationStrategyRef")).autowire();
-
this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(status().isIAmATeapot());
}
@Test
public void autowireWhenSessionRegistryRefIsSetThenAvailableForWiring() {
this.spring.configLocations(this.xml("ConcurrencyControlSessionRegistryRef")).autowire();
-
this.sessionRegistryIsValid();
}
@Test
public void requestWhenMaxSessionsIsSetThenErrorsWhenExceeded() throws Exception {
-
this.spring.configLocations(this.xml("ConcurrencyControlMaxSessions")).autowire();
-
this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(status().isOk());
-
this.mvc.perform(get("/auth").with(httpBasic("user", "password"))).andExpect(redirectedUrl("/max-exceeded"));
}
@Test
public void autowireWhenSessionFixationProtectionIsNoneAndCsrfDisabledThenSessionManagementFilterIsNotWired() {
-
this.spring.configLocations(this.xml("NoSessionManagementFilter")).autowire();
-
assertThat(this.getFilter(SessionManagementFilter.class)).isNull();
}
@Test
public void requestWhenSessionFixationProtectionIsNoneThenSessionNotInvalidated() throws Exception {
-
this.spring.configLocations(this.xml("SessionFixationProtectionNone")).autowire();
-
MockHttpSession session = new MockHttpSession();
String sessionId = session.getId();
-
this.mvc.perform(get("/auth").session(session).with(httpBasic("user", "password")))
.andExpect(session().id(sessionId));
}
@Test
public void requestWhenSessionFixationProtectionIsMigrateSessionThenSessionIsReplaced() throws Exception {
-
this.spring.configLocations(this.xml("SessionFixationProtectionMigrateSession")).autowire();
-
MockHttpSession session = new MockHttpSession();
String sessionId = session.getId();
-
MvcResult result = this.mvc.perform(get("/auth").session(session).with(httpBasic("user", "password")))
.andExpect(session()).andReturn();
-
assertThat(result.getRequest().getSession(false).getId()).isNotEqualTo(sessionId);
}
@Test
public void requestWhenSessionFixationProtectionIsNoneAndInvalidSessionUrlIsSetThenStillRedirectsOnInvalidSession()
throws Exception {
-
this.spring.configLocations(this.xml("SessionFixationProtectionNoneWithInvalidSessionUrl")).autowire();
-
this.mvc.perform(get("/auth").with((request) -> {
request.setRequestedSessionId("1");
request.setRequestedSessionIdValid(false);
@@ -387,9 +323,7 @@ public class SessionManagementConfigTests {
private void sessionRegistryIsValid() {
SessionRegistry sessionRegistry = this.spring.getContext().getBean("sessionRegistry", SessionRegistry.class);
-
assertThat(sessionRegistry).isNotNull();
-
assertThat(this.getFilter(ConcurrentSessionFilter.class)).returns(sessionRegistry,
this::extractSessionRegistry);
assertThat(this.getFilter(UsernamePasswordAuthenticationFilter.class)).returns(sessionRegistry,
@@ -433,37 +367,26 @@ public class SessionManagementConfigTests {
*/
@Test
public void checkConcurrencyAndLogoutFilterHasSameSizeAndHasLogoutSuccessEventPublishingLogoutHandler() {
-
this.spring.configLocations(this.xml("ConcurrencyControlLogoutAndRememberMeHandlers")).autowire();
-
ConcurrentSessionFilter concurrentSessionFilter = getFilter(ConcurrentSessionFilter.class);
LogoutFilter logoutFilter = getFilter(LogoutFilter.class);
-
LogoutHandler csfLogoutHandler = getFieldValue(concurrentSessionFilter, "handlers");
LogoutHandler lfLogoutHandler = getFieldValue(logoutFilter, "handler");
-
assertThat(csfLogoutHandler).isInstanceOf(CompositeLogoutHandler.class);
assertThat(lfLogoutHandler).isInstanceOf(CompositeLogoutHandler.class);
-
List csfLogoutHandlers = getFieldValue(csfLogoutHandler, "logoutHandlers");
List lfLogoutHandlers = getFieldValue(lfLogoutHandler, "logoutHandlers");
-
assertThat(csfLogoutHandlers).hasSameSizeAs(lfLogoutHandlers);
-
assertThat(csfLogoutHandlers).hasAtLeastOneElementOfType(LogoutSuccessEventPublishingLogoutHandler.class);
assertThat(lfLogoutHandlers).hasAtLeastOneElementOfType(LogoutSuccessEventPublishingLogoutHandler.class);
}
private static MockHttpServletResponse request(MockHttpServletRequest request, ApplicationContext context)
throws IOException, ServletException {
-
MockHttpServletResponse response = new MockHttpServletResponse();
-
FilterChainProxy proxy = context.getBean(FilterChainProxy.class);
-
proxy.doFilter(request, new EncodeUrlDenyingHttpServletResponseWrapper(response), (req, resp) -> {
});
-
return response;
}
@@ -481,7 +404,6 @@ public class SessionManagementConfigTests {
private List getFilters() {
FilterChainProxy proxy = this.spring.getContext().getBean(FilterChainProxy.class);
-
return proxy.getFilters("/");
}
@@ -499,7 +421,6 @@ public class SessionManagementConfigTests {
@Override
public void onAuthentication(Authentication authentication, HttpServletRequest request,
HttpServletResponse response) throws SessionAuthenticationException {
-
response.setStatus(org.springframework.http.HttpStatus.I_AM_A_TEAPOT.value());
}
@@ -514,13 +435,11 @@ public class SessionManagementConfigTests {
@Override
public void loginFail(HttpServletRequest request, HttpServletResponse response) {
-
}
@Override
public void loginSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication successfulAuthentication) {
-
}
@Override
@@ -574,11 +493,8 @@ public class SessionManagementConfigTests {
assertThat(result.getRequest().getSession(false)).isNull();
return;
}
-
assertThat(result.getRequest().getSession(false)).isNotNull();
-
MockHttpSession session = (MockHttpSession) result.getRequest().getSession(false);
-
if (this.valid != null) {
if (this.valid) {
assertThat(session.isInvalid()).isFalse();
@@ -587,7 +503,6 @@ public class SessionManagementConfigTests {
assertThat(session.isInvalid()).isTrue();
}
}
-
if (this.id != null) {
assertThat(session.getId()).isEqualTo(this.id);
}
diff --git a/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTransientAuthenticationTests.java b/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTransientAuthenticationTests.java
index aa9ab7a33f..8e2df3e6e9 100644
--- a/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTransientAuthenticationTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/SessionManagementConfigTransientAuthenticationTests.java
@@ -47,7 +47,6 @@ public class SessionManagementConfigTransientAuthenticationTests {
@Test
public void postWhenTransientAuthenticationThenNoSessionCreated() throws Exception {
-
this.spring.configLocations(this.xml("WithTransientAuthentication")).autowire();
MvcResult result = this.mvc.perform(post("/login")).andReturn();
assertThat(result.getRequest().getSession(false)).isNull();
@@ -55,7 +54,6 @@ public class SessionManagementConfigTransientAuthenticationTests {
@Test
public void postWhenTransientAuthenticationThenAlwaysSessionOverrides() throws Exception {
-
this.spring.configLocations(this.xml("CreateSessionAlwaysWithTransientAuthentication")).autowire();
MvcResult result = this.mvc.perform(post("/login")).andReturn();
assertThat(result.getRequest().getSession(false)).isNotNull();
diff --git a/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java b/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java
index 9f715ddce9..9b770c28ae 100644
--- a/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java
+++ b/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java
@@ -75,11 +75,8 @@ public class CustomHttpSecurityConfigurerTests {
@Test
public void customConfiguerPermitAll() throws Exception {
loadContext(Config.class);
-
this.request.setPathInfo("/public/something");
-
this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain);
-
assertThat(this.response.getStatus()).isEqualTo(HttpServletResponse.SC_OK);
}
@@ -87,9 +84,7 @@ public class CustomHttpSecurityConfigurerTests {
public void customConfiguerFormLogin() throws Exception {
loadContext(Config.class);
this.request.setPathInfo("/requires-authentication");
-
this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain);
-
assertThat(this.response.getRedirectedUrl()).endsWith("/custom");
}
@@ -98,9 +93,7 @@ public class CustomHttpSecurityConfigurerTests {
loadContext(ConfigCustomize.class);
this.request.setPathInfo("/public/something");
this.request.setMethod("POST");
-
this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain);
-
assertThat(this.response.getStatus()).isEqualTo(HttpServletResponse.SC_OK);
}
@@ -108,9 +101,7 @@ public class CustomHttpSecurityConfigurerTests {
public void customConfiguerCustomizeFormLogin() throws Exception {
loadContext(ConfigCustomize.class);
this.request.setPathInfo("/requires-authentication");
-
this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain);
-
assertThat(this.response.getRedirectedUrl()).endsWith("/other");
}
@@ -136,7 +127,6 @@ public class CustomHttpSecurityConfigurerTests {
// Typically externalize this as a properties file
Properties properties = new Properties();
properties.setProperty("permitAllPattern", "/public/**");
-
PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer();
propertyPlaceholderConfigurer.setProperties(properties);
return propertyPlaceholderConfigurer;
@@ -164,7 +154,6 @@ public class CustomHttpSecurityConfigurerTests {
// Typically externalize this as a properties file
Properties properties = new Properties();
properties.setProperty("permitAllPattern", "/public/**");
-
PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer();
propertyPlaceholderConfigurer.setProperties(properties);
return propertyPlaceholderConfigurer;
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 3e0088b38a..f4f2fe7f62 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
@@ -96,7 +96,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
@Test(expected = AuthenticationCredentialsNotFoundException.class)
public void targetShouldPreventProtectedMethodInvocationWithNoContext() {
loadContext();
-
this.target.someUserMethod1();
}
@@ -105,9 +104,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
loadContext();
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", "password");
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someUserMethod1();
-
// SEC-1213. Check the order
Advisor[] advisors = ((Advised) this.target).getAdvisors();
assertThat(advisors).hasSize(1);
@@ -119,9 +116,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
loadContext();
TestingAuthenticationToken token = new TestingAuthenticationToken("Test", "Password", "ROLE_SOMEOTHERROLE");
token.setAuthenticated(true);
-
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someAdminMethod();
}
@@ -132,10 +127,8 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
+ "" + ""
+ " " + ""
+ "");
-
PostProcessedMockUserDetailsService service = (PostProcessedMockUserDetailsService) this.appContext
.getBean("myUserService");
-
assertThat(service.getPostProcessorWasHere()).isEqualTo("Hello from the post processor!");
}
@@ -147,12 +140,10 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
+ ""
+ "" + ""
+ " " + "");
-
UserDetailsService service = (UserDetailsService) this.appContext.getBean("myUserService");
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_SOMEOTHERROLE"));
SecurityContextHolder.getContext().setAuthentication(token);
-
service.loadUserByUsername("notused");
}
@@ -169,7 +160,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
// someOther(int) should not be matched by someOther(String), but should require
// ROLE_USER
this.target.someOther(0);
-
try {
// String version should required admin role
this.target.someOther("somestring");
@@ -190,7 +180,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
this.target = (BusinessService) this.appContext.getBean("target");
// String method should not be protected
this.target.someOther("somestring");
-
// All others should require ROLE_USER
try {
this.target.someOther(0);
@@ -198,7 +187,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
}
catch (AuthenticationCredentialsNotFoundException expected) {
}
-
SecurityContextHolder.getContext()
.setAuthentication(new UsernamePasswordAuthenticationToken("user", "password"));
this.target.someOther(0);
@@ -217,7 +205,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
+ " "
+ " "
+ "" + ConfigTestUtils.AUTH_PROVIDER_XML);
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_SOMEOTHERROLE"));
SecurityContextHolder.getContext().setAuthentication(token);
@@ -226,7 +213,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
}
// Expression configuration tests
-
@SuppressWarnings("unchecked")
@Test
public void expressionVoterAndAfterInvocationProviderUseSameExpressionHandlerInstance() throws Exception {
@@ -341,7 +327,6 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
props.addPropertyValue("key", "blah");
parent.registerSingleton("runAsMgr", RunAsManagerImpl.class, props);
parent.refresh();
-
setContext("" + ConfigTestUtils.AUTH_PROVIDER_XML,
parent);
RunAsManagerImpl ram = (RunAsManagerImpl) this.appContext.getBean("runAsMgr");
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 4771006d75..0316daf0fe 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
@@ -74,7 +74,6 @@ public class InterceptMethodsBeanDefinitionDecoratorTests implements Application
assertThat(this.appContext.getBeansOfType(ApplicationListener.class)).hasSize(1);
assertThat(this.appContext.getBeanNamesForType(ApplicationListener.class)).hasSize(1);
this.appContext.publishEvent(new AuthenticationSuccessEvent(new TestingAuthenticationToken("user", "")));
-
assertThat(this.target).isInstanceOf(ApplicationListener.class);
}
@@ -93,7 +92,6 @@ public class InterceptMethodsBeanDefinitionDecoratorTests implements Application
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_USER"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.doSomething();
}
@@ -102,7 +100,6 @@ public class InterceptMethodsBeanDefinitionDecoratorTests implements Application
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_SOMEOTHERROLE"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.doSomething();
}
diff --git a/config/src/test/java/org/springframework/security/config/method/Jsr250AnnotationDrivenBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/method/Jsr250AnnotationDrivenBeanDefinitionParserTests.java
index 20b5183888..46ca86f261 100644
--- a/config/src/test/java/org/springframework/security/config/method/Jsr250AnnotationDrivenBeanDefinitionParserTests.java
+++ b/config/src/test/java/org/springframework/security/config/method/Jsr250AnnotationDrivenBeanDefinitionParserTests.java
@@ -64,7 +64,6 @@ public class Jsr250AnnotationDrivenBeanDefinitionParserTests {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_USER"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someOther(0);
}
@@ -73,7 +72,6 @@ public class Jsr250AnnotationDrivenBeanDefinitionParserTests {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_USER"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someUserMethod1();
}
@@ -82,7 +80,6 @@ public class Jsr250AnnotationDrivenBeanDefinitionParserTests {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_SOMEOTHERROLE"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someAdminMethod();
}
@@ -91,7 +88,6 @@ public class Jsr250AnnotationDrivenBeanDefinitionParserTests {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_USER"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.rolesAllowedUser();
}
diff --git a/config/src/test/java/org/springframework/security/config/method/Sec2196Tests.java b/config/src/test/java/org/springframework/security/config/method/Sec2196Tests.java
index 083b3c2b7f..7814a7f7d6 100644
--- a/config/src/test/java/org/springframework/security/config/method/Sec2196Tests.java
+++ b/config/src/test/java/org/springframework/security/config/method/Sec2196Tests.java
@@ -38,7 +38,6 @@ public class Sec2196Tests {
public void genericMethodsProtected() {
loadContext(""
+ "");
-
SecurityContextHolder.getContext()
.setAuthentication(new TestingAuthenticationToken("test", "pass", "ROLE_USER"));
Service service = this.context.getBean(Service.class);
@@ -49,7 +48,6 @@ public class Sec2196Tests {
public void genericMethodsAllowed() {
loadContext(""
+ "");
-
SecurityContextHolder.getContext()
.setAuthentication(new TestingAuthenticationToken("test", "pass", "saveUsers"));
Service service = this.context.getBean(Service.class);
diff --git a/config/src/test/java/org/springframework/security/config/method/SecuredAnnotationDrivenBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/method/SecuredAnnotationDrivenBeanDefinitionParserTests.java
index 3d46358d09..c7f1cc54a2 100644
--- a/config/src/test/java/org/springframework/security/config/method/SecuredAnnotationDrivenBeanDefinitionParserTests.java
+++ b/config/src/test/java/org/springframework/security/config/method/SecuredAnnotationDrivenBeanDefinitionParserTests.java
@@ -73,7 +73,6 @@ public class SecuredAnnotationDrivenBeanDefinitionParserTests {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_USER"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someUserMethod1();
}
@@ -82,7 +81,6 @@ public class SecuredAnnotationDrivenBeanDefinitionParserTests {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_SOMEOTHER"));
SecurityContextHolder.getContext().setAuthentication(token);
-
this.target.someAdminMethod();
}
@@ -101,7 +99,6 @@ public class SecuredAnnotationDrivenBeanDefinitionParserTests {
catch (AuthenticationCredentialsNotFoundException expected) {
}
SecurityContextHolder.getContext().setAuthentication(new TestingAuthenticationToken("u", "p", "ROLE_A"));
-
BusinessService chompedTarget = (BusinessService) serializeAndDeserialize(this.target);
chompedTarget.someAdminMethod();
}
@@ -113,11 +110,9 @@ public class SecuredAnnotationDrivenBeanDefinitionParserTests {
oos.flush();
baos.flush();
byte[] bytes = baos.toByteArray();
-
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(is);
Object o2 = ois.readObject();
-
return o2;
}
diff --git a/config/src/test/java/org/springframework/security/config/method/sec2136/Sec2136Tests.java b/config/src/test/java/org/springframework/security/config/method/sec2136/Sec2136Tests.java
index a78f32bf76..4951e56206 100644
--- a/config/src/test/java/org/springframework/security/config/method/sec2136/Sec2136Tests.java
+++ b/config/src/test/java/org/springframework/security/config/method/sec2136/Sec2136Tests.java
@@ -32,7 +32,6 @@ public class Sec2136Tests {
@Test
public void configurationLoads() {
-
}
}
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 2c593e80dc..c20e3c7b59 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
@@ -100,15 +100,11 @@ public class ClientRegistrationsBeanDefinitionParserTests {
this.server = new MockWebServer();
this.server.start();
String serverUrl = this.server.url("/").toString();
-
String discoveryResponse = OIDC_DISCOVERY_RESPONSE.replace("${issuer-uri}", serverUrl);
this.server.enqueue(jsonResponse(discoveryResponse));
-
String contextConfig = ISSUER_URI_XML_CONFIG.replace("${issuer-uri}", serverUrl);
this.spring.context(contextConfig).autowire();
-
assertThat(this.clientRegistrationRepository).isInstanceOf(InMemoryClientRegistrationRepository.class);
-
ClientRegistration googleRegistration = this.clientRegistrationRepository.findByRegistrationId("google-login");
assertThat(googleRegistration).isNotNull();
assertThat(googleRegistration.getRegistrationId()).isEqualTo("google-login");
@@ -120,7 +116,6 @@ public class ClientRegistrationsBeanDefinitionParserTests {
assertThat(googleRegistration.getScopes())
.isEqualTo(StringUtils.commaDelimitedListToSet("openid,profile,email"));
assertThat(googleRegistration.getClientName()).isEqualTo(serverUrl);
-
ProviderDetails googleProviderDetails = googleRegistration.getProviderDetails();
assertThat(googleProviderDetails).isNotNull();
assertThat(googleProviderDetails.getAuthorizationUri()).isEqualTo("https://example.com/o/oauth2/v2/auth");
@@ -138,9 +133,7 @@ public class ClientRegistrationsBeanDefinitionParserTests {
public void parseWhenMultipleClientsConfiguredThenAvailableInRepository() {
this.spring.configLocations(ClientRegistrationsBeanDefinitionParserTests.xml("MultiClientRegistration"))
.autowire();
-
assertThat(this.clientRegistrationRepository).isInstanceOf(InMemoryClientRegistrationRepository.class);
-
ClientRegistration googleRegistration = this.clientRegistrationRepository.findByRegistrationId("google-login");
assertThat(googleRegistration).isNotNull();
assertThat(googleRegistration.getRegistrationId()).isEqualTo("google-login");
@@ -152,7 +145,6 @@ public class ClientRegistrationsBeanDefinitionParserTests {
assertThat(googleRegistration.getScopes())
.isEqualTo(StringUtils.commaDelimitedListToSet("openid,profile,email"));
assertThat(googleRegistration.getClientName()).isEqualTo("Google");
-
ProviderDetails googleProviderDetails = googleRegistration.getProviderDetails();
assertThat(googleProviderDetails).isNotNull();
assertThat(googleProviderDetails.getAuthorizationUri())
@@ -165,7 +157,6 @@ public class ClientRegistrationsBeanDefinitionParserTests {
assertThat(googleProviderDetails.getUserInfoEndpoint().getUserNameAttributeName()).isEqualTo("sub");
assertThat(googleProviderDetails.getJwkSetUri()).isEqualTo("https://www.googleapis.com/oauth2/v3/certs");
assertThat(googleProviderDetails.getIssuerUri()).isEqualTo("https://accounts.google.com");
-
ClientRegistration githubRegistration = this.clientRegistrationRepository.findByRegistrationId("github-login");
assertThat(githubRegistration).isNotNull();
assertThat(githubRegistration.getRegistrationId()).isEqualTo("github-login");
@@ -177,7 +168,6 @@ public class ClientRegistrationsBeanDefinitionParserTests {
assertThat(googleRegistration.getScopes())
.isEqualTo(StringUtils.commaDelimitedListToSet("openid,profile,email"));
assertThat(githubRegistration.getClientName()).isEqualTo("Github");
-
ProviderDetails githubProviderDetails = githubRegistration.getProviderDetails();
assertThat(githubProviderDetails).isNotNull();
assertThat(githubProviderDetails.getAuthorizationUri()).isEqualTo("https://github.com/login/oauth/authorize");
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 9da52a47c7..dba5ac9173 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
@@ -128,13 +128,11 @@ public class SpringTestContext implements Closeable {
this.context.setServletContext(new MockServletContext());
this.context.setServletConfig(new MockServletConfig());
this.context.refresh();
-
if (this.context.containsBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN)) {
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).apply(springSecurity())
.apply(new AddFilter()).build();
this.context.getBeanFactory().registerResolvableDependency(MockMvc.class, mockMvc);
}
-
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
bpp.setBeanFactory(this.context.getBeanFactory());
bpp.processInjection(this.test);
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 5ba707036e..865462456d 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
@@ -42,7 +42,6 @@ public class InMemoryXmlApplicationContext extends AbstractXmlApplicationContext
+ "http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-2.5.xsd\n"
+ "http://www.springframework.org/schema/security https://www.springframework.org/schema/security/spring-security-";
static final String BEANS_CLOSE = "\n";
-
static final String SPRING_SECURITY_VERSION = "5.4";
Resource inMemoryXml;
diff --git a/config/src/test/java/org/springframework/security/config/web/server/AuthorizeExchangeSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/AuthorizeExchangeSpecTests.java
index 1fec30b4fc..22e87bbe62 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/AuthorizeExchangeSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/AuthorizeExchangeSpecTests.java
@@ -35,30 +35,20 @@ public class AuthorizeExchangeSpecTests {
public void antMatchersWhenMethodAndPatternsThenDiscriminatesByMethod() {
this.http.csrf().disable().authorizeExchange().pathMatchers(HttpMethod.POST, "/a", "/b").denyAll().anyExchange()
.permitAll();
-
WebTestClient client = buildClient();
-
client.get().uri("/a").exchange().expectStatus().isOk();
-
client.get().uri("/b").exchange().expectStatus().isOk();
-
client.post().uri("/a").exchange().expectStatus().isUnauthorized();
-
client.post().uri("/b").exchange().expectStatus().isUnauthorized();
}
@Test
public void antMatchersWhenPatternsThenAnyMethod() {
this.http.csrf().disable().authorizeExchange().pathMatchers("/a", "/b").denyAll().anyExchange().permitAll();
-
WebTestClient client = buildClient();
-
client.get().uri("/a").exchange().expectStatus().isUnauthorized();
-
client.get().uri("/b").exchange().expectStatus().isUnauthorized();
-
client.post().uri("/a").exchange().expectStatus().isUnauthorized();
-
client.post().uri("/b").exchange().expectStatus().isUnauthorized();
}
@@ -66,15 +56,10 @@ public class AuthorizeExchangeSpecTests {
public void antMatchersWhenPatternsInLambdaThenAnyMethod() {
this.http.csrf(ServerHttpSecurity.CsrfSpec::disable).authorizeExchange(
(exchanges) -> exchanges.pathMatchers("/a", "/b").denyAll().anyExchange().permitAll());
-
WebTestClient client = buildClient();
-
client.get().uri("/a").exchange().expectStatus().isUnauthorized();
-
client.get().uri("/b").exchange().expectStatus().isUnauthorized();
-
client.post().uri("/a").exchange().expectStatus().isUnauthorized();
-
client.post().uri("/b").exchange().expectStatus().isUnauthorized();
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/CorsSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/CorsSpecTests.java
index 33e1d2e9c0..7499e9c240 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/CorsSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/CorsSpecTests.java
@@ -105,9 +105,7 @@ public class CorsSpecTests {
WebTestClient client = buildClient();
FluxExchangeResult response = client.get().uri("https://example.com/")
.headers((h) -> h.setOrigin("https://origin.example.com")).exchange().returnResult(String.class);
-
Map> responseHeaders = response.getResponseHeaders();
-
if (!this.expectedHeaders.isEmpty()) {
assertThat(responseHeaders).describedAs(response.toString()).containsAllEntriesOf(this.expectedHeaders);
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/ExceptionHandlingSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/ExceptionHandlingSpecTests.java
index 470536e558..4b3ffae2ce 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/ExceptionHandlingSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/ExceptionHandlingSpecTests.java
@@ -42,9 +42,7 @@ public class ExceptionHandlingSpecTests {
public void defaultAuthenticationEntryPoint() {
SecurityWebFilterChain securityWebFilter = this.http.csrf().disable().authorizeExchange().anyExchange()
.authenticated().and().exceptionHandling().and().build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/test").exchange().expectStatus().isUnauthorized().expectHeader()
.valueMatches("WWW-Authenticate", "Basic.*");
}
@@ -54,9 +52,7 @@ public class ExceptionHandlingSpecTests {
SecurityWebFilterChain securityWebFilter = this.http
.authorizeExchange((exchanges) -> exchanges.anyExchange().authenticated())
.exceptionHandling(withDefaults()).build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/test").exchange().expectStatus().isUnauthorized().expectHeader()
.valueMatches("WWW-Authenticate", "Basic.*");
}
@@ -66,9 +62,7 @@ public class ExceptionHandlingSpecTests {
SecurityWebFilterChain securityWebFilter = this.http.csrf().disable().authorizeExchange().anyExchange()
.authenticated().and().exceptionHandling()
.authenticationEntryPoint(redirectServerAuthenticationEntryPoint("/auth")).and().build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/test").exchange().expectStatus().isFound().expectHeader().valueMatches("Location", ".*");
}
@@ -79,9 +73,7 @@ public class ExceptionHandlingSpecTests {
.exceptionHandling((exceptionHandling) -> exceptionHandling
.authenticationEntryPoint(redirectServerAuthenticationEntryPoint("/auth")))
.build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/test").exchange().expectStatus().isFound().expectHeader().valueMatches("Location", ".*");
}
@@ -89,9 +81,7 @@ public class ExceptionHandlingSpecTests {
public void defaultAccessDeniedHandler() {
SecurityWebFilterChain securityWebFilter = this.http.csrf().disable().httpBasic().and().authorizeExchange()
.anyExchange().hasRole("ADMIN").and().exceptionHandling().and().build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/admin").headers((headers) -> headers.setBasicAuth("user", "password")).exchange()
.expectStatus().isForbidden();
}
@@ -101,9 +91,7 @@ public class ExceptionHandlingSpecTests {
SecurityWebFilterChain securityWebFilter = this.http.httpBasic(withDefaults())
.authorizeExchange((exchanges) -> exchanges.anyExchange().hasRole("ADMIN"))
.exceptionHandling(withDefaults()).build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/admin").headers((headers) -> headers.setBasicAuth("user", "password")).exchange()
.expectStatus().isForbidden();
}
@@ -113,9 +101,7 @@ public class ExceptionHandlingSpecTests {
SecurityWebFilterChain securityWebFilter = this.http.csrf().disable().httpBasic().and().authorizeExchange()
.anyExchange().hasRole("ADMIN").and().exceptionHandling()
.accessDeniedHandler(httpStatusServerAccessDeniedHandler(HttpStatus.BAD_REQUEST)).and().build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/admin").headers((headers) -> headers.setBasicAuth("user", "password")).exchange()
.expectStatus().isBadRequest();
}
@@ -127,9 +113,7 @@ public class ExceptionHandlingSpecTests {
.exceptionHandling((exceptionHandling) -> exceptionHandling
.accessDeniedHandler(httpStatusServerAccessDeniedHandler(HttpStatus.BAD_REQUEST)))
.build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
client.get().uri("/admin").headers((headers) -> headers.setBasicAuth("user", "password")).exchange()
.expectStatus().isBadRequest();
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java b/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java
index 791d064c70..cf96b628a1 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java
@@ -70,22 +70,14 @@ public class FormLoginTests {
public void defaultLoginPage() {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = HomePage.to(driver, DefaultLoginPage.class).assertAt();
-
loginPage = loginPage.loginForm().username("user").password("invalid").submit(DefaultLoginPage.class)
.assertError();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
homePage.assertAt();
-
loginPage = DefaultLogoutPage.to(driver).assertAt().logout();
-
loginPage.assertAt().assertLogout();
}
@@ -94,22 +86,14 @@ public class FormLoginTests {
SecurityWebFilterChain securityWebFilter = this.http
.authorizeExchange((exchanges) -> exchanges.anyExchange().authenticated()).formLogin(withDefaults())
.build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = HomePage.to(driver, DefaultLoginPage.class).assertAt();
-
loginPage = loginPage.loginForm().username("user").password("invalid").submit(DefaultLoginPage.class)
.assertError();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
homePage.assertAt();
-
loginPage = DefaultLogoutPage.to(driver).assertAt().logout();
-
loginPage.assertAt().assertLogout();
}
@@ -117,17 +101,12 @@ public class FormLoginTests {
public void customLoginPage() {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().pathMatchers("/login").permitAll()
.anyExchange().authenticated().and().formLogin().loginPage("/login").and().build();
-
WebTestClient webTestClient = WebTestClient
.bindToController(new CustomLoginPageController(), new WebTestClientBuilder.Http200RestController())
.webFilter(new WebFilterChainProxy(securityWebFilter)).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
CustomLoginPage loginPage = HomePage.to(driver, CustomLoginPage.class).assertAt();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
homePage.assertAt();
}
@@ -137,17 +116,12 @@ public class FormLoginTests {
.authorizeExchange(
(exchanges) -> exchanges.pathMatchers("/login").permitAll().anyExchange().authenticated())
.formLogin((formLogin) -> formLogin.loginPage("/login")).build();
-
WebTestClient webTestClient = WebTestClient
.bindToController(new CustomLoginPageController(), new WebTestClientBuilder.Http200RestController())
.webFilter(new WebFilterChainProxy(securityWebFilter)).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
CustomLoginPage loginPage = HomePage.to(driver, CustomLoginPage.class).assertAt();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
homePage.assertAt();
}
@@ -156,15 +130,10 @@ public class FormLoginTests {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().pathMatchers("/login", "/failure")
.permitAll().anyExchange().authenticated().and().formLogin()
.authenticationFailureHandler(new RedirectServerAuthenticationFailureHandler("/failure")).and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = HomePage.to(driver, DefaultLoginPage.class).assertAt();
-
loginPage.loginForm().username("invalid").password("invalid").submit(HomePage.class);
-
assertThat(driver.getCurrentUrl()).endsWith("/failure");
}
@@ -173,13 +142,9 @@ public class FormLoginTests {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().pathMatchers("/login", "/sign-in")
.permitAll().anyExchange().authenticated().and().formLogin()
.requiresAuthenticationMatcher(new PathPatternParserServerWebExchangeMatcher("/sign-in")).and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
driver.get("http://localhost/sign-in");
-
assertThat(driver.getCurrentUrl()).endsWith("/login?error");
}
@@ -188,15 +153,10 @@ public class FormLoginTests {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().authenticationSuccessHandler(new RedirectServerAuthenticationSuccessHandler("/custom"))
.and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = DefaultLoginPage.to(driver).assertAt();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
assertThat(driver.getCurrentUrl()).endsWith("/custom");
}
@@ -204,25 +164,17 @@ public class FormLoginTests {
public void customAuthenticationManager() {
ReactiveAuthenticationManager defaultAuthenticationManager = mock(ReactiveAuthenticationManager.class);
ReactiveAuthenticationManager customAuthenticationManager = mock(ReactiveAuthenticationManager.class);
-
given(defaultAuthenticationManager.authenticate(any()))
.willThrow(new RuntimeException("should not interact with default auth manager"));
given(customAuthenticationManager.authenticate(any()))
.willReturn(Mono.just(new TestingAuthenticationToken("user", "password", "ROLE_USER", "ROLE_ADMIN")));
-
SecurityWebFilterChain securityWebFilter = this.http.authenticationManager(defaultAuthenticationManager)
.formLogin().authenticationManager(customAuthenticationManager).and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = DefaultLoginPage.to(driver).assertAt();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
homePage.assertAt();
-
verifyZeroInteractions(defaultAuthenticationManager);
}
@@ -230,28 +182,19 @@ public class FormLoginTests {
public void formLoginSecurityContextRepository() {
ServerSecurityContextRepository defaultSecContextRepository = mock(ServerSecurityContextRepository.class);
ServerSecurityContextRepository formLoginSecContextRepository = mock(ServerSecurityContextRepository.class);
-
TestingAuthenticationToken token = new TestingAuthenticationToken("rob", "rob", "ROLE_USER");
-
given(defaultSecContextRepository.save(any(), any())).willReturn(Mono.empty());
given(defaultSecContextRepository.load(any())).willReturn(authentication(token));
given(formLoginSecContextRepository.save(any(), any())).willReturn(Mono.empty());
given(formLoginSecContextRepository.load(any())).willReturn(authentication(token));
-
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.securityContextRepository(defaultSecContextRepository).formLogin()
.securityContextRepository(formLoginSecContextRepository).and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = DefaultLoginPage.to(driver).assertAt();
-
HomePage homePage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
homePage.assertAt();
-
verify(defaultSecContextRepository, atLeastOnce()).load(any());
verify(formLoginSecContextRepository).save(any(), any());
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/HeaderSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/HeaderSpecTests.java
index a168b477f7..5efabbd93e 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/HeaderSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/HeaderSpecTests.java
@@ -77,39 +77,32 @@ public class HeaderSpecTests {
@Test
public void headersWhenDisableThenNoSecurityHeaders() {
new HashSet<>(this.expectedHeaders.keySet()).forEach(this::expectHeaderNamesNotPresent);
-
this.http.headers().disable();
-
assertHeaders();
}
@Test
public void headersWhenDisableInLambdaThenNoSecurityHeaders() {
new HashSet<>(this.expectedHeaders.keySet()).forEach(this::expectHeaderNamesNotPresent);
-
this.http.headers((headers) -> headers.disable());
-
assertHeaders();
}
@Test
public void headersWhenDisableAndInvokedExplicitlyThenDefautsUsed() {
this.http.headers().disable().headers();
-
assertHeaders();
}
@Test
public void headersWhenDefaultsThenAllDefaultsWritten() {
this.http.headers();
-
assertHeaders();
}
@Test
public void headersWhenDefaultsInLambdaThenAllDefaultsWritten() {
this.http.headers(withDefaults());
-
assertHeaders();
}
@@ -117,7 +110,6 @@ public class HeaderSpecTests {
public void headersWhenCacheDisableThenCacheNotWritten() {
expectHeaderNamesNotPresent(HttpHeaders.CACHE_CONTROL, HttpHeaders.PRAGMA, HttpHeaders.EXPIRES);
this.http.headers().cache().disable();
-
assertHeaders();
}
@@ -125,7 +117,6 @@ public class HeaderSpecTests {
public void headersWhenCacheDisableInLambdaThenCacheNotWritten() {
expectHeaderNamesNotPresent(HttpHeaders.CACHE_CONTROL, HttpHeaders.PRAGMA, HttpHeaders.EXPIRES);
this.http.headers((headers) -> headers.cache((cache) -> cache.disable()));
-
assertHeaders();
}
@@ -133,7 +124,6 @@ public class HeaderSpecTests {
public void headersWhenContentOptionsDisableThenContentTypeOptionsNotWritten() {
expectHeaderNamesNotPresent(ContentTypeOptionsServerHttpHeadersWriter.X_CONTENT_OPTIONS);
this.http.headers().contentTypeOptions().disable();
-
assertHeaders();
}
@@ -142,7 +132,6 @@ public class HeaderSpecTests {
expectHeaderNamesNotPresent(ContentTypeOptionsServerHttpHeadersWriter.X_CONTENT_OPTIONS);
this.http
.headers((headers) -> headers.contentTypeOptions((contentTypeOptions) -> contentTypeOptions.disable()));
-
assertHeaders();
}
@@ -150,7 +139,6 @@ public class HeaderSpecTests {
public void headersWhenHstsDisableThenHstsNotWritten() {
expectHeaderNamesNotPresent(StrictTransportSecurityServerHttpHeadersWriter.STRICT_TRANSPORT_SECURITY);
this.http.headers().hsts().disable();
-
assertHeaders();
}
@@ -158,7 +146,6 @@ public class HeaderSpecTests {
public void headersWhenHstsDisableInLambdaThenHstsNotWritten() {
expectHeaderNamesNotPresent(StrictTransportSecurityServerHttpHeadersWriter.STRICT_TRANSPORT_SECURITY);
this.http.headers((headers) -> headers.hsts((hsts) -> hsts.disable()));
-
assertHeaders();
}
@@ -168,7 +155,6 @@ public class HeaderSpecTests {
this.expectedHeaders.add(StrictTransportSecurityServerHttpHeadersWriter.STRICT_TRANSPORT_SECURITY,
"max-age=60");
this.http.headers().hsts().maxAge(Duration.ofSeconds(60)).includeSubdomains(false);
-
assertHeaders();
}
@@ -179,7 +165,6 @@ public class HeaderSpecTests {
"max-age=60");
this.http.headers(
(headers) -> headers.hsts((hsts) -> hsts.maxAge(Duration.ofSeconds(60)).includeSubdomains(false)));
-
assertHeaders();
}
@@ -189,7 +174,6 @@ public class HeaderSpecTests {
this.expectedHeaders.add(StrictTransportSecurityServerHttpHeadersWriter.STRICT_TRANSPORT_SECURITY,
"max-age=60 ; includeSubDomains ; preload");
this.http.headers().hsts().maxAge(Duration.ofSeconds(60)).preload(true);
-
assertHeaders();
}
@@ -199,7 +183,6 @@ public class HeaderSpecTests {
this.expectedHeaders.add(StrictTransportSecurityServerHttpHeadersWriter.STRICT_TRANSPORT_SECURITY,
"max-age=60 ; includeSubDomains ; preload");
this.http.headers((headers) -> headers.hsts((hsts) -> hsts.maxAge(Duration.ofSeconds(60)).preload(true)));
-
assertHeaders();
}
@@ -207,7 +190,6 @@ public class HeaderSpecTests {
public void headersWhenFrameOptionsDisableThenFrameOptionsNotWritten() {
expectHeaderNamesNotPresent(XFrameOptionsServerHttpHeadersWriter.X_FRAME_OPTIONS);
this.http.headers().frameOptions().disable();
-
assertHeaders();
}
@@ -215,7 +197,6 @@ public class HeaderSpecTests {
public void headersWhenFrameOptionsDisableInLambdaThenFrameOptionsNotWritten() {
expectHeaderNamesNotPresent(XFrameOptionsServerHttpHeadersWriter.X_FRAME_OPTIONS);
this.http.headers((headers) -> headers.frameOptions((frameOptions) -> frameOptions.disable()));
-
assertHeaders();
}
@@ -223,7 +204,6 @@ public class HeaderSpecTests {
public void headersWhenFrameOptionsModeThenFrameOptionsCustomMode() {
this.expectedHeaders.set(XFrameOptionsServerHttpHeadersWriter.X_FRAME_OPTIONS, "SAMEORIGIN");
this.http.headers().frameOptions().mode(XFrameOptionsServerHttpHeadersWriter.Mode.SAMEORIGIN);
-
assertHeaders();
}
@@ -232,7 +212,6 @@ public class HeaderSpecTests {
this.expectedHeaders.set(XFrameOptionsServerHttpHeadersWriter.X_FRAME_OPTIONS, "SAMEORIGIN");
this.http.headers((headers) -> headers.frameOptions(
(frameOptions) -> frameOptions.mode(XFrameOptionsServerHttpHeadersWriter.Mode.SAMEORIGIN)));
-
assertHeaders();
}
@@ -240,7 +219,6 @@ public class HeaderSpecTests {
public void headersWhenXssProtectionDisableThenXssProtectionNotWritten() {
expectHeaderNamesNotPresent("X-Xss-Protection");
this.http.headers().xssProtection().disable();
-
assertHeaders();
}
@@ -248,7 +226,6 @@ public class HeaderSpecTests {
public void headersWhenXssProtectionDisableInLambdaThenXssProtectionNotWritten() {
expectHeaderNamesNotPresent("X-Xss-Protection");
this.http.headers((headers) -> headers.xssProtection((xssProtection) -> xssProtection.disable()));
-
assertHeaders();
}
@@ -256,9 +233,7 @@ public class HeaderSpecTests {
public void headersWhenFeaturePolicyEnabledThenFeaturePolicyWritten() {
String policyDirectives = "Feature-Policy";
this.expectedHeaders.add(FeaturePolicyServerHttpHeadersWriter.FEATURE_POLICY, policyDirectives);
-
this.http.headers().featurePolicy(policyDirectives);
-
assertHeaders();
}
@@ -267,9 +242,7 @@ public class HeaderSpecTests {
String policyDirectives = "default-src 'self'";
this.expectedHeaders.add(ContentSecurityPolicyServerHttpHeadersWriter.CONTENT_SECURITY_POLICY,
policyDirectives);
-
this.http.headers().contentSecurityPolicy(policyDirectives);
-
assertHeaders();
}
@@ -278,9 +251,7 @@ public class HeaderSpecTests {
String expectedPolicyDirectives = "default-src 'self'";
this.expectedHeaders.add(ContentSecurityPolicyServerHttpHeadersWriter.CONTENT_SECURITY_POLICY,
expectedPolicyDirectives);
-
this.http.headers((headers) -> headers.contentSecurityPolicy(withDefaults()));
-
assertHeaders();
}
@@ -289,10 +260,8 @@ public class HeaderSpecTests {
String policyDirectives = "default-src 'self' *.trusted.com";
this.expectedHeaders.add(ContentSecurityPolicyServerHttpHeadersWriter.CONTENT_SECURITY_POLICY,
policyDirectives);
-
this.http.headers((headers) -> headers.contentSecurityPolicy(
(contentSecurityPolicy) -> contentSecurityPolicy.policyDirectives(policyDirectives)));
-
assertHeaders();
}
@@ -301,7 +270,6 @@ public class HeaderSpecTests {
this.expectedHeaders.add(ReferrerPolicyServerHttpHeadersWriter.REFERRER_POLICY,
ReferrerPolicy.NO_REFERRER.getPolicy());
this.http.headers().referrerPolicy();
-
assertHeaders();
}
@@ -310,7 +278,6 @@ public class HeaderSpecTests {
this.expectedHeaders.add(ReferrerPolicyServerHttpHeadersWriter.REFERRER_POLICY,
ReferrerPolicy.NO_REFERRER.getPolicy());
this.http.headers((headers) -> headers.referrerPolicy(withDefaults()));
-
assertHeaders();
}
@@ -319,7 +286,6 @@ public class HeaderSpecTests {
this.expectedHeaders.add(ReferrerPolicyServerHttpHeadersWriter.REFERRER_POLICY,
ReferrerPolicy.NO_REFERRER_WHEN_DOWNGRADE.getPolicy());
this.http.headers().referrerPolicy(ReferrerPolicy.NO_REFERRER_WHEN_DOWNGRADE);
-
assertHeaders();
}
@@ -329,7 +295,6 @@ public class HeaderSpecTests {
ReferrerPolicy.NO_REFERRER_WHEN_DOWNGRADE.getPolicy());
this.http.headers((headers) -> headers
.referrerPolicy((referrerPolicy) -> referrerPolicy.policy(ReferrerPolicy.NO_REFERRER_WHEN_DOWNGRADE)));
-
assertHeaders();
}
@@ -337,10 +302,7 @@ public class HeaderSpecTests {
public void headersWhenCustomHeadersWriter() {
this.expectedHeaders.add(CUSTOM_HEADER, CUSTOM_VALUE);
this.http.headers((headers) -> headers.writer((exchange) -> Mono.just(exchange)
- .doOnNext((it) -> it.getResponse().getHeaders().add(CUSTOM_HEADER, CUSTOM_VALUE)).then()
-
- ));
-
+ .doOnNext((it) -> it.getResponse().getHeaders().add(CUSTOM_HEADER, CUSTOM_VALUE)).then()));
assertHeaders();
}
@@ -355,9 +317,7 @@ public class HeaderSpecTests {
WebTestClient client = buildClient();
FluxExchangeResult response = client.get().uri("https://example.com/").exchange()
.returnResult(String.class);
-
Map> responseHeaders = response.getResponseHeaders();
-
if (!this.expectedHeaders.isEmpty()) {
assertThat(responseHeaders).describedAs(response.toString()).containsAllEntriesOf(this.expectedHeaders);
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/HttpsRedirectSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/HttpsRedirectSpecTests.java
index f31818b22b..9df6cc1c16 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/HttpsRedirectSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/HttpsRedirectSpecTests.java
@@ -55,14 +55,12 @@ public class HttpsRedirectSpecTests {
@Test
public void getWhenSecureThenDoesNotRedirect() {
this.spring.register(RedirectToHttpConfig.class).autowire();
-
this.client.get().uri("https://localhost").exchange().expectStatus().isNotFound();
}
@Test
public void getWhenInsecureThenRespondsWithRedirectToSecure() {
this.spring.register(RedirectToHttpConfig.class).autowire();
-
this.client.get().uri("http://localhost").exchange().expectStatus().isFound().expectHeader()
.valueEquals(HttpHeaders.LOCATION, "https://localhost");
}
@@ -70,7 +68,6 @@ public class HttpsRedirectSpecTests {
@Test
public void getWhenInsecureAndRedirectConfiguredInLambdaThenRespondsWithRedirectToSecure() {
this.spring.register(RedirectToHttpsInLambdaConfig.class).autowire();
-
this.client.get().uri("http://localhost").exchange().expectStatus().isFound().expectHeader()
.valueEquals(HttpHeaders.LOCATION, "https://localhost");
}
@@ -78,9 +75,7 @@ public class HttpsRedirectSpecTests {
@Test
public void getWhenInsecureAndPathRequiresTransportSecurityThenRedirects() {
this.spring.register(SometimesRedirectToHttpsConfig.class).autowire();
-
this.client.get().uri("http://localhost:8080").exchange().expectStatus().isNotFound();
-
this.client.get().uri("http://localhost:8080/secure").exchange().expectStatus().isFound().expectHeader()
.valueEquals(HttpHeaders.LOCATION, "https://localhost:8443/secure");
}
@@ -88,9 +83,7 @@ public class HttpsRedirectSpecTests {
@Test
public void getWhenInsecureAndPathRequiresTransportSecurityInLambdaThenRedirects() {
this.spring.register(SometimesRedirectToHttpsInLambdaConfig.class).autowire();
-
this.client.get().uri("http://localhost:8080").exchange().expectStatus().isNotFound();
-
this.client.get().uri("http://localhost:8080/secure").exchange().expectStatus().isFound().expectHeader()
.valueEquals(HttpHeaders.LOCATION, "https://localhost:8443/secure");
}
@@ -98,10 +91,8 @@ public class HttpsRedirectSpecTests {
@Test
public void getWhenInsecureAndUsingCustomPortMapperThenRespondsWithRedirectToSecurePort() {
this.spring.register(RedirectToHttpsViaCustomPortsConfig.class).autowire();
-
PortMapper portMapper = this.spring.getContext().getBean(PortMapper.class);
given(portMapper.lookupHttpsPort(4080)).willReturn(4443);
-
this.client.get().uri("http://localhost:4080").exchange().expectStatus().isFound().expectHeader()
.valueEquals(HttpHeaders.LOCATION, "https://localhost:4443");
}
@@ -109,10 +100,8 @@ public class HttpsRedirectSpecTests {
@Test
public void getWhenInsecureAndUsingCustomPortMapperInLambdaThenRespondsWithRedirectToSecurePort() {
this.spring.register(RedirectToHttpsViaCustomPortsInLambdaConfig.class).autowire();
-
PortMapper portMapper = this.spring.getContext().getBean(PortMapper.class);
given(portMapper.lookupHttpsPort(4080)).willReturn(4443);
-
this.client.get().uri("http://localhost:4080").exchange().expectStatus().isFound().expectHeader()
.valueEquals(HttpHeaders.LOCATION, "https://localhost:4443");
}
@@ -127,7 +116,6 @@ public class HttpsRedirectSpecTests {
http
.redirectToHttps();
// @formatter:on
-
return http.build();
}
@@ -143,7 +131,6 @@ public class HttpsRedirectSpecTests {
http
.redirectToHttps(withDefaults());
// @formatter:on
-
return http.build();
}
@@ -160,7 +147,6 @@ public class HttpsRedirectSpecTests {
.redirectToHttps()
.httpsRedirectWhen(new PathPatternParserServerWebExchangeMatcher("/secure"));
// @formatter:on
-
return http.build();
}
@@ -179,7 +165,6 @@ public class HttpsRedirectSpecTests {
.httpsRedirectWhen(new PathPatternParserServerWebExchangeMatcher("/secure"))
);
// @formatter:on
-
return http.build();
}
@@ -196,7 +181,6 @@ public class HttpsRedirectSpecTests {
.redirectToHttps()
.portMapper(portMapper());
// @formatter:on
-
return http.build();
}
@@ -220,7 +204,6 @@ public class HttpsRedirectSpecTests {
.portMapper(portMapper())
);
// @formatter:on
-
return http.build();
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/LogoutSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/LogoutSpecTests.java
index 7f4b247184..bd8822247d 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/LogoutSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/LogoutSpecTests.java
@@ -41,24 +41,16 @@ public class LogoutSpecTests {
public void defaultLogout() {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage
.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt();
-
loginPage = loginPage.loginForm().username("user").password("invalid")
.submit(FormLoginTests.DefaultLoginPage.class).assertError();
-
FormLoginTests.HomePage homePage = loginPage.loginForm().username("user").password("password")
.submit(FormLoginTests.HomePage.class);
-
homePage.assertAt();
-
loginPage = FormLoginTests.DefaultLogoutPage.to(driver).assertAt().logout();
-
loginPage.assertAt().assertLogout();
}
@@ -67,24 +59,16 @@ public class LogoutSpecTests {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().and().logout().requiresLogout(ServerWebExchangeMatchers.pathMatchers("/custom-logout"))
.and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage
.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt();
-
loginPage = loginPage.loginForm().username("user").password("invalid")
.submit(FormLoginTests.DefaultLoginPage.class).assertError();
-
FormLoginTests.HomePage homePage = loginPage.loginForm().username("user").password("password")
.submit(FormLoginTests.HomePage.class);
-
homePage.assertAt();
-
driver.get("http://localhost/custom-logout");
-
FormLoginTests.DefaultLoginPage.create(driver).assertAt().assertLogout();
}
@@ -95,24 +79,16 @@ public class LogoutSpecTests {
.formLogin(withDefaults())
.logout((logout) -> logout.requiresLogout(ServerWebExchangeMatchers.pathMatchers("/custom-logout")))
.build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage
.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt();
-
loginPage = loginPage.loginForm().username("user").password("invalid")
.submit(FormLoginTests.DefaultLoginPage.class).assertError();
-
FormLoginTests.HomePage homePage = loginPage.loginForm().username("user").password("password")
.submit(FormLoginTests.HomePage.class);
-
homePage.assertAt();
-
driver.get("http://localhost/custom-logout");
-
FormLoginTests.DefaultLoginPage.create(driver).assertAt().assertLogout();
}
@@ -120,21 +96,14 @@ public class LogoutSpecTests {
public void logoutWhenDisabledThenPostToLogoutDoesNothing() {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().and().logout().disable().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage
.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt();
-
FormLoginTests.HomePage homePage = loginPage.loginForm().username("user").password("password")
.submit(FormLoginTests.HomePage.class);
-
homePage.assertAt();
-
FormLoginTests.DefaultLogoutPage.to(driver).assertAt().logout();
-
homePage.assertAt();
}
@@ -144,21 +113,14 @@ public class LogoutSpecTests {
repository.setSpringSecurityContextAttrName("CUSTOM_CONTEXT_ATTR");
SecurityWebFilterChain securityWebFilter = this.http.securityContextRepository(repository).authorizeExchange()
.anyExchange().authenticated().and().formLogin().and().logout().and().build();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(securityWebFilter).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage
.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt();
-
FormLoginTests.HomePage homePage = loginPage.loginForm().username("user").password("password")
.submit(FormLoginTests.HomePage.class);
-
homePage.assertAt();
-
FormLoginTests.DefaultLogoutPage.to(driver).assertAt().logout();
-
FormLoginTests.HomePage.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt();
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/OAuth2ClientSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/OAuth2ClientSpecTests.java
index 6000f4da54..b4f5599fad 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/OAuth2ClientSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/OAuth2ClientSpecTests.java
@@ -96,7 +96,6 @@ public class OAuth2ClientSpecTests {
given(repository.findByRegistrationId(any()))
.willReturn(Mono.just(TestClientRegistrations.clientRegistration().build()));
given(authorizedClientRepository.loadAuthorizedClient(any(), any(), any())).willReturn(Mono.empty());
-
this.client.get().uri("/").exchange().expectStatus().is3xxRedirection();
}
@@ -110,7 +109,6 @@ public class OAuth2ClientSpecTests {
given(repository.findByRegistrationId(any()))
.willReturn(Mono.just(TestClientRegistrations.clientRegistration().build()));
given(authorizedClientRepository.loadAuthorizedClient(any(), any(), any())).willReturn(Mono.empty());
-
this.client.get().uri("/").exchange().expectStatus().is3xxRedirection();
}
@@ -118,14 +116,11 @@ public class OAuth2ClientSpecTests {
public void oauth2ClientWhenCustomObjectsThenUsed() {
this.spring.register(ClientRegistrationConfig.class, OAuth2ClientCustomConfig.class,
AuthorizedClientController.class).autowire();
-
OAuth2ClientCustomConfig config = this.spring.getContext().getBean(OAuth2ClientCustomConfig.class);
-
ServerAuthenticationConverter converter = config.authenticationConverter;
ReactiveAuthenticationManager manager = config.manager;
ServerAuthorizationRequestRepository authorizationRequestRepository = config.authorizationRequestRepository;
ServerRequestCache requestCache = config.requestCache;
-
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.redirectUri("/authorize/oauth2/code/registration-id").build();
OAuth2AuthorizationResponse authorizationResponse = TestOAuth2AuthorizationResponses.success()
@@ -133,22 +128,18 @@ public class OAuth2ClientSpecTests {
OAuth2AuthorizationExchange authorizationExchange = new OAuth2AuthorizationExchange(authorizationRequest,
authorizationResponse);
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.noScopes();
-
OAuth2AuthorizationCodeAuthenticationToken result = new OAuth2AuthorizationCodeAuthenticationToken(
this.registration, authorizationExchange, accessToken);
-
given(authorizationRequestRepository.loadAuthorizationRequest(any()))
.willReturn(Mono.just(authorizationRequest));
given(converter.convert(any())).willReturn(Mono.just(new TestingAuthenticationToken("a", "b", "c")));
given(manager.authenticate(any())).willReturn(Mono.just(result));
given(requestCache.getRedirectUri(any())).willReturn(Mono.just(URI.create("/saved-request")));
-
this.client.get()
.uri((uriBuilder) -> uriBuilder.path("/authorize/oauth2/code/registration-id")
.queryParam(OAuth2ParameterNames.CODE, "code").queryParam(OAuth2ParameterNames.STATE, "state")
.build())
.exchange().expectStatus().is3xxRedirection();
-
verify(converter).convert(any());
verify(manager).authenticate(any());
verify(requestCache).getRedirectUri(any());
@@ -158,15 +149,12 @@ public class OAuth2ClientSpecTests {
public void oauth2ClientWhenCustomObjectsInLambdaThenUsed() {
this.spring.register(ClientRegistrationConfig.class, OAuth2ClientInLambdaCustomConfig.class,
AuthorizedClientController.class).autowire();
-
OAuth2ClientInLambdaCustomConfig config = this.spring.getContext()
.getBean(OAuth2ClientInLambdaCustomConfig.class);
-
ServerAuthenticationConverter converter = config.authenticationConverter;
ReactiveAuthenticationManager manager = config.manager;
ServerAuthorizationRequestRepository authorizationRequestRepository = config.authorizationRequestRepository;
ServerRequestCache requestCache = config.requestCache;
-
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request()
.redirectUri("/authorize/oauth2/code/registration-id").build();
OAuth2AuthorizationResponse authorizationResponse = TestOAuth2AuthorizationResponses.success()
@@ -174,22 +162,18 @@ public class OAuth2ClientSpecTests {
OAuth2AuthorizationExchange authorizationExchange = new OAuth2AuthorizationExchange(authorizationRequest,
authorizationResponse);
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.noScopes();
-
OAuth2AuthorizationCodeAuthenticationToken result = new OAuth2AuthorizationCodeAuthenticationToken(
this.registration, authorizationExchange, accessToken);
-
given(authorizationRequestRepository.loadAuthorizationRequest(any()))
.willReturn(Mono.just(authorizationRequest));
given(converter.convert(any())).willReturn(Mono.just(new TestingAuthenticationToken("a", "b", "c")));
given(manager.authenticate(any())).willReturn(Mono.just(result));
given(requestCache.getRedirectUri(any())).willReturn(Mono.just(URI.create("/saved-request")));
-
this.client.get()
.uri((uriBuilder) -> uriBuilder.path("/authorize/oauth2/code/registration-id")
.queryParam(OAuth2ParameterNames.CODE, "code").queryParam(OAuth2ParameterNames.STATE, "state")
.build())
.exchange().expectStatus().is3xxRedirection();
-
verify(converter).convert(any());
verify(manager).authenticate(any());
verify(requestCache).getRedirectUri(any());
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 c6809ca45b..94256acd27 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
@@ -141,11 +141,8 @@ public class OAuth2LoginTests {
@Test
public void defaultLoginPageWithMultipleClientRegistrationsThenLinks() {
this.spring.register(OAuth2LoginWithMultipleClientRegistrations.class).autowire();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
FormLoginTests.DefaultLoginPage loginPage = FormLoginTests.HomePage
.to(driver, FormLoginTests.DefaultLoginPage.class).assertAt().assertLoginFormNotPresent().oauth2Login()
.assertClientRegistrationByName(OAuth2LoginTests.github.getClientName()).and();
@@ -154,14 +151,10 @@ public class OAuth2LoginTests {
@Test
public void defaultLoginPageWithSingleClientRegistrationThenRedirect() {
this.spring.register(OAuth2LoginWithSingleClientRegistrations.class).autowire();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(new GitHubWebFilter(), this.springSecurity)
.build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
driver.get("http://localhost/");
-
assertThat(driver.getCurrentUrl()).startsWith("https://github.com/login/oauth/authorize");
}
@@ -169,7 +162,6 @@ public class OAuth2LoginTests {
@Test
public void defaultLoginPageWithSingleClientRegistrationAndXhrRequestThenDoesNotRedirectForAuthorization() {
this.spring.register(OAuth2LoginWithSingleClientRegistrations.class, WebFluxConfig.class).autowire();
-
this.client.get().uri("/").header("X-Requested-With", "XMLHttpRequest").exchange().expectStatus()
.is3xxRedirection().expectHeader().valueEquals(HttpHeaders.LOCATION, "/login");
}
@@ -178,21 +170,16 @@ public class OAuth2LoginTests {
public void oauth2AuthorizeWhenCustomObjectsThenUsed() {
this.spring.register(OAuth2LoginWithSingleClientRegistrations.class, OAuth2AuthorizeWithMockObjectsConfig.class,
AuthorizedClientController.class).autowire();
-
OAuth2AuthorizeWithMockObjectsConfig config = this.spring.getContext()
.getBean(OAuth2AuthorizeWithMockObjectsConfig.class);
-
ServerOAuth2AuthorizedClientRepository authorizedClientRepository = config.authorizedClientRepository;
ServerAuthorizationRequestRepository authorizationRequestRepository = config.authorizationRequestRepository;
ServerRequestCache requestCache = config.requestCache;
-
given(authorizedClientRepository.loadAuthorizedClient(any(), any(), any())).willReturn(Mono.empty());
given(authorizationRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
given(requestCache.removeMatchingRequest(any())).willReturn(Mono.empty());
given(requestCache.saveRequest(any())).willReturn(Mono.empty());
-
this.client.get().uri("/").exchange().expectStatus().is3xxRedirection();
-
verify(authorizedClientRepository).loadAuthorizedClient(any(), any(), any());
verify(authorizationRequestRepository).saveAuthorizationRequest(any(), any());
verify(requestCache).saveRequest(any());
@@ -202,11 +189,8 @@ public class OAuth2LoginTests {
public void oauth2LoginWhenCustomObjectsThenUsed() {
this.spring.register(OAuth2LoginWithSingleClientRegistrations.class,
OAuth2LoginMockAuthenticationManagerConfig.class).autowire();
-
String redirectLocation = "/custom-redirect-location";
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
OAuth2LoginMockAuthenticationManagerConfig config = this.spring.getContext()
.getBean(OAuth2LoginMockAuthenticationManagerConfig.class);
ServerAuthenticationConverter converter = config.authenticationConverter;
@@ -214,14 +198,11 @@ public class OAuth2LoginTests {
ServerWebExchangeMatcher matcher = config.matcher;
ServerOAuth2AuthorizationRequestResolver resolver = config.resolver;
ServerAuthenticationSuccessHandler successHandler = config.successHandler;
-
OAuth2AuthorizationExchange exchange = TestOAuth2AuthorizationExchanges.success();
OAuth2User user = TestOAuth2Users.create();
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.noScopes();
-
OAuth2LoginAuthenticationToken result = new OAuth2LoginAuthenticationToken(github, exchange, user,
user.getAuthorities(), accessToken);
-
given(converter.convert(any())).willReturn(Mono.just(new TestingAuthenticationToken("a", "b", "c")));
given(manager.authenticate(any())).willReturn(Mono.just(result));
given(matcher.matches(any())).willReturn(ServerWebExchangeMatcher.MatchResult.match());
@@ -229,14 +210,11 @@ public class OAuth2LoginTests {
given(successHandler.onAuthenticationSuccess(any(), any())).willAnswer((Answer>) (invocation) -> {
WebFilterExchange webFilterExchange = invocation.getArgument(0);
Authentication authentication = invocation.getArgument(1);
-
return new RedirectServerAuthenticationSuccessHandler(redirectLocation)
.onAuthenticationSuccess(webFilterExchange, authentication);
});
-
webTestClient.get().uri("/login/oauth2/code/github").exchange().expectStatus().is3xxRedirection().expectHeader()
.valueEquals("Location", redirectLocation);
-
verify(converter).convert(any());
verify(manager).authenticate(any());
verify(matcher).matches(any());
@@ -248,12 +226,9 @@ public class OAuth2LoginTests {
public void oauth2LoginFailsWhenCustomObjectsThenUsed() {
this.spring.register(OAuth2LoginWithSingleClientRegistrations.class,
OAuth2LoginMockAuthenticationManagerConfig.class).autowire();
-
String redirectLocation = "/custom-redirect-location";
String failureRedirectLocation = "/failure-redirect-location";
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
OAuth2LoginMockAuthenticationManagerConfig config = this.spring.getContext()
.getBean(OAuth2LoginMockAuthenticationManagerConfig.class);
ServerAuthenticationConverter converter = config.authenticationConverter;
@@ -262,7 +237,6 @@ public class OAuth2LoginTests {
ServerOAuth2AuthorizationRequestResolver resolver = config.resolver;
ServerAuthenticationSuccessHandler successHandler = config.successHandler;
ServerAuthenticationFailureHandler failureHandler = config.failureHandler;
-
given(converter.convert(any())).willReturn(Mono.just(new TestingAuthenticationToken("a", "b", "c")));
given(manager.authenticate(any()))
.willReturn(Mono.error(new OAuth2AuthenticationException(new OAuth2Error("error"), "message")));
@@ -271,21 +245,17 @@ public class OAuth2LoginTests {
given(successHandler.onAuthenticationSuccess(any(), any())).willAnswer((Answer>) (invocation) -> {
WebFilterExchange webFilterExchange = invocation.getArgument(0);
Authentication authentication = invocation.getArgument(1);
-
return new RedirectServerAuthenticationSuccessHandler(redirectLocation)
.onAuthenticationSuccess(webFilterExchange, authentication);
});
given(failureHandler.onAuthenticationFailure(any(), any())).willAnswer((Answer>) (invocation) -> {
WebFilterExchange webFilterExchange = invocation.getArgument(0);
AuthenticationException authenticationException = invocation.getArgument(1);
-
return new RedirectServerAuthenticationFailureHandler(failureRedirectLocation)
.onAuthenticationFailure(webFilterExchange, authenticationException);
});
-
webTestClient.get().uri("/login/oauth2/code/github").exchange().expectStatus().is3xxRedirection().expectHeader()
.valueEquals("Location", failureRedirectLocation);
-
verify(converter).convert(any());
verify(manager).authenticate(any());
verify(matcher).matches(any());
@@ -297,11 +267,8 @@ public class OAuth2LoginTests {
public void oauth2LoginWhenCustomObjectsInLambdaThenUsed() {
this.spring.register(OAuth2LoginWithSingleClientRegistrations.class,
OAuth2LoginMockAuthenticationManagerInLambdaConfig.class).autowire();
-
String redirectLocation = "/custom-redirect-location";
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
OAuth2LoginMockAuthenticationManagerInLambdaConfig config = this.spring.getContext()
.getBean(OAuth2LoginMockAuthenticationManagerInLambdaConfig.class);
ServerAuthenticationConverter converter = config.authenticationConverter;
@@ -309,14 +276,11 @@ public class OAuth2LoginTests {
ServerWebExchangeMatcher matcher = config.matcher;
ServerOAuth2AuthorizationRequestResolver resolver = config.resolver;
ServerAuthenticationSuccessHandler successHandler = config.successHandler;
-
OAuth2AuthorizationExchange exchange = TestOAuth2AuthorizationExchanges.success();
OAuth2User user = TestOAuth2Users.create();
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.noScopes();
-
OAuth2LoginAuthenticationToken result = new OAuth2LoginAuthenticationToken(github, exchange, user,
user.getAuthorities(), accessToken);
-
given(converter.convert(any())).willReturn(Mono.just(new TestingAuthenticationToken("a", "b", "c")));
given(manager.authenticate(any())).willReturn(Mono.just(result));
given(matcher.matches(any())).willReturn(ServerWebExchangeMatcher.MatchResult.match());
@@ -324,14 +288,11 @@ public class OAuth2LoginTests {
given(successHandler.onAuthenticationSuccess(any(), any())).willAnswer((Answer>) (invocation) -> {
WebFilterExchange webFilterExchange = invocation.getArgument(0);
Authentication authentication = invocation.getArgument(1);
-
return new RedirectServerAuthenticationSuccessHandler(redirectLocation)
.onAuthenticationSuccess(webFilterExchange, authentication);
});
-
webTestClient.get().uri("/login/oauth2/code/github").exchange().expectStatus().is3xxRedirection().expectHeader()
.valueEquals("Location", redirectLocation);
-
verify(converter).convert(any());
verify(manager).authenticate(any());
verify(matcher).matches(any());
@@ -343,26 +304,20 @@ public class OAuth2LoginTests {
public void oauth2LoginWhenCustomBeansThenUsed() {
this.spring.register(OAuth2LoginWithMultipleClientRegistrations.class, OAuth2LoginWithCustomBeansConfig.class)
.autowire();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
OAuth2LoginWithCustomBeansConfig config = this.spring.getContext()
.getBean(OAuth2LoginWithCustomBeansConfig.class);
-
OAuth2AuthorizationRequest request = TestOAuth2AuthorizationRequests.request().scope("openid").build();
OAuth2AuthorizationResponse response = TestOAuth2AuthorizationResponses.success().build();
OAuth2AuthorizationExchange exchange = new OAuth2AuthorizationExchange(request, response);
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.scopes("openid");
OAuth2AuthorizationCodeAuthenticationToken token = new OAuth2AuthorizationCodeAuthenticationToken(google,
exchange, accessToken);
-
ServerAuthenticationConverter converter = config.authenticationConverter;
given(converter.convert(any())).willReturn(Mono.just(token));
-
ServerSecurityContextRepository securityContextRepository = config.securityContextRepository;
given(securityContextRepository.save(any(), any())).willReturn(Mono.empty());
given(securityContextRepository.load(any())).willReturn(authentication(token));
-
Map additionalParameters = new HashMap<>();
additionalParameters.put(OidcParameterNames.ID_TOKEN, "id-token");
OAuth2AccessTokenResponse accessTokenResponse = OAuth2AccessTokenResponse.withToken(accessToken.getTokenValue())
@@ -370,13 +325,10 @@ public class OAuth2LoginTests {
.additionalParameters(additionalParameters).build();
ReactiveOAuth2AccessTokenResponseClient tokenResponseClient = config.tokenResponseClient;
given(tokenResponseClient.getTokenResponse(any())).willReturn(Mono.just(accessTokenResponse));
-
OidcUser user = TestOidcUsers.create();
ReactiveOAuth2UserService userService = config.userService;
given(userService.loadUser(any())).willReturn(Mono.just(user));
-
webTestClient.get().uri("/login/oauth2/code/google").exchange().expectStatus().is3xxRedirection();
-
verify(config.jwtDecoderFactory).createDecoder(any());
verify(tokenResponseClient).getTokenResponse(any());
verify(securityContextRepository).save(any(), any());
@@ -387,26 +339,20 @@ public class OAuth2LoginTests {
public void oauth2LoginWhenAccessTokenRequestFailsThenDefaultRedirectToLogin() {
this.spring.register(OAuth2LoginWithMultipleClientRegistrations.class, OAuth2LoginWithCustomBeansConfig.class)
.autowire();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
OAuth2AuthorizationRequest request = TestOAuth2AuthorizationRequests.request().scope("openid").build();
OAuth2AuthorizationResponse response = TestOAuth2AuthorizationResponses.success().build();
OAuth2AuthorizationExchange exchange = new OAuth2AuthorizationExchange(request, response);
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.scopes("openid");
OAuth2AuthorizationCodeAuthenticationToken authenticationToken = new OAuth2AuthorizationCodeAuthenticationToken(
google, exchange, accessToken);
-
OAuth2LoginWithCustomBeansConfig config = this.spring.getContext()
.getBean(OAuth2LoginWithCustomBeansConfig.class);
-
ServerAuthenticationConverter converter = config.authenticationConverter;
given(converter.convert(any())).willReturn(Mono.just(authenticationToken));
-
ReactiveOAuth2AccessTokenResponseClient tokenResponseClient = config.tokenResponseClient;
OAuth2Error oauth2Error = new OAuth2Error("invalid_request", "Invalid request", null);
given(tokenResponseClient.getTokenResponse(any())).willThrow(new OAuth2AuthenticationException(oauth2Error));
-
webTestClient.get().uri("/login/oauth2/code/google").exchange().expectStatus().is3xxRedirection().expectHeader()
.valueEquals("Location", "/login?error");
}
@@ -416,22 +362,17 @@ public class OAuth2LoginTests {
public void oauth2LoginWhenIdTokenValidationFailsThenDefaultRedirectToLogin() {
this.spring.register(OAuth2LoginWithMultipleClientRegistrations.class, OAuth2LoginWithCustomBeansConfig.class)
.autowire();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
OAuth2LoginWithCustomBeansConfig config = this.spring.getContext()
.getBean(OAuth2LoginWithCustomBeansConfig.class);
-
OAuth2AuthorizationRequest request = TestOAuth2AuthorizationRequests.request().scope("openid").build();
OAuth2AuthorizationResponse response = TestOAuth2AuthorizationResponses.success().build();
OAuth2AuthorizationExchange exchange = new OAuth2AuthorizationExchange(request, response);
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.scopes("openid");
OAuth2AuthorizationCodeAuthenticationToken authenticationToken = new OAuth2AuthorizationCodeAuthenticationToken(
google, exchange, accessToken);
-
ServerAuthenticationConverter converter = config.authenticationConverter;
given(converter.convert(any())).willReturn(Mono.just(authenticationToken));
-
Map additionalParameters = new HashMap<>();
additionalParameters.put(OidcParameterNames.ID_TOKEN, "id-token");
OAuth2AccessTokenResponse accessTokenResponse = OAuth2AccessTokenResponse.withToken(accessToken.getTokenValue())
@@ -439,12 +380,10 @@ public class OAuth2LoginTests {
.additionalParameters(additionalParameters).build();
ReactiveOAuth2AccessTokenResponseClient tokenResponseClient = config.tokenResponseClient;
given(tokenResponseClient.getTokenResponse(any())).willReturn(Mono.just(accessTokenResponse));
-
ReactiveJwtDecoderFactory jwtDecoderFactory = config.jwtDecoderFactory;
OAuth2Error oauth2Error = new OAuth2Error("invalid_id_token", "Invalid ID Token", null);
given(jwtDecoderFactory.createDecoder(any())).willReturn((token) -> Mono
.error(new JwtValidationException("ID Token validation failed", Collections.singleton(oauth2Error))));
-
webTestClient.get().uri("/login/oauth2/code/google").exchange().expectStatus().is3xxRedirection().expectHeader()
.valueEquals("Location", "/login?error");
}
@@ -452,13 +391,10 @@ public class OAuth2LoginTests {
@Test
public void logoutWhenUsingOidcLogoutHandlerThenRedirects() {
this.spring.register(OAuth2LoginConfigWithOidcLogoutSuccessHandler.class).autowire();
-
OAuth2AuthenticationToken token = new OAuth2AuthenticationToken(TestOidcUsers.create(),
AuthorityUtils.NO_AUTHORITIES, getBean(ClientRegistration.class).getRegistrationId());
-
ServerSecurityContextRepository repository = getBean(ServerSecurityContextRepository.class);
given(repository.load(any())).willReturn(authentication(token));
-
this.client.post().uri("/logout").exchange().expectHeader().valueEquals("Location",
"https://logout?id_token_hint=id-token");
}
@@ -467,9 +403,7 @@ public class OAuth2LoginTests {
@Test
public void oauth2LoginWhenAuthenticationConverterFailsThenDefaultRedirectToLogin() {
this.spring.register(OAuth2LoginWithMultipleClientRegistrations.class).autowire();
-
WebTestClient webTestClient = WebTestClientBuilder.bindToWebFilters(this.springSecurity).build();
-
webTestClient.get().uri("/login/oauth2/code/google").exchange().expectStatus().is3xxRedirection().expectHeader()
.valueEquals("Location", "/login?error");
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/OAuth2ResourceServerSpecTests.java b/config/src/test/java/org/springframework/security/config/web/server/OAuth2ResourceServerSpecTests.java
index 019ced220c..301644ccd1 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/OAuth2ResourceServerSpecTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/OAuth2ResourceServerSpecTests.java
@@ -134,7 +134,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenValidThenReturnsOk() {
this.spring.register(PublicKeyConfig.class, RootController.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -142,7 +141,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenExpiredThenReturnsInvalidToken() {
this.spring.register(PublicKeyConfig.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.expired)).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"invalid_token\""));
@@ -151,7 +149,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenUnsignedThenReturnsInvalidToken() {
this.spring.register(PublicKeyConfig.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.unsignedToken)).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"invalid_token\""));
@@ -160,7 +157,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenEmptyBearerTokenThenReturnsInvalidToken() {
this.spring.register(PublicKeyConfig.class).autowire();
-
this.client.get().headers((headers) -> headers.add("Authorization", "Bearer ")).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"invalid_token\""));
@@ -169,7 +165,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenValidTokenAndPublicKeyInLambdaThenReturnsOk() {
this.spring.register(PublicKeyInLambdaConfig.class, RootController.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -177,7 +172,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenExpiredTokenAndPublicKeyInLambdaThenReturnsInvalidToken() {
this.spring.register(PublicKeyInLambdaConfig.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.expired)).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"invalid_token\""));
@@ -186,7 +180,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenValidUsingPlaceholderThenReturnsOk() {
this.spring.register(PlaceholderConfig.class, RootController.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -194,22 +187,17 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenCustomDecoderThenAuthenticatesAccordingly() {
this.spring.register(CustomDecoderConfig.class, RootController.class).autowire();
-
ReactiveJwtDecoder jwtDecoder = this.spring.getContext().getBean(ReactiveJwtDecoder.class);
given(jwtDecoder.decode(anyString())).willReturn(Mono.just(this.jwt));
-
this.client.get().headers((headers) -> headers.setBearerAuth("token")).exchange().expectStatus().isOk();
-
verify(jwtDecoder).decode(anyString());
}
@Test
public void getWhenUsingJwkSetUriThenConsultsAccordingly() {
this.spring.register(JwkSetUriConfig.class, RootController.class).autowire();
-
MockWebServer mockWebServer = this.spring.getContext().getBean(MockWebServer.class);
mockWebServer.enqueue(new MockResponse().setBody(this.jwkSet));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadTokenWithKid)).exchange()
.expectStatus().isOk();
}
@@ -217,10 +205,8 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenUsingJwkSetUriInLambdaThenConsultsAccordingly() {
this.spring.register(JwkSetUriInLambdaConfig.class, RootController.class).autowire();
-
MockWebServer mockWebServer = this.spring.getContext().getBean(MockWebServer.class);
mockWebServer.enqueue(new MockResponse().setBody(this.jwkSet));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadTokenWithKid)).exchange()
.expectStatus().isOk();
}
@@ -228,12 +214,10 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenUsingCustomAuthenticationManagerThenUsesItAccordingly() {
this.spring.register(CustomAuthenticationManagerConfig.class).autowire();
-
ReactiveAuthenticationManager authenticationManager = this.spring.getContext()
.getBean(ReactiveAuthenticationManager.class);
given(authenticationManager.authenticate(any(Authentication.class)))
.willReturn(Mono.error(new OAuth2AuthenticationException(new OAuth2Error("mock-failure"))));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"mock-failure\""));
@@ -242,12 +226,10 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenUsingCustomAuthenticationManagerInLambdaThenUsesItAccordingly() {
this.spring.register(CustomAuthenticationManagerInLambdaConfig.class).autowire();
-
ReactiveAuthenticationManager authenticationManager = this.spring.getContext()
.getBean(ReactiveAuthenticationManager.class);
given(authenticationManager.authenticate(any(Authentication.class)))
.willReturn(Mono.error(new OAuth2AuthenticationException(new OAuth2Error("mock-failure"))));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"mock-failure\""));
@@ -256,18 +238,14 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenUsingCustomAuthenticationManagerResolverThenUsesItAccordingly() {
this.spring.register(CustomAuthenticationManagerResolverConfig.class).autowire();
-
ReactiveAuthenticationManagerResolver authenticationManagerResolver = this.spring
.getContext().getBean(ReactiveAuthenticationManagerResolver.class);
-
ReactiveAuthenticationManager authenticationManager = this.spring.getContext()
.getBean(ReactiveAuthenticationManager.class);
-
given(authenticationManagerResolver.resolve(any(ServerWebExchange.class)))
.willReturn(Mono.just(authenticationManager));
given(authenticationManager.authenticate(any(Authentication.class)))
.willReturn(Mono.error(new OAuth2AuthenticationException(new OAuth2Error("mock-failure"))));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isUnauthorized().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"mock-failure\""));
@@ -276,7 +254,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void postWhenSignedThenReturnsOk() {
this.spring.register(PublicKeyConfig.class, RootController.class).autowire();
-
this.client.post().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -284,7 +261,6 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenTokenHasInsufficientScopeThenReturnsInsufficientScope() {
this.spring.register(DenyAllConfig.class, RootController.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isForbidden().expectHeader()
.value(HttpHeaders.WWW_AUTHENTICATE, startsWith("Bearer error=\"insufficient_scope\""));
@@ -293,21 +269,18 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void postWhenMissingTokenThenReturnsForbidden() {
this.spring.register(PublicKeyConfig.class, RootController.class).autowire();
-
this.client.post().exchange().expectStatus().isForbidden();
}
@Test
public void getWhenCustomBearerTokenServerAuthenticationConverterThenResponds() {
this.spring.register(CustomBearerTokenServerAuthenticationConverter.class, RootController.class).autowire();
-
this.client.get().cookie("TOKEN", this.messageReadToken).exchange().expectStatus().isOk();
}
@Test
public void getWhenSignedAndCustomConverterThenConverts() {
this.spring.register(CustomJwtAuthenticationConverterConfig.class, RootController.class).autowire();
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -315,14 +288,12 @@ public class OAuth2ResourceServerSpecTests {
@Test
public void getWhenCustomBearerTokenEntryPointThenResponds() {
this.spring.register(CustomErrorHandlingConfig.class).autowire();
-
this.client.get().uri("/authenticated").exchange().expectStatus().isEqualTo(HttpStatus.I_AM_A_TEAPOT);
}
@Test
public void getWhenCustomBearerTokenDeniedHandlerThenResponds() {
this.spring.register(CustomErrorHandlingConfig.class).autowire();
-
this.client.get().uri("/unobtainable").headers((headers) -> headers.setBearerAuth(this.messageReadToken))
.exchange().expectStatus().isEqualTo(HttpStatus.BANDWIDTH_LIMIT_EXCEEDED);
}
@@ -332,14 +303,11 @@ public class OAuth2ResourceServerSpecTests {
GenericWebApplicationContext context = autowireWebServerGenericWebApplicationContext();
ServerHttpSecurity http = new ServerHttpSecurity();
http.setApplicationContext(context);
-
ReactiveJwtDecoder beanWiredJwtDecoder = mock(ReactiveJwtDecoder.class);
ReactiveJwtDecoder dslWiredJwtDecoder = mock(ReactiveJwtDecoder.class);
context.registerBean(ReactiveJwtDecoder.class, () -> beanWiredJwtDecoder);
-
ServerHttpSecurity.OAuth2ResourceServerSpec.JwtSpec jwt = http.oauth2ResourceServer().jwt();
jwt.jwtDecoder(dslWiredJwtDecoder);
-
assertThat(jwt.getJwtDecoder()).isEqualTo(dslWiredJwtDecoder);
}
@@ -348,15 +316,12 @@ public class OAuth2ResourceServerSpecTests {
GenericWebApplicationContext context = autowireWebServerGenericWebApplicationContext();
ServerHttpSecurity http = new ServerHttpSecurity();
http.setApplicationContext(context);
-
ReactiveJwtDecoder beanWiredJwtDecoder = mock(ReactiveJwtDecoder.class);
ReactiveJwtDecoder dslWiredJwtDecoder = mock(ReactiveJwtDecoder.class);
context.registerBean("firstJwtDecoder", ReactiveJwtDecoder.class, () -> beanWiredJwtDecoder);
context.registerBean("secondJwtDecoder", ReactiveJwtDecoder.class, () -> beanWiredJwtDecoder);
-
ServerHttpSecurity.OAuth2ResourceServerSpec.JwtSpec jwt = http.oauth2ResourceServer().jwt();
jwt.jwtDecoder(dslWiredJwtDecoder);
-
assertThat(jwt.getJwtDecoder()).isEqualTo(dslWiredJwtDecoder);
}
@@ -365,13 +330,10 @@ public class OAuth2ResourceServerSpecTests {
GenericWebApplicationContext context = autowireWebServerGenericWebApplicationContext();
ServerHttpSecurity http = new ServerHttpSecurity();
http.setApplicationContext(context);
-
ReactiveJwtDecoder beanWiredJwtDecoder = mock(ReactiveJwtDecoder.class);
context.registerBean("firstJwtDecoder", ReactiveJwtDecoder.class, () -> beanWiredJwtDecoder);
context.registerBean("secondJwtDecoder", ReactiveJwtDecoder.class, () -> beanWiredJwtDecoder);
-
ServerHttpSecurity.OAuth2ResourceServerSpec.JwtSpec jwt = http.oauth2ResourceServer().jwt();
-
assertThatCode(() -> jwt.getJwtDecoder()).isInstanceOf(NoUniqueBeanDefinitionException.class);
}
@@ -380,9 +342,7 @@ public class OAuth2ResourceServerSpecTests {
GenericWebApplicationContext context = autowireWebServerGenericWebApplicationContext();
ServerHttpSecurity http = new ServerHttpSecurity();
http.setApplicationContext(context);
-
ServerHttpSecurity.OAuth2ResourceServerSpec.JwtSpec jwt = http.oauth2ResourceServer().jwt();
-
assertThatCode(() -> jwt.getJwtDecoder()).isInstanceOf(NoSuchBeanDefinitionException.class);
}
@@ -391,7 +351,6 @@ public class OAuth2ResourceServerSpecTests {
this.spring.register(IntrospectionConfig.class, RootController.class).autowire();
this.spring.getContext().getBean(MockWebServer.class)
.setDispatcher(requiresAuth(this.clientId, this.clientSecret, this.active));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -401,7 +360,6 @@ public class OAuth2ResourceServerSpecTests {
this.spring.register(IntrospectionInLambdaConfig.class, RootController.class).autowire();
this.spring.getContext().getBean(MockWebServer.class)
.setDispatcher(requiresAuth(this.clientId, this.clientSecret, this.active));
-
this.client.get().headers((headers) -> headers.setBearerAuth(this.messageReadToken)).exchange().expectStatus()
.isOk();
}
@@ -440,7 +398,6 @@ public class OAuth2ResourceServerSpecTests {
private static RSAPublicKey publicKey() {
String modulus = "26323220897278656456354815752829448539647589990395639665273015355787577386000316054335559633864476469390247312823732994485311378484154955583861993455004584140858982659817218753831620205191028763754231454775026027780771426040997832758235764611119743390612035457533732596799927628476322029280486807310749948064176545712270582940917249337311592011920620009965129181413510845780806191965771671528886508636605814099711121026468495328702234901200169245493126030184941412539949521815665744267183140084667383643755535107759061065656273783542590997725982989978433493861515415520051342321336460543070448417126615154138673620797";
String exponent = "65537";
-
RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger(modulus), new BigInteger(exponent));
RSAPublicKey rsaPublicKey = null;
try {
@@ -537,14 +494,12 @@ public class OAuth2ResourceServerSpecTests {
@Bean
SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
String jwkSetUri = mockWebServer().url("/.well-known/jwks.json").toString();
-
// @formatter:off
http
.oauth2ResourceServer()
.jwt()
.jwkSetUri(jwkSetUri);
// @formatter:on
-
return http.build();
}
@@ -569,7 +524,6 @@ public class OAuth2ResourceServerSpecTests {
@Bean
SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
String jwkSetUri = mockWebServer().url("/.well-known/jwks.json").toString();
-
// @formatter:off
http
.oauth2ResourceServer((oauth2ResourceServer) ->
@@ -580,7 +534,6 @@ public class OAuth2ResourceServerSpecTests {
)
);
// @formatter:on
-
return http.build();
}
@@ -609,7 +562,6 @@ public class OAuth2ResourceServerSpecTests {
.oauth2ResourceServer()
.jwt();
// @formatter:on
-
return http.build();
}
@@ -635,7 +587,6 @@ public class OAuth2ResourceServerSpecTests {
.jwt()
.publicKey(publicKey());
// @formatter:on
-
return http.build();
}
@@ -653,7 +604,6 @@ public class OAuth2ResourceServerSpecTests {
.jwt()
.authenticationManager(authenticationManager());
// @formatter:on
-
return http.build();
}
@@ -680,7 +630,6 @@ public class OAuth2ResourceServerSpecTests {
)
);
// @formatter:on
-
return http.build();
}
@@ -705,7 +654,6 @@ public class OAuth2ResourceServerSpecTests {
.oauth2ResourceServer()
.authenticationManagerResolver(authenticationManagerResolver());
// @formatter:on
-
return http.build();
}
@@ -737,7 +685,6 @@ public class OAuth2ResourceServerSpecTests {
.jwt()
.publicKey(publicKey());
// @formatter:on
-
return http.build();
}
@@ -765,19 +712,16 @@ public class OAuth2ResourceServerSpecTests {
.jwtAuthenticationConverter(jwtAuthenticationConverter())
.publicKey(publicKey());
// @formatter:on
-
return http.build();
}
@Bean
Converter> jwtAuthenticationConverter() {
-
JwtAuthenticationConverter converter = new JwtAuthenticationConverter();
converter.setJwtGrantedAuthoritiesConverter((jwt) -> {
String[] claims = ((String) jwt.getClaims().get("scope")).split(" ");
return Stream.of(claims).map(SimpleGrantedAuthority::new).collect(Collectors.toList());
});
-
return new ReactiveJwtAuthenticationConverterAdapter(converter);
}
@@ -801,7 +745,6 @@ public class OAuth2ResourceServerSpecTests {
.jwt()
.publicKey(publicKey());
// @formatter:on
-
return http.build();
}
@@ -816,7 +759,6 @@ public class OAuth2ResourceServerSpecTests {
@Bean
SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
String introspectionUri = mockWebServer().url("/introspect").toString();
-
// @formatter:off
http
.oauth2ResourceServer()
@@ -824,7 +766,6 @@ public class OAuth2ResourceServerSpecTests {
.introspectionUri(introspectionUri)
.introspectionClientCredentials("client", "secret");
// @formatter:on
-
return http.build();
}
@@ -849,7 +790,6 @@ public class OAuth2ResourceServerSpecTests {
@Bean
SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
String introspectionUri = mockWebServer().url("/introspect").toString();
-
// @formatter:off
http
.oauth2ResourceServer((oauth2ResourceServer) ->
@@ -861,7 +801,6 @@ public class OAuth2ResourceServerSpecTests {
)
);
// @formatter:on
-
return http.build();
}
@@ -892,7 +831,6 @@ public class OAuth2ResourceServerSpecTests {
.authenticationManagerResolver(mock(ReactiveAuthenticationManagerResolver.class))
.opaqueToken();
// @formatter:on
-
return http.build();
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/RequestCacheTests.java b/config/src/test/java/org/springframework/security/config/web/server/RequestCacheTests.java
index cccf0f0df9..a9331c95e2 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/RequestCacheTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/RequestCacheTests.java
@@ -49,17 +49,12 @@ public class RequestCacheTests {
public void defaultFormLoginRequestCache() {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().and().build();
-
WebTestClient webTestClient = WebTestClient
.bindToController(new SecuredPageController(), new WebTestClientBuilder.Http200RestController())
.webFilter(new WebFilterChainProxy(securityWebFilter)).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = SecuredPage.to(driver, DefaultLoginPage.class).assertAt();
-
SecuredPage securedPage = loginPage.loginForm().username("user").password("password").submit(SecuredPage.class);
-
securedPage.assertAt();
}
@@ -67,17 +62,12 @@ public class RequestCacheTests {
public void requestCacheNoOp() {
SecurityWebFilterChain securityWebFilter = this.http.authorizeExchange().anyExchange().authenticated().and()
.formLogin().and().requestCache().requestCache(NoOpServerRequestCache.getInstance()).and().build();
-
WebTestClient webTestClient = WebTestClient
.bindToController(new SecuredPageController(), new WebTestClientBuilder.Http200RestController())
.webFilter(new WebFilterChainProxy(securityWebFilter)).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = SecuredPage.to(driver, DefaultLoginPage.class).assertAt();
-
HomePage securedPage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
securedPage.assertAt();
}
@@ -88,17 +78,12 @@ public class RequestCacheTests {
.formLogin(withDefaults())
.requestCache((requestCache) -> requestCache.requestCache(NoOpServerRequestCache.getInstance()))
.build();
-
WebTestClient webTestClient = WebTestClient
.bindToController(new SecuredPageController(), new WebTestClientBuilder.Http200RestController())
.webFilter(new WebFilterChainProxy(securityWebFilter)).build();
-
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
DefaultLoginPage loginPage = SecuredPage.to(driver, DefaultLoginPage.class).assertAt();
-
HomePage securedPage = loginPage.loginForm().username("user").password("password").submit(HomePage.class);
-
securedPage.assertAt();
}
diff --git a/config/src/test/java/org/springframework/security/config/web/server/ServerHttpSecurityTests.java b/config/src/test/java/org/springframework/security/config/web/server/ServerHttpSecurityTests.java
index a23964ceec..521b17c3ee 100644
--- a/config/src/test/java/org/springframework/security/config/web/server/ServerHttpSecurityTests.java
+++ b/config/src/test/java/org/springframework/security/config/web/server/ServerHttpSecurityTests.java
@@ -109,12 +109,9 @@ public class ServerHttpSecurityTests {
TestPublisher securityContext = TestPublisher.create();
given(this.contextRepository.load(any())).willReturn(securityContext.mono());
this.http.securityContextRepository(this.contextRepository);
-
WebTestClient client = buildClient();
-
FluxExchangeResult result = client.get().uri("/").exchange().expectHeader()
.valueMatches(HttpHeaders.CACHE_CONTROL, ".+").returnResult(String.class);
-
assertThat(result.getResponseCookies()).isEmpty();
// there is no need to try and load the SecurityContext by default
securityContext.assertWasNotSubscribed();
@@ -124,19 +121,15 @@ public class ServerHttpSecurityTests {
public void basic() {
given(this.authenticationManager.authenticate(any()))
.willReturn(Mono.just(new TestingAuthenticationToken("rob", "rob", "ROLE_USER", "ROLE_ADMIN")));
-
this.http.httpBasic();
this.http.authenticationManager(this.authenticationManager);
ServerHttpSecurity.AuthorizeExchangeSpec authorize = this.http.authorizeExchange();
authorize.anyExchange().authenticated();
-
WebTestClient client = buildClient();
-
EntityExchangeResult result = client.get().uri("/")
.headers((headers) -> headers.setBasicAuth("rob", "rob")).exchange().expectStatus().isOk()
.expectHeader().valueMatches(HttpHeaders.CACHE_CONTROL, ".+").expectBody(String.class)
.consumeWith((b) -> assertThat(b.getResponseBody()).isEqualTo("ok")).returnResult();
-
assertThat(result.getResponseCookies().getFirst("SESSION")).isNull();
}
@@ -144,27 +137,22 @@ public class ServerHttpSecurityTests {
public void basicWithGlobalWebSessionServerSecurityContextRepository() {
given(this.authenticationManager.authenticate(any()))
.willReturn(Mono.just(new TestingAuthenticationToken("rob", "rob", "ROLE_USER", "ROLE_ADMIN")));
-
this.http.securityContextRepository(new WebSessionServerSecurityContextRepository());
this.http.httpBasic();
this.http.authenticationManager(this.authenticationManager);
ServerHttpSecurity.AuthorizeExchangeSpec authorize = this.http.authorizeExchange();
authorize.anyExchange().authenticated();
-
WebTestClient client = buildClient();
-
EntityExchangeResult result = client.get().uri("/")
.headers((headers) -> headers.setBasicAuth("rob", "rob")).exchange().expectStatus().isOk()
.expectHeader().valueMatches(HttpHeaders.CACHE_CONTROL, ".+").expectBody(String.class)
.consumeWith((b) -> assertThat(b.getResponseBody()).isEqualTo("ok")).returnResult();
-
assertThat(result.getResponseCookies().getFirst("SESSION")).isNotNull();
}
@Test
public void basicWhenNoCredentialsThenUnauthorized() {
this.http.authorizeExchange().anyExchange().authenticated();
-
WebTestClient client = buildClient();
client.get().uri("/").exchange().expectStatus().isUnauthorized().expectHeader()
.valueMatches(HttpHeaders.CACHE_CONTROL, ".+").expectBody().isEmpty();
@@ -173,23 +161,18 @@ public class ServerHttpSecurityTests {
@Test
public void buildWhenServerWebExchangeFromContextThenFound() {
SecurityWebFilterChain filter = this.http.build();
-
WebTestClient client = WebTestClient.bindToController(new SubscriberContextController())
.webFilter(new WebFilterChainProxy(filter)).build();
-
client.get().uri("/foo/bar").exchange().expectBody(String.class).isEqualTo("/foo/bar");
}
@Test
public void csrfServerLogoutHandlerNotAppliedIfCsrfIsntEnabled() {
SecurityWebFilterChain securityWebFilterChain = this.http.csrf().disable().build();
-
assertThat(getWebFilter(securityWebFilterChain, CsrfWebFilter.class)).isNotPresent();
-
Optional logoutHandler = getWebFilter(securityWebFilterChain, LogoutWebFilter.class)
.map((logoutWebFilter) -> (ServerLogoutHandler) ReflectionTestUtils.getField(logoutWebFilter,
LogoutWebFilter.class, "logoutHandler"));
-
assertThat(logoutHandler).get().isExactlyInstanceOf(SecurityContextServerLogoutHandler.class);
}
@@ -197,15 +180,12 @@ public class ServerHttpSecurityTests {
public void csrfServerLogoutHandlerAppliedIfCsrfIsEnabled() {
SecurityWebFilterChain securityWebFilterChain = this.http.csrf().csrfTokenRepository(this.csrfTokenRepository)
.and().build();
-
assertThat(getWebFilter(securityWebFilterChain, CsrfWebFilter.class)).get()
.extracting((csrfWebFilter) -> ReflectionTestUtils.getField(csrfWebFilter, "csrfTokenRepository"))
.isEqualTo(this.csrfTokenRepository);
-
Optional logoutHandler = getWebFilter(securityWebFilterChain, LogoutWebFilter.class)
.map((logoutWebFilter) -> (ServerLogoutHandler) ReflectionTestUtils.getField(logoutWebFilter,
LogoutWebFilter.class, "logoutHandler"));
-
assertThat(logoutHandler).get().isExactlyInstanceOf(DelegatingServerLogoutHandler.class)
.extracting((delegatingLogoutHandler) -> ((List) ReflectionTestUtils
.getField(delegatingLogoutHandler, DelegatingServerLogoutHandler.class, "delegates")).stream()
@@ -220,10 +200,8 @@ public class ServerHttpSecurityTests {
.addFilterAfter(new TestWebFilter(), SecurityWebFiltersOrder.SECURITY_CONTEXT_SERVER_WEB_EXCHANGE)
.build();
List filters = securityWebFilterChain.getWebFilters().map(WebFilter::getClass).collectList().block();
-
assertThat(filters).isNotNull().isNotEmpty().containsSequence(SecurityContextServerWebExchangeWebFilter.class,
TestWebFilter.class);
-
}
@Test
@@ -233,10 +211,8 @@ public class ServerHttpSecurityTests {
.addFilterBefore(new TestWebFilter(), SecurityWebFiltersOrder.SECURITY_CONTEXT_SERVER_WEB_EXCHANGE)
.build();
List filters = securityWebFilterChain.getWebFilters().map(WebFilter::getClass).collectList().block();
-
assertThat(filters).isNotNull().isNotEmpty().containsSequence(TestWebFilter.class,
SecurityContextServerWebExchangeWebFilter.class);
-
}
@Test
@@ -244,9 +220,7 @@ public class ServerHttpSecurityTests {
SecurityWebFilterChain securityFilterChain = this.http.anonymous().and().build();
WebTestClient client = WebTestClientBuilder.bindToControllerAndWebFilters(
AnonymousAuthenticationWebFilterTests.HttpMeController.class, securityFilterChain).build();
-
client.get().uri("/me").exchange().expectStatus().isOk().expectBody(String.class).isEqualTo("anonymousUser");
-
}
@Test
@@ -254,7 +228,6 @@ public class ServerHttpSecurityTests {
SecurityWebFilterChain securityFilterChain = this.http.anonymous(withDefaults()).build();
WebTestClient client = WebTestClientBuilder.bindToControllerAndWebFilters(
AnonymousAuthenticationWebFilterTests.HttpMeController.class, securityFilterChain).build();
-
client.get().uri("/me").exchange().expectStatus().isOk().expectBody(String.class).isEqualTo("anonymousUser");
}
@@ -262,19 +235,15 @@ public class ServerHttpSecurityTests {
public void basicWithAnonymous() {
given(this.authenticationManager.authenticate(any()))
.willReturn(Mono.just(new TestingAuthenticationToken("rob", "rob", "ROLE_USER", "ROLE_ADMIN")));
-
this.http.httpBasic().and().anonymous();
this.http.authenticationManager(this.authenticationManager);
ServerHttpSecurity.AuthorizeExchangeSpec authorize = this.http.authorizeExchange();
authorize.anyExchange().hasAuthority("ROLE_ADMIN");
-
WebTestClient client = buildClient();
-
EntityExchangeResult result = client.get().uri("/")
.headers((headers) -> headers.setBasicAuth("rob", "rob")).exchange().expectStatus().isOk()
.expectHeader().valueMatches(HttpHeaders.CACHE_CONTROL, ".+").expectBody(String.class)
.consumeWith((b) -> assertThat(b.getResponseBody()).isEqualTo("ok")).returnResult();
-
assertThat(result.getResponseCookies().getFirst("SESSION")).isNull();
}
@@ -287,13 +256,10 @@ public class ServerHttpSecurityTests {
this.http.authenticationManager(this.authenticationManager);
ServerHttpSecurity.AuthorizeExchangeSpec authorize = this.http.authorizeExchange();
authorize.anyExchange().authenticated();
-
WebTestClient client = buildClient();
-
EntityExchangeResult result = client.get().uri("/").exchange().expectStatus().isUnauthorized()
.expectHeader().value(HttpHeaders.WWW_AUTHENTICATE, (value) -> assertThat(value).contains("myrealm"))
.expectBody(String.class).returnResult();
-
assertThat(result.getResponseCookies().getFirst("SESSION")).isNull();
}
@@ -306,13 +272,10 @@ public class ServerHttpSecurityTests {
this.http.authenticationManager(this.authenticationManager);
ServerHttpSecurity.AuthorizeExchangeSpec authorize = this.http.authorizeExchange();
authorize.anyExchange().authenticated();
-
WebTestClient client = buildClient();
-
EntityExchangeResult result = client.get().uri("/").exchange().expectStatus().isUnauthorized()
.expectHeader().value(HttpHeaders.WWW_AUTHENTICATE, (value) -> assertThat(value).contains("myrealm"))
.expectBody(String.class).returnResult();
-
assertThat(result.getResponseCookies().getFirst("SESSION")).isNull();
}
@@ -321,15 +284,12 @@ public class ServerHttpSecurityTests {
ReactiveAuthenticationManager customAuthenticationManager = mock(ReactiveAuthenticationManager.class);
given(customAuthenticationManager.authenticate(any()))
.willReturn(Mono.just(new TestingAuthenticationToken("rob", "rob", "ROLE_USER", "ROLE_ADMIN")));
-
SecurityWebFilterChain securityFilterChain = this.http.httpBasic()
.authenticationManager(customAuthenticationManager).and().build();
WebFilterChainProxy springSecurityFilterChain = new WebFilterChainProxy(securityFilterChain);
WebTestClient client = WebTestClientBuilder.bindToWebFilters(springSecurityFilterChain).build();
-
client.get().uri("/").headers((headers) -> headers.setBasicAuth("rob", "rob")).exchange().expectStatus().isOk()
.expectBody(String.class).consumeWith((b) -> assertThat(b.getResponseBody()).isEqualTo("ok"));
-
verifyZeroInteractions(this.authenticationManager);
}
@@ -338,15 +298,12 @@ public class ServerHttpSecurityTests {
ReactiveAuthenticationManager customAuthenticationManager = mock(ReactiveAuthenticationManager.class);
given(customAuthenticationManager.authenticate(any()))
.willReturn(Mono.just(new TestingAuthenticationToken("rob", "rob", "ROLE_USER", "ROLE_ADMIN")));
-
SecurityWebFilterChain securityFilterChain = this.http
.httpBasic((httpBasic) -> httpBasic.authenticationManager(customAuthenticationManager)).build();
WebFilterChainProxy springSecurityFilterChain = new WebFilterChainProxy(securityFilterChain);
WebTestClient client = WebTestClientBuilder.bindToWebFilters(springSecurityFilterChain).build();
-
client.get().uri("/").headers((headers) -> headers.setBasicAuth("rob", "rob")).exchange().expectStatus().isOk()
.expectBody(String.class).consumeWith((b) -> assertThat(b.getResponseBody()).isEqualTo("ok"));
-
verifyZeroInteractions(this.authenticationManager);
verify(customAuthenticationManager).authenticate(any(Authentication.class));
}
@@ -356,12 +313,9 @@ public class ServerHttpSecurityTests {
public void addsX509FilterWhenX509AuthenticationIsConfigured() {
X509PrincipalExtractor mockExtractor = mock(X509PrincipalExtractor.class);
ReactiveAuthenticationManager mockAuthenticationManager = mock(ReactiveAuthenticationManager.class);
-
this.http.x509().principalExtractor(mockExtractor).authenticationManager(mockAuthenticationManager).and();
-
SecurityWebFilterChain securityWebFilterChain = this.http.build();
WebFilter x509WebFilter = securityWebFilterChain.getWebFilters().filter(this::isX509Filter).blockFirst();
-
assertThat(x509WebFilter).isNotNull();
}
@@ -369,33 +323,26 @@ public class ServerHttpSecurityTests {
public void x509WhenCustomizedThenAddsX509Filter() {
X509PrincipalExtractor mockExtractor = mock(X509PrincipalExtractor.class);
ReactiveAuthenticationManager mockAuthenticationManager = mock(ReactiveAuthenticationManager.class);
-
this.http.x509(
(x509) -> x509.principalExtractor(mockExtractor).authenticationManager(mockAuthenticationManager));
-
SecurityWebFilterChain securityWebFilterChain = this.http.build();
WebFilter x509WebFilter = securityWebFilterChain.getWebFilters().filter(this::isX509Filter).blockFirst();
-
assertThat(x509WebFilter).isNotNull();
}
@Test
public void addsX509FilterWhenX509AuthenticationIsConfiguredWithDefaults() {
this.http.x509();
-
SecurityWebFilterChain securityWebFilterChain = this.http.build();
WebFilter x509WebFilter = securityWebFilterChain.getWebFilters().filter(this::isX509Filter).blockFirst();
-
assertThat(x509WebFilter).isNotNull();
}
@Test
public void x509WhenDefaultsThenAddsX509Filter() {
this.http.x509(withDefaults());
-
SecurityWebFilterChain securityWebFilterChain = this.http.build();
WebFilter x509WebFilter = securityWebFilterChain.getWebFilters().filter(this::isX509Filter).blockFirst();
-
assertThat(x509WebFilter).isNotNull();
}
@@ -404,7 +351,6 @@ public class ServerHttpSecurityTests {
SecurityWebFilterChain securityFilterChain = this.http.csrf((csrf) -> csrf.disable()).build();
WebFilterChainProxy springSecurityFilterChain = new WebFilterChainProxy(securityFilterChain);
WebTestClient client = WebTestClientBuilder.bindToWebFilters(springSecurityFilterChain).build();
-
client.post().uri("/").exchange().expectStatus().isOk();
}
@@ -416,9 +362,7 @@ public class ServerHttpSecurityTests {
.csrf((csrf) -> csrf.csrfTokenRepository(customServerCsrfTokenRepository)).build();
WebFilterChainProxy springSecurityFilterChain = new WebFilterChainProxy(securityFilterChain);
WebTestClient client = WebTestClientBuilder.bindToWebFilters(springSecurityFilterChain).build();
-
client.post().uri("/").exchange().expectStatus().isForbidden();
-
verify(customServerCsrfTokenRepository).loadToken(any());
}
@@ -427,17 +371,14 @@ public class ServerHttpSecurityTests {
ServerRequestCache requestCache = spy(new WebSessionServerRequestCache());
ReactiveClientRegistrationRepository clientRegistrationRepository = mock(
ReactiveClientRegistrationRepository.class);
-
SecurityWebFilterChain securityFilterChain = this.http.oauth2Login()
.clientRegistrationRepository(clientRegistrationRepository).and().authorizeExchange().anyExchange()
.authenticated().and().requestCache((c) -> c.requestCache(requestCache)).build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityFilterChain).build();
client.get().uri("/test").exchange();
ArgumentCaptor captor = ArgumentCaptor.forClass(ServerWebExchange.class);
verify(requestCache).saveRequest(captor.capture());
assertThat(captor.getValue().getRequest().getURI().toString()).isEqualTo("/test");
-
OAuth2LoginAuthenticationWebFilter authenticationWebFilter = getWebFilter(securityFilterChain,
OAuth2LoginAuthenticationWebFilter.class).get();
Object handler = ReflectionTestUtils.getField(authenticationWebFilter, "authenticationSuccessHandler");
@@ -450,19 +391,14 @@ public class ServerHttpSecurityTests {
ServerAuthorizationRequestRepository.class);
ReactiveClientRegistrationRepository clientRegistrationRepository = mock(
ReactiveClientRegistrationRepository.class);
-
OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request().build();
-
given(authorizationRequestRepository.removeAuthorizationRequest(any()))
.willReturn(Mono.just(authorizationRequest));
-
SecurityWebFilterChain securityFilterChain = this.http.oauth2Login()
.clientRegistrationRepository(clientRegistrationRepository)
.authorizationRequestRepository(authorizationRequestRepository).and().build();
-
WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityFilterChain).build();
client.get().uri("/login/oauth2/code/registration-id").exchange();
-
verify(authorizationRequestRepository).removeAuthorizationRequest(any());
}
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 4bd2d1e9f3..8d760858d5 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
@@ -102,9 +102,7 @@ public class WebSocketMessageBrokerConfigTests {
@Test
public void sendWhenNoIdSpecifiedThenIntegratesWithClientInboundChannel() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
this.clientInboundChannel.send(message("/permitAll"));
-
assertThatThrownBy(() -> this.clientInboundChannel.send(message("/denyAll")))
.hasCauseInstanceOf(AccessDeniedException.class);
}
@@ -112,214 +110,165 @@ public class WebSocketMessageBrokerConfigTests {
@Test
public void sendWhenAnonymousMessageWithConnectMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.create(SimpMessageType.CONNECT);
headers.setNativeHeader(this.token.getHeaderName(), this.token.getToken());
-
assertThatCode(() -> this.clientInboundChannel.send(message("/permitAll", headers))).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithConnectAckMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.CONNECT_ACK);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithDisconnectMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.DISCONNECT);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithDisconnectAckMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.DISCONNECT_ACK);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithHeartbeatMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.HEARTBEAT);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithMessageMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.MESSAGE);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithOtherMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.OTHER);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithSubscribeMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.SUBSCRIBE);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenAnonymousMessageWithUnsubscribeMessageTypeThenPermitted() {
this.spring.configLocations(xml("NoIdConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.UNSUBSCRIBE);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenConnectWithoutCsrfTokenThenDenied() {
this.spring.configLocations(xml("SyncConfig")).autowire();
-
Message> message = message("/message", SimpMessageType.CONNECT);
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(InvalidCsrfTokenException.class);
}
@Test
public void sendWhenConnectWithSameOriginDisabledThenCsrfTokenNotRequired() {
this.spring.configLocations(xml("SyncSameOriginDisabledConfig")).autowire();
-
Message> message = message("/message", SimpMessageType.CONNECT);
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenInterceptWiredForMessageTypeThenDeniesOnTypeMismatch() {
this.spring.configLocations(xml("MessageInterceptTypeConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.MESSAGE);
-
assertThatCode(send(message)).doesNotThrowAnyException();
-
message = message("/permitAll", SimpMessageType.UNSUBSCRIBE);
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
-
message = message("/anyOther", SimpMessageType.MESSAGE);
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
}
@Test
public void sendWhenInterceptWiredForSubscribeTypeThenDeniesOnTypeMismatch() {
this.spring.configLocations(xml("SubscribeInterceptTypeConfig")).autowire();
-
Message> message = message("/permitAll", SimpMessageType.SUBSCRIBE);
-
assertThatCode(send(message)).doesNotThrowAnyException();
-
message = message("/permitAll", SimpMessageType.UNSUBSCRIBE);
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
-
message = message("/anyOther", SimpMessageType.SUBSCRIBE);
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
}
@Test
public void configureWhenUsingConnectMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("ConnectInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void configureWhenUsingConnectAckMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("ConnectAckInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void configureWhenUsingDisconnectMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("DisconnectInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void configureWhenUsingDisconnectAckMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("DisconnectAckInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void configureWhenUsingHeartbeatMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("HeartbeatInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void configureWhenUsingOtherMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("OtherInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void configureWhenUsingUnsubscribeMessageTypeThenAutowireFails() {
ThrowingCallable bad = () -> this.spring.configLocations(xml("UnsubscribeInterceptTypeConfig")).autowire();
-
assertThatThrownBy(bad).isInstanceOf(BeanDefinitionParsingException.class);
}
@Test
public void sendWhenNoIdMessageThenAuthenticationPrincipalResolved() {
this.spring.configLocations(xml("SyncConfig")).autowire();
-
this.clientInboundChannel.send(message("/message"));
-
assertThat(this.messageController.username).isEqualTo("anonymous");
}
@Test
public void requestWhenConnectMessageThenUsesCsrfTokenHandshakeInterceptor() throws Exception {
this.spring.configLocations(xml("SyncConfig")).autowire();
-
WebApplicationContext context = this.spring.getContext();
MockMvc mvc = MockMvcBuilders.webAppContextSetup(context).build();
-
String csrfAttributeName = CsrfToken.class.getName();
String customAttributeName = this.getClass().getName();
-
MvcResult result = mvc.perform(get("/app").requestAttr(csrfAttributeName, this.token)
.sessionAttr(customAttributeName, "attributeValue")).andReturn();
-
CsrfToken handshakeToken = (CsrfToken) this.testHandshakeHandler.attributes.get(csrfAttributeName);
String handshakeValue = (String) this.testHandshakeHandler.attributes.get(customAttributeName);
String sessionValue = (String) result.getRequest().getSession().getAttribute(customAttributeName);
-
assertThat(handshakeToken).isEqualTo(this.token).withFailMessage("CsrfToken is populated");
-
assertThat(handshakeValue).isEqualTo(sessionValue)
.withFailMessage("Explicitly listed session variables are not overridden");
}
@@ -327,22 +276,16 @@ public class WebSocketMessageBrokerConfigTests {
@Test
public void requestWhenConnectMessageAndUsingSockJsThenUsesCsrfTokenHandshakeInterceptor() throws Exception {
this.spring.configLocations(xml("SyncSockJsConfig")).autowire();
-
WebApplicationContext context = this.spring.getContext();
MockMvc mvc = MockMvcBuilders.webAppContextSetup(context).build();
-
String csrfAttributeName = CsrfToken.class.getName();
String customAttributeName = this.getClass().getName();
-
MvcResult result = mvc.perform(get("/app/289/tpyx6mde/websocket").requestAttr(csrfAttributeName, this.token)
.sessionAttr(customAttributeName, "attributeValue")).andReturn();
-
CsrfToken handshakeToken = (CsrfToken) this.testHandshakeHandler.attributes.get(csrfAttributeName);
String handshakeValue = (String) this.testHandshakeHandler.attributes.get(customAttributeName);
String sessionValue = (String) result.getRequest().getSession().getAttribute(customAttributeName);
-
assertThat(handshakeToken).isEqualTo(this.token).withFailMessage("CsrfToken is populated");
-
assertThat(handshakeValue).isEqualTo(sessionValue)
.withFailMessage("Explicitly listed session variables are not overridden");
}
@@ -350,31 +293,23 @@ public class WebSocketMessageBrokerConfigTests {
@Test
public void sendWhenNoIdSpecifiedThenCustomArgumentResolversAreNotOverridden() {
this.spring.configLocations(xml("SyncCustomArgumentResolverConfig")).autowire();
-
this.clientInboundChannel.send(message("/message-with-argument"));
-
assertThat(this.messageWithArgumentController.messageArgument).isNotNull();
}
@Test
public void sendWhenUsingCustomPathMatcherThenSecurityAppliesIt() {
this.spring.configLocations(xml("CustomPathMatcherConfig")).autowire();
-
Message> message = message("/denyAll.a");
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
-
message = message("/denyAll.a.b");
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@Test
public void sendWhenIdSpecifiedThenSecurityDoesNotIntegrateWithClientInboundChannel() {
this.spring.configLocations(xml("IdConfig")).autowire();
-
Message> message = message("/denyAll");
-
assertThatCode(send(message)).doesNotThrowAnyException();
}
@@ -382,18 +317,14 @@ public class WebSocketMessageBrokerConfigTests {
@WithMockUser
public void sendWhenIdSpecifiedAndExplicitlyIntegratedWhenBrokerUsesClientInboundChannel() {
this.spring.configLocations(xml("IdIntegratedConfig")).autowire();
-
Message> message = message("/denyAll");
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
}
@Test
public void sendWhenNoIdSpecifiedThenSecurityDoesntOverrideCustomInterceptors() {
this.spring.configLocations(xml("CustomInterceptorConfig")).autowire();
-
Message> message = message("/throwAll");
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(UnsupportedOperationException.class);
}
@@ -401,9 +332,7 @@ public class WebSocketMessageBrokerConfigTests {
@WithMockUser(username = "nile")
public void sendWhenCustomExpressionHandlerThenAuthorizesAccordingly() {
this.spring.configLocations(xml("CustomExpressionHandlerConfig")).autowire();
-
Message> message = message("/denyNile");
-
assertThatThrownBy(send(message)).hasCauseInstanceOf(AccessDeniedException.class);
}
@@ -428,13 +357,10 @@ public class WebSocketMessageBrokerConfigTests {
headers.setSessionId("123");
headers.setSessionAttributes(new HashMap<>());
headers.setDestination(destination);
-
if (SecurityContextHolder.getContext().getAuthentication() != null) {
headers.setUser(SecurityContextHolder.getContext().getAuthentication());
}
-
headers.getSessionAttributes().put(CsrfToken.class.getName(), this.token);
-
return new GenericMessage<>("hi", headers.getMessageHeaders());
}
@@ -491,9 +417,7 @@ public class WebSocketMessageBrokerConfigTests {
public boolean doHandshake(ServerHttpRequest request,
org.springframework.http.server.ServerHttpResponse response, WebSocketHandler wsHandler,
Map attributes) throws HandshakeFailureException {
-
this.attributes = attributes;
-
return true;
}
@@ -510,7 +434,6 @@ public class WebSocketMessageBrokerConfigTests {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
-
}
}
@@ -529,14 +452,11 @@ public class WebSocketMessageBrokerConfigTests {
@Override
protected SecurityExpressionOperations createSecurityExpressionRoot(Authentication authentication,
Message invocation) {
-
return new MessageSecurityExpressionRoot(authentication, invocation) {
-
public boolean denyNile() {
Authentication auth = getAuthentication();
return auth != null && !"nile".equals(auth.getName());
}
-
};
}
diff --git a/config/src/test/java/org/springframework/security/htmlunit/server/HtmlUnitWebTestClient.java b/config/src/test/java/org/springframework/security/htmlunit/server/HtmlUnitWebTestClient.java
index 4f673aa2ef..9ac5684868 100644
--- a/config/src/test/java/org/springframework/security/htmlunit/server/HtmlUnitWebTestClient.java
+++ b/config/src/test/java/org/springframework/security/htmlunit/server/HtmlUnitWebTestClient.java
@@ -63,7 +63,6 @@ final class HtmlUnitWebTestClient {
contentType(request, webRequest);
cookies(request, webRequest);
headers(request, webRequest);
-
return content(request, webRequest).exchange().returnResult(String.class);
}
@@ -109,7 +108,6 @@ final class HtmlUnitWebTestClient {
request.cookie(cookieName, cookieValue);
}
}
-
Set managedCookies = this.webClient.getCookies(webRequest.getUrl());
for (com.gargoylesoftware.htmlunit.util.Cookie cookie : managedCookies) {
request.cookie(cookie.getName(), cookie.getValue());
@@ -156,10 +154,8 @@ final class HtmlUnitWebTestClient {
.headers((headers) -> headers.addAll(request.headers()))
.cookies((cookies) -> cookies.addAll(request.cookies()))
.attributes((attributes) -> attributes.putAll(request.attributes())).build();
-
return next.exchange(redirect).flatMap((r) -> redirectIfNecessary(request, next, r));
}
-
return Mono.just(response);
}
diff --git a/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientHtmlUnitDriverBuilderTests.java b/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientHtmlUnitDriverBuilderTests.java
index 7f509d7f1a..1c734077a8 100644
--- a/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientHtmlUnitDriverBuilderTests.java
+++ b/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientHtmlUnitDriverBuilderTests.java
@@ -46,9 +46,7 @@ public class WebTestClientHtmlUnitDriverBuilderTests {
public void helloWorld() {
WebTestClient webTestClient = WebTestClient.bindToController(new HelloWorldController()).build();
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
driver.get("http://localhost/");
-
assertThat(driver.getPageSource()).contains("Hello World");
}
@@ -56,13 +54,9 @@ public class WebTestClientHtmlUnitDriverBuilderTests {
public void cookies() {
WebTestClient webTestClient = WebTestClient.bindToController(new CookieController()).build();
WebDriver driver = WebTestClientHtmlUnitDriverBuilder.webTestClientSetup(webTestClient).build();
-
driver.get("http://localhost/cookie");
-
assertThat(driver.getPageSource()).contains("theCookie");
-
driver.get("http://localhost/cookie/delete");
-
assertThat(driver.getPageSource()).contains("null");
}
diff --git a/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientWebConnection.java b/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientWebConnection.java
index f7dd640175..a2fed90d58 100644
--- a/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientWebConnection.java
+++ b/config/src/test/java/org/springframework/security/htmlunit/server/WebTestClientWebConnection.java
@@ -50,7 +50,6 @@ public class WebTestClientWebConnection implements WebConnection {
Assert.notNull(webTestClient, "MockMvc must not be null");
Assert.notNull(webClient, "WebClient must not be null");
validateContextPath(contextPath);
-
this.webClient = webClient;
this.webTestClient = webTestClient;
this.contextPath = contextPath;
@@ -82,7 +81,6 @@ public class WebTestClientWebConnection implements WebConnection {
@Override
public WebResponse getResponse(WebRequest webRequest) throws IOException {
long startTime = System.currentTimeMillis();
-
FluxExchangeResult exchangeResult = this.requestBuilder.getResponse(webRequest);
webRequest.setUrl(exchangeResult.getUrl().toURL());
return new MockWebResponseBuilder(startTime, webRequest, exchangeResult).build();
diff --git a/config/src/test/java/org/springframework/security/intercept/method/aopalliance/MethodSecurityInterceptorWithAopConfigTests.java b/config/src/test/java/org/springframework/security/intercept/method/aopalliance/MethodSecurityInterceptorWithAopConfigTests.java
index dd8575d432..2710091266 100644
--- a/config/src/test/java/org/springframework/security/intercept/method/aopalliance/MethodSecurityInterceptorWithAopConfigTests.java
+++ b/config/src/test/java/org/springframework/security/intercept/method/aopalliance/MethodSecurityInterceptorWithAopConfigTests.java
@@ -41,12 +41,10 @@ public class MethodSecurityInterceptorWithAopConfigTests {
+ " "
+ " "
+ " " + " " + "";
-
static final String ACCESS_MANAGER_XML = ""
+ " "
+ " "
+ " " + "";
-
static final String TARGET_BEAN_AND_INTERCEPTOR = ""
+ ""
+ " " + " "
@@ -77,9 +75,7 @@ public class MethodSecurityInterceptorWithAopConfigTests {
+ " "
+ " " + ""
+ TARGET_BEAN_AND_INTERCEPTOR + AUTH_PROVIDER_XML + ACCESS_MANAGER_XML);
-
ITargetObject target = (ITargetObject) this.appContext.getBean("target");
-
// Check both against interface and class
try {
target.makeLowerCase("TEST");
@@ -87,7 +83,6 @@ public class MethodSecurityInterceptorWithAopConfigTests {
}
catch (AuthenticationCredentialsNotFoundException expected) {
}
-
target.makeUpperCase("test");
}
@@ -101,18 +96,14 @@ public class MethodSecurityInterceptorWithAopConfigTests {
+ " " + " "
+ " " + ""
+ TARGET_BEAN_AND_INTERCEPTOR + AUTH_PROVIDER_XML + ACCESS_MANAGER_XML);
-
ITargetObject target = (ITargetObject) this.appContext.getBean("target");
-
try {
target.makeLowerCase("TEST");
fail("AuthenticationCredentialsNotFoundException expected");
}
catch (AuthenticationCredentialsNotFoundException expected) {
}
-
target.makeUpperCase("test");
-
}
private void setContext(String context) {
diff --git a/core/src/test/java/org/springframework/security/PopulatedDatabase.java b/core/src/test/java/org/springframework/security/PopulatedDatabase.java
index f450a2bb76..2ff999577a 100644
--- a/core/src/test/java/org/springframework/security/PopulatedDatabase.java
+++ b/core/src/test/java/org/springframework/security/PopulatedDatabase.java
@@ -37,14 +37,12 @@ public final class PopulatedDatabase {
if (dataSource == null) {
setupDataSource();
}
-
return dataSource;
}
private static void setupDataSource() {
dataSource = new TestDataSource("springsecuritytest");
JdbcTemplate template = new JdbcTemplate(dataSource);
-
template.execute(
"CREATE TABLE USERS(USERNAME VARCHAR_IGNORECASE(50) NOT NULL PRIMARY KEY,PASSWORD VARCHAR_IGNORECASE(500) NOT NULL,ENABLED BOOLEAN NOT NULL)");
template.execute(
@@ -77,18 +75,15 @@ public final class PopulatedDatabase {
"INSERT INTO acl_object_identity VALUES (5, 'org.springframework.security.acl.DomainObject:5', 3, 'org.springframework.security.acl.basic.SimpleAclEntry');");
template.execute(
"INSERT INTO acl_object_identity VALUES (6, 'org.springframework.security.acl.DomainObject:6', 3, 'org.springframework.security.acl.basic.SimpleAclEntry');");
-
// ----- BEGIN deviation from normal sample data load script -----
template.execute(
"INSERT INTO acl_object_identity VALUES (7, 'org.springframework.security.acl.DomainObject:7', 3, 'some.invalid.acl.entry.class');");
-
// ----- FINISH deviation from normal sample data load script -----
template.execute("INSERT INTO acl_permission VALUES (null, 1, 'ROLE_SUPERVISOR', 1);");
template.execute("INSERT INTO acl_permission VALUES (null, 2, 'ROLE_SUPERVISOR', 0);");
template.execute("INSERT INTO acl_permission VALUES (null, 2, 'rod', 2);");
template.execute("INSERT INTO acl_permission VALUES (null, 3, 'scott', 14);");
template.execute("INSERT INTO acl_permission VALUES (null, 6, 'scott', 1);");
-
createGroupTables(template);
insertGroupData(template);
}
@@ -106,13 +101,11 @@ public final class PopulatedDatabase {
public static void insertGroupData(JdbcTemplate template) {
template.execute("INSERT INTO USERS VALUES('jerry','password',TRUE)");
template.execute("INSERT INTO USERS VALUES('tom','password',TRUE)");
-
template.execute("INSERT INTO GROUPS VALUES (0, 'GROUP_0')");
template.execute("INSERT INTO GROUPS VALUES (1, 'GROUP_1')");
template.execute("INSERT INTO GROUPS VALUES (2, 'GROUP_2')");
// Group 3 isn't used
template.execute("INSERT INTO GROUPS VALUES (3, 'GROUP_3')");
-
template.execute("INSERT INTO GROUP_AUTHORITIES VALUES (0, 'ROLE_A')");
template.execute("INSERT INTO GROUP_AUTHORITIES VALUES (1, 'ROLE_B')");
template.execute("INSERT INTO GROUP_AUTHORITIES VALUES (1, 'ROLE_C')");
@@ -121,7 +114,6 @@ public final class PopulatedDatabase {
template.execute("INSERT INTO GROUP_AUTHORITIES VALUES (2, 'ROLE_C')");
template.execute("INSERT INTO GROUP_AUTHORITIES VALUES (3, 'ROLE_D')");
template.execute("INSERT INTO GROUP_AUTHORITIES VALUES (3, 'ROLE_E')");
-
template.execute("INSERT INTO GROUP_MEMBERS VALUES (0, 'jerry', 0)");
template.execute("INSERT INTO GROUP_MEMBERS VALUES (1, 'jerry', 1)");
// tom has groups with overlapping roles
diff --git a/core/src/test/java/org/springframework/security/TargetObject.java b/core/src/test/java/org/springframework/security/TargetObject.java
index 5f98437350..b936d69043 100644
--- a/core/src/test/java/org/springframework/security/TargetObject.java
+++ b/core/src/test/java/org/springframework/security/TargetObject.java
@@ -47,7 +47,6 @@ public class TargetObject implements ITargetObject {
@Override
public String makeLowerCase(String input) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
-
if (auth == null) {
return input.toLowerCase() + " Authentication empty";
}
@@ -67,7 +66,6 @@ public class TargetObject implements ITargetObject {
@Override
public String makeUpperCase(String input) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
-
return input.toUpperCase() + " " + auth.getClass().getName() + " " + auth.isAuthenticated();
}
diff --git a/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java b/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java
index 94de0f1f15..9b6fee171e 100644
--- a/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java
+++ b/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java
@@ -37,7 +37,6 @@ public class AuthorizedEventTests {
@Test(expected = IllegalArgumentException.class)
public void testRejectsNulls2() {
-
new AuthorizedEvent(new SimpleMethodInvocation(), null, new UsernamePasswordAuthenticationToken("foo", "bar"));
}
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 40c2165865..7cc22aff20 100644
--- a/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java
+++ b/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java
@@ -53,23 +53,17 @@ public class SecurityConfigTests {
SecurityConfig security1 = new SecurityConfig("TEST");
SecurityConfig security2 = new SecurityConfig("TEST");
assertThat(security2).isEqualTo(security1);
-
// SEC-311: Must observe symmetry requirement of Object.equals(Object) contract
String securityString1 = "TEST";
assertThat(securityString1).isNotSameAs(security1);
-
String securityString2 = "NOT_EQUAL";
assertThat(!security1.equals(securityString2)).isTrue();
-
SecurityConfig security3 = new SecurityConfig("NOT_EQUAL");
assertThat(!security1.equals(security3)).isTrue();
-
MockConfigAttribute mock1 = new MockConfigAttribute("TEST");
assertThat(security1).isEqualTo(mock1);
-
MockConfigAttribute mock2 = new MockConfigAttribute("NOT_EQUAL");
assertThat(security1).isNotEqualTo(mock2);
-
Integer int1 = 987;
assertThat(security1).isNotEqualTo(int1);
}
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 705632467e..0e732bf480 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
@@ -75,7 +75,6 @@ public class BusinessServiceImpl implements BusinessService {
@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 eec3144daa..9d1b066d01 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
@@ -71,12 +71,10 @@ public class ExpressionProtectedBusinessServiceImpl implements BusinessService {
@PreAuthorize("#x == 'x' and @number.intValue() == 1294 ")
public void methodWithBeanNamePropertyAccessExpression(String x) {
-
}
@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 3472f49f1c..09aa5ae48c 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
@@ -76,7 +76,6 @@ public class Jsr250BusinessServiceImpl implements BusinessService {
@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 e072ee4b4c..642674a887 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
@@ -91,7 +91,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
@Test
public void customDefaultRolePrefix() throws Exception {
this.mds.setDefaultRolePrefix("CUSTOMPREFIX_");
-
ConfigAttribute[] accessAttributes = findAttributes("adminMethod");
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes[0].toString()).isEqualTo("CUSTOMPREFIX_ADMIN");
@@ -100,7 +99,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
@Test
public void emptyDefaultRolePrefix() throws Exception {
this.mds.setDefaultRolePrefix("");
-
ConfigAttribute[] accessAttributes = findAttributes("adminMethod");
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes[0].toString()).isEqualTo("ADMIN");
@@ -109,7 +107,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
@Test
public void nullDefaultRolePrefix() throws Exception {
this.mds.setDefaultRolePrefix(null);
-
ConfigAttribute[] accessAttributes = findAttributes("adminMethod");
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes[0].toString()).isEqualTo("ADMIN");
@@ -123,7 +120,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
}
// JSR-250 Spec Tests
-
/**
* Class-level annotations only affect the class they annotate and their members, that
* is, its methods and fields. They never affect a member declared by a superclass,
@@ -134,7 +130,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void classLevelAnnotationsOnlyAffectTheClassTheyAnnotateAndTheirMembers() throws Exception {
Child target = new Child();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "notOverriden");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).isNull();
}
@@ -143,7 +138,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void classLevelAnnotationsOnlyAffectTheClassTheyAnnotateAndTheirMembersOverriden() throws Exception {
Child target = new Child();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "overriden");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes.toArray()[0].toString()).isEqualTo("ROLE_DERIVED");
@@ -153,7 +147,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void classLevelAnnotationsImpactMemberLevel() throws Exception {
Child target = new Child();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "defaults");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes.toArray()[0].toString()).isEqualTo("ROLE_DERIVED");
@@ -163,7 +156,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void classLevelAnnotationsIgnoredByExplicitMemberAnnotation() throws Exception {
Child target = new Child();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "explicitMethod");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes.toArray()[0].toString()).isEqualTo("ROLE_EXPLICIT");
@@ -178,7 +170,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void interfacesNeverContributeAnnotationsMethodLevel() throws Exception {
Parent target = new Parent();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "interfaceMethod");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).isEmpty();
}
@@ -187,7 +178,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void interfacesNeverContributeAnnotationsClassLevel() throws Exception {
Parent target = new Parent();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "notOverriden");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).isEmpty();
}
@@ -196,7 +186,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
public void annotationsOnOverriddenMemberIgnored() throws Exception {
Child target = new Child();
MockMethodInvocation mi = new MockMethodInvocation(target, target.getClass(), "overridenIgnored");
-
Collection accessAttributes = this.mds.getAttributes(mi);
assertThat(accessAttributes).hasSize(1);
assertThat(accessAttributes.toArray()[0].toString()).isEqualTo("ROLE_DERIVED");
@@ -234,7 +223,6 @@ public class Jsr250MethodSecurityMetadataSourceTests {
}
// JSR-250 Spec
-
@RolesAllowed("IPARENT")
interface IParent {
diff --git a/core/src/test/java/org/springframework/security/access/annotation/Jsr250VoterTests.java b/core/src/test/java/org/springframework/security/access/annotation/Jsr250VoterTests.java
index 8e7f5536fc..412d2fe93f 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/Jsr250VoterTests.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/Jsr250VoterTests.java
@@ -38,21 +38,17 @@ public class Jsr250VoterTests {
public void supportsMultipleRolesCorrectly() {
List attrs = new ArrayList<>();
Jsr250Voter voter = new Jsr250Voter();
-
attrs.add(new Jsr250SecurityConfig("A"));
attrs.add(new Jsr250SecurityConfig("B"));
attrs.add(new Jsr250SecurityConfig("C"));
-
assertThat(voter.vote(new TestingAuthenticationToken("user", "pwd", "A"), new Object(), attrs))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
assertThat(voter.vote(new TestingAuthenticationToken("user", "pwd", "B"), new Object(), attrs))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
assertThat(voter.vote(new TestingAuthenticationToken("user", "pwd", "C"), new Object(), attrs))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
-
assertThat(voter.vote(new TestingAuthenticationToken("user", "pwd", "NONE"), new Object(), attrs))
.isEqualTo(AccessDecisionVoter.ACCESS_DENIED);
-
assertThat(voter.vote(new TestingAuthenticationToken("user", "pwd", "A"), new Object(),
SecurityConfig.createList("A", "B", "C"))).isEqualTo(AccessDecisionVoter.ACCESS_ABSTAIN);
}
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 842aa93485..a607b56874 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
@@ -54,39 +54,29 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
@Test
public void genericsSuperclassDeclarationsAreIncludedWhenSubclassesOverride() {
Method method = null;
-
try {
method = DepartmentServiceImpl.class.getMethod("someUserMethod3", new Class[] { Department.class });
}
catch (NoSuchMethodException unexpected) {
fail("Should be a superMethod called 'someUserMethod3' on class!");
}
-
Collection attrs = this.mds.findAttributes(method, DepartmentServiceImpl.class);
-
assertThat(attrs).isNotNull();
-
// expect 1 attribute
assertThat(attrs.size() == 1).as("Did not find 1 attribute").isTrue();
-
// should have 1 SecurityConfig
for (ConfigAttribute sc : attrs) {
assertThat(sc.getAttribute()).as("Found an incorrect role").isEqualTo("ROLE_ADMIN");
}
-
Method superMethod = null;
-
try {
superMethod = DepartmentServiceImpl.class.getMethod("someUserMethod3", new Class[] { Entity.class });
}
catch (NoSuchMethodException unexpected) {
fail("Should be a superMethod called 'someUserMethod3' on class!");
}
-
Collection superAttrs = this.mds.findAttributes(superMethod, DepartmentServiceImpl.class);
-
assertThat(superAttrs).isNotNull();
-
// This part of the test relates to SEC-274
// expect 1 attribute
assertThat(superAttrs).as("Did not find 1 attribute").hasSize(1);
@@ -99,41 +89,31 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
@Test
public void classLevelAttributesAreFound() {
Collection attrs = this.mds.findAttributes(BusinessService.class);
-
assertThat(attrs).isNotNull();
-
// expect 1 annotation
assertThat(attrs).hasSize(1);
-
// should have 1 SecurityConfig
SecurityConfig sc = (SecurityConfig) attrs.toArray()[0];
-
assertThat(sc.getAttribute()).isEqualTo("ROLE_USER");
}
@Test
public void methodLevelAttributesAreFound() {
Method method = null;
-
try {
method = BusinessService.class.getMethod("someUserAndAdminMethod", new Class[] {});
}
catch (NoSuchMethodException unexpected) {
fail("Should be a method called 'someUserAndAdminMethod' on class!");
}
-
Collection attrs = this.mds.findAttributes(method, BusinessService.class);
-
// expect 2 attributes
assertThat(attrs).hasSize(2);
-
boolean user = false;
boolean admin = false;
-
// should have 2 SecurityConfigs
for (ConfigAttribute sc : attrs) {
assertThat(sc).isInstanceOf(SecurityConfig.class);
-
if (sc.getAttribute().equals("ROLE_USER")) {
user = true;
}
@@ -141,7 +121,6 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
admin = true;
}
}
-
// expect to have ROLE_USER and ROLE_ADMIN
assertThat(user).isEqualTo(admin).isTrue();
}
@@ -159,9 +138,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
public void annotatedAnnotationAtClassLevelIsDetected() throws Exception {
MockMethodInvocation annotatedAtClassLevel = new MockMethodInvocation(new AnnotatedAnnotationAtClassLevel(),
ReturnVoid.class, "doSomething", List.class);
-
ConfigAttribute[] attrs = this.mds.getAttributes(annotatedAtClassLevel).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs).extracting("attribute").containsOnly("CUSTOM");
}
@@ -170,9 +147,7 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
public void annotatedAnnotationAtInterfaceLevelIsDetected() throws Exception {
MockMethodInvocation annotatedAtInterfaceLevel = new MockMethodInvocation(
new AnnotatedAnnotationAtInterfaceLevel(), ReturnVoid2.class, "doSomething", List.class);
-
ConfigAttribute[] attrs = this.mds.getAttributes(annotatedAtInterfaceLevel).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs).extracting("attribute").containsOnly("CUSTOM");
}
@@ -182,7 +157,6 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
MockMethodInvocation annotatedAtMethodLevel = new MockMethodInvocation(new AnnotatedAnnotationAtMethodLevel(),
ReturnVoid.class, "doSomething", List.class);
ConfigAttribute[] attrs = this.mds.getAttributes(annotatedAtMethodLevel).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs).extracting("attribute").containsOnly("CUSTOM");
}
@@ -223,7 +197,6 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
}
// SEC-1491 Related classes. PoC for custom annotation with enum value.
-
@CustomSecurityAnnotation(SecurityEnum.ADMIN)
interface CustomAnnotatedService {
@@ -262,7 +235,6 @@ public class SecuredAnnotationSecurityMetadataSourceTests {
@Override
public Collection extends ConfigAttribute> extractAttributes(CustomSecurityAnnotation securityAnnotation) {
SecurityEnum[] values = securityAnnotation.value();
-
return EnumSet.copyOf(Arrays.asList(values));
}
diff --git a/core/src/test/java/org/springframework/security/access/expression/AbstractSecurityExpressionHandlerTests.java b/core/src/test/java/org/springframework/security/access/expression/AbstractSecurityExpressionHandlerTests.java
index c9522feca6..f8c6b653a2 100644
--- a/core/src/test/java/org/springframework/security/access/expression/AbstractSecurityExpressionHandlerTests.java
+++ b/core/src/test/java/org/springframework/security/access/expression/AbstractSecurityExpressionHandlerTests.java
@@ -51,7 +51,6 @@ public class AbstractSecurityExpressionHandlerTests {
@Test
public void beanNamesAreCorrectlyResolved() {
this.handler.setApplicationContext(new AnnotationConfigApplicationContext(TestConfiguration.class));
-
Expression expression = this.handler.getExpressionParser()
.parseExpression("@number10.compareTo(@number20) < 0");
assertThat(expression.getValue(this.handler.createEvaluationContext(mock(Authentication.class), new Object())))
diff --git a/core/src/test/java/org/springframework/security/access/expression/SecurityExpressionRootTests.java b/core/src/test/java/org/springframework/security/access/expression/SecurityExpressionRootTests.java
index c1e953f363..9cb6564f61 100644
--- a/core/src/test/java/org/springframework/security/access/expression/SecurityExpressionRootTests.java
+++ b/core/src/test/java/org/springframework/security/access/expression/SecurityExpressionRootTests.java
@@ -64,7 +64,6 @@ public class SecurityExpressionRootTests {
@Test
public void roleHierarchySupportIsCorrectlyUsedInEvaluatingRoles() {
this.root.setRoleHierarchy((authorities) -> AuthorityUtils.createAuthorityList("ROLE_C"));
-
assertThat(this.root.hasRole("C")).isTrue();
assertThat(this.root.hasAuthority("ROLE_C")).isTrue();
assertThat(this.root.hasRole("A")).isFalse();
@@ -98,7 +97,6 @@ public class SecurityExpressionRootTests {
public void hasRoleDoesNotAddDefaultPrefixForAlreadyPrefixedRoles() {
SecurityExpressionRoot root = new SecurityExpressionRoot(JOE) {
};
-
assertThat(root.hasRole("ROLE_A")).isTrue();
assertThat(root.hasRole("ROLE_NO")).isFalse();
}
diff --git a/core/src/test/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandlerTests.java b/core/src/test/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandlerTests.java
index f2f1047f61..0cc3343ca5 100644
--- a/core/src/test/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandlerTests.java
+++ b/core/src/test/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandlerTests.java
@@ -77,11 +77,9 @@ public class DefaultMethodSecurityExpressionHandlerTests {
@Test
public void createEvaluationContextCustomTrustResolver() {
this.handler.setTrustResolver(this.trustResolver);
-
Expression expression = this.handler.getExpressionParser().parseExpression("anonymous");
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.methodInvocation);
expression.getValue(context, Boolean.class);
-
verify(this.trustResolver).isAnonymous(this.authentication);
}
@@ -92,13 +90,9 @@ public class DefaultMethodSecurityExpressionHandlerTests {
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
-
Expression expression = this.handler.getExpressionParser().parseExpression("filterObject.key eq 'key2'");
-
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.methodInvocation);
-
Object filtered = this.handler.filter(map, expression, context);
-
assertThat(filtered == map);
Map result = ((Map) filtered);
assertThat(result.size() == 1);
@@ -113,13 +107,9 @@ public class DefaultMethodSecurityExpressionHandlerTests {
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
-
Expression expression = this.handler.getExpressionParser().parseExpression("filterObject.value eq 'value3'");
-
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.methodInvocation);
-
Object filtered = this.handler.filter(map, expression, context);
-
assertThat(filtered == map);
Map result = ((Map) filtered);
assertThat(result.size() == 1);
@@ -134,14 +124,10 @@ public class DefaultMethodSecurityExpressionHandlerTests {
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
-
Expression expression = this.handler.getExpressionParser()
.parseExpression("(filterObject.key eq 'key1') or (filterObject.value eq 'value2')");
-
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.methodInvocation);
-
Object filtered = this.handler.filter(map, expression, context);
-
assertThat(filtered == map);
Map result = ((Map) filtered);
assertThat(result.size() == 2);
@@ -153,13 +139,9 @@ public class DefaultMethodSecurityExpressionHandlerTests {
@SuppressWarnings("unchecked")
public void filterWhenUsingStreamThenFiltersStream() {
final Stream stream = Stream.of("1", "2", "3");
-
Expression expression = this.handler.getExpressionParser().parseExpression("filterObject ne '2'");
-
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.methodInvocation);
-
Object filtered = this.handler.filter(stream, expression, context);
-
assertThat(filtered).isInstanceOf(Stream.class);
List list = ((Stream) filtered).collect(Collectors.toList());
assertThat(list).containsExactly("1", "3");
@@ -169,11 +151,8 @@ public class DefaultMethodSecurityExpressionHandlerTests {
public void filterStreamWhenClosedThenUpstreamGetsClosed() {
final Stream> upstream = mock(Stream.class);
doReturn(Stream.empty()).when(upstream).filter(any());
-
Expression expression = this.handler.getExpressionParser().parseExpression("true");
-
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.methodInvocation);
-
((Stream) this.handler.filter(upstream, expression, context)).close();
verify(upstream).close();
}
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 d60ef97c45..d409c4054d 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
@@ -113,9 +113,8 @@ public class MethodExpressionVoterTests {
@Test
public void ruleDefinedInAClassMethodIsApplied() throws Exception {
MethodInvocation mi = new SimpleMethodInvocation(new TargetImpl(), methodTakingAString(), "joe");
- assertThat(
-
- this.am.vote(this.joe, mi, createAttributes(new PreInvocationExpressionAttribute(null, null,
+ assertThat(this.am.vote(this.joe, mi,
+ createAttributes(new PreInvocationExpressionAttribute(null, null,
"T(org.springframework.security.access.expression.method.SecurityRules).isJoe(#argument)"))))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
}
diff --git a/core/src/test/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRootTests.java b/core/src/test/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRootTests.java
index 43ee1027ad..e6c8910fd8 100644
--- a/core/src/test/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRootTests.java
+++ b/core/src/test/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRootTests.java
@@ -64,7 +64,6 @@ public class MethodSecurityExpressionRootTests {
public void canCallMethodsOnVariables() {
this.ctx.setVariable("var", "somestring");
Expression e = this.parser.parseExpression("#var.length() == 10");
-
assertThat(ExpressionUtils.evaluateAsBoolean(e, this.ctx)).isTrue();
}
@@ -87,9 +86,7 @@ public class MethodSecurityExpressionRootTests {
this.ctx.setVariable("domainObject", dummyDomainObject);
this.root.setPermissionEvaluator(pe);
given(pe.hasPermission(this.user, dummyDomainObject, "ignored")).willReturn(false);
-
assertThat(this.root.hasPermission(dummyDomainObject, "ignored")).isFalse();
-
}
@Test
@@ -99,7 +96,6 @@ public class MethodSecurityExpressionRootTests {
this.ctx.setVariable("domainObject", dummyDomainObject);
this.root.setPermissionEvaluator(pe);
given(pe.hasPermission(this.user, dummyDomainObject, "ignored")).willReturn(true);
-
assertThat(this.root.hasPermission(dummyDomainObject, "ignored")).isTrue();
}
@@ -110,7 +106,6 @@ public class MethodSecurityExpressionRootTests {
final PermissionEvaluator pe = mock(PermissionEvaluator.class);
this.root.setPermissionEvaluator(pe);
given(pe.hasPermission(eq(this.user), eq(dummyDomainObject), any(Integer.class))).willReturn(true, true, false);
-
Expression e = this.parser.parseExpression("hasPermission(#domainObject, 0xA)");
// evaluator returns true
assertThat(ExpressionUtils.evaluateAsBoolean(e, this.ctx)).isTrue();
@@ -135,12 +130,10 @@ public class MethodSecurityExpressionRootTests {
this.root.setPermissionEvaluator(pe);
given(pe.hasPermission(this.user, targetObject, i)).willReturn(true, false);
given(pe.hasPermission(this.user, "x", i)).willReturn(true);
-
Expression e = this.parser.parseExpression("hasPermission(this, 2)");
assertThat(ExpressionUtils.evaluateAsBoolean(e, this.ctx)).isTrue();
e = this.parser.parseExpression("hasPermission(this, 2)");
assertThat(ExpressionUtils.evaluateAsBoolean(e, this.ctx)).isFalse();
-
e = this.parser.parseExpression("hasPermission(this.x, 2)");
assertThat(ExpressionUtils.evaluateAsBoolean(e, this.ctx)).isTrue();
}
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 bf024683f3..c7e19fbf89 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
@@ -88,7 +88,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void classLevelPreAnnotationIsPickedUpWhenNoMethodLevelExists() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.voidImpl1).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs[0] instanceof PreInvocationExpressionAttribute).isTrue();
PreInvocationExpressionAttribute pre = (PreInvocationExpressionAttribute) attrs[0];
@@ -100,7 +99,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void mixedClassAndMethodPreAnnotationsAreBothIncluded() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.voidImpl2).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs[0] instanceof PreInvocationExpressionAttribute).isTrue();
PreInvocationExpressionAttribute pre = (PreInvocationExpressionAttribute) attrs[0];
@@ -112,7 +110,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void methodWithPreFilterOnlyIsAllowed() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.voidImpl3).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs[0] instanceof PreInvocationExpressionAttribute).isTrue();
PreInvocationExpressionAttribute pre = (PreInvocationExpressionAttribute) attrs[0];
@@ -124,7 +121,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void methodWithPostFilterOnlyIsAllowed() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.listImpl1).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(2);
assertThat(attrs[0] instanceof PreInvocationExpressionAttribute).isTrue();
assertThat(attrs[1] instanceof PostInvocationExpressionAttribute).isTrue();
@@ -138,7 +134,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void interfaceAttributesAreIncluded() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.notherListImpl1).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs[0] instanceof PreInvocationExpressionAttribute).isTrue();
PreInvocationExpressionAttribute pre = (PreInvocationExpressionAttribute) attrs[0];
@@ -151,7 +146,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void classAttributesTakesPrecedeceOverInterfaceAttributes() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.notherListImpl2).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
assertThat(attrs[0] instanceof PreInvocationExpressionAttribute).isTrue();
PreInvocationExpressionAttribute pre = (PreInvocationExpressionAttribute) attrs[0];
@@ -164,7 +158,6 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
@Test
public void customAnnotationAtClassLevelIsDetected() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.annotatedAtClassLevel).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
}
@@ -172,14 +165,12 @@ public class PrePostAnnotationSecurityMetadataSourceTests {
public void customAnnotationAtInterfaceLevelIsDetected() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.annotatedAtInterfaceLevel)
.toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
}
@Test
public void customAnnotationAtMethodLevelIsDetected() {
ConfigAttribute[] attrs = this.mds.getAttributes(this.annotatedAtMethodLevel).toArray(new ConfigAttribute[0]);
-
assertThat(attrs).hasSize(1);
}
diff --git a/core/src/test/java/org/springframework/security/access/hierarchicalroles/HierarchicalRolesTestHelper.java b/core/src/test/java/org/springframework/security/access/hierarchicalroles/HierarchicalRolesTestHelper.java
index 8d2a9fdff3..b8df1e837e 100755
--- a/core/src/test/java/org/springframework/security/access/hierarchicalroles/HierarchicalRolesTestHelper.java
+++ b/core/src/test/java/org/springframework/security/access/hierarchicalroles/HierarchicalRolesTestHelper.java
@@ -36,7 +36,6 @@ public abstract class HierarchicalRolesTestHelper {
if (authorities1 == null && authorities2 == null) {
return true;
}
-
if (authorities1 == null || authorities2 == null) {
return false;
}
@@ -48,7 +47,6 @@ public abstract class HierarchicalRolesTestHelper {
if (authorities1 == null && authorities2 == null) {
return true;
}
-
if (authorities1 == null || authorities2 == null) {
return false;
}
@@ -60,7 +58,6 @@ public abstract class HierarchicalRolesTestHelper {
if (authorities == null) {
return null;
}
-
List result = new ArrayList<>(authorities.size());
for (GrantedAuthority authority : authorities) {
result.add(authority.getAuthority());
@@ -70,12 +67,10 @@ public abstract class HierarchicalRolesTestHelper {
public static List createAuthorityList(final String... roles) {
List authorities = new ArrayList<>(roles.length);
-
for (final String role : roles) {
// Use non SimpleGrantedAuthority (SEC-863)
authorities.add((GrantedAuthority) () -> role);
}
-
return authorities;
}
diff --git a/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapperTests.java b/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapperTests.java
index 0d373bf9d9..58beb183f3 100644
--- a/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapperTests.java
+++ b/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapperTests.java
@@ -35,16 +35,11 @@ public class RoleHierarchyAuthoritiesMapperTests {
RoleHierarchyImpl rh = new RoleHierarchyImpl();
rh.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C");
RoleHierarchyAuthoritiesMapper mapper = new RoleHierarchyAuthoritiesMapper(rh);
-
Collection extends GrantedAuthority> authorities = mapper
.mapAuthorities(AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_D"));
-
assertThat(authorities).hasSize(4);
-
mapper = new RoleHierarchyAuthoritiesMapper(new NullRoleHierarchy());
-
authorities = mapper.mapAuthorities(AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_D"));
-
assertThat(authorities).hasSize(2);
}
diff --git a/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImplTests.java b/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImplTests.java
index 7f337dac51..0bd68d1955 100644
--- a/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImplTests.java
+++ b/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImplTests.java
@@ -38,27 +38,21 @@ public class RoleHierarchyImplTests {
public void testRoleHierarchyWithNullOrEmptyAuthorities() {
List authorities0 = null;
List authorities1 = new ArrayList<>();
-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
-
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities0)).isNotNull();
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities0)).isEmpty();
-
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities1)).isNotNull();
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities1)).isEmpty();
}
@Test
public void testSimpleRoleHierarchy() {
-
List authorities0 = AuthorityUtils.createAuthorityList("ROLE_0");
List authorities1 = AuthorityUtils.createAuthorityList("ROLE_A");
List authorities2 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B");
-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
roleHierarchyImpl.getReachableGrantedAuthorities(authorities0), authorities0)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
@@ -73,13 +67,10 @@ public class RoleHierarchyImplTests {
List authorities2 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B", "ROLE_C");
List authorities3 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B", "ROLE_C",
"ROLE_D");
-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C");
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities2)).isTrue();
-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_D");
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities3)).isTrue();
@@ -96,10 +87,8 @@ public class RoleHierarchyImplTests {
List authoritiesOutput3 = AuthorityUtils.createAuthorityList("ROLE_C", "ROLE_D");
List authoritiesInput4 = AuthorityUtils.createAuthorityList("ROLE_D");
List authoritiesOutput4 = AuthorityUtils.createAuthorityList("ROLE_D");
-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D");
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
roleHierarchyImpl.getReachableGrantedAuthorities(authoritiesInput1), authoritiesOutput1)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
@@ -113,28 +102,24 @@ public class RoleHierarchyImplTests {
@Test
public void testCyclesInRoleHierarchy() {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
-
try {
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_A");
fail("Cycle in role hierarchy was not detected!");
}
catch (CycleInRoleHierarchyException ex) {
}
-
try {
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_A");
fail("Cycle in role hierarchy was not detected!");
}
catch (CycleInRoleHierarchyException ex) {
}
-
try {
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_A");
fail("Cycle in role hierarchy was not detected!");
}
catch (CycleInRoleHierarchyException ex) {
}
-
try {
roleHierarchyImpl.setHierarchy(
"ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_E\nROLE_E > ROLE_D\nROLE_D > ROLE_B");
@@ -142,7 +127,6 @@ public class RoleHierarchyImplTests {
}
catch (CycleInRoleHierarchyException ex) {
}
-
try {
roleHierarchyImpl.setHierarchy("ROLE_C > ROLE_B\nROLE_B > ROLE_A\nROLE_A > ROLE_B");
fail("Cycle in role hierarchy was not detected!");
@@ -154,7 +138,6 @@ public class RoleHierarchyImplTests {
@Test
public void testNoCyclesInRoleHierarchy() {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
-
try {
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D");
}
@@ -166,14 +149,11 @@ public class RoleHierarchyImplTests {
// SEC-863
@Test
public void testSimpleRoleHierarchyWithCustomGrantedAuthorityImplementation() {
-
List authorities0 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_0");
List authorities1 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_A");
List authorities2 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_A", "ROLE_B");
-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthoritiesCompareByAuthorityString(
roleHierarchyImpl.getReachableGrantedAuthorities(authorities0), authorities0)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthoritiesCompareByAuthorityString(
@@ -188,13 +168,10 @@ public class RoleHierarchyImplTests {
List authorities2 = AuthorityUtils.createAuthorityList("ROLE A", "ROLE B", "ROLE>C");
List authorities3 = AuthorityUtils.createAuthorityList("ROLE A", "ROLE B", "ROLE>C",
"ROLE D");
-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
-
roleHierarchyImpl.setHierarchy("ROLE A > ROLE B\nROLE B > ROLE>C");
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities2)).isTrue();
-
roleHierarchyImpl.setHierarchy("ROLE A > ROLE B\nROLE B > ROLE>C\nROLE>C > ROLE D");
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities3)).isTrue();
@@ -209,7 +186,6 @@ public class RoleHierarchyImplTests {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy(
"ROLE_A > ROLE_B\n" + "ROLE_B > ROLE_AUTHENTICATED\n" + "ROLE_AUTHENTICATED > ROLE_UNAUTHENTICATED");
-
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(flatAuthorities))
.containsExactlyInAnyOrderElementsOf(allAuthorities);
}
@@ -223,7 +199,6 @@ public class RoleHierarchyImplTests {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl
.setHierarchy("ROLE_HIGHEST > ROLE_HIGHER\n" + "ROLE_HIGHER > ROLE_LOW\n" + "ROLE_LOW > ROLE_LOWER");
-
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(flatAuthorities))
.containsExactlyInAnyOrderElementsOf(allAuthorities);
}
@@ -236,7 +211,6 @@ public class RoleHierarchyImplTests {
"ROLE_LOW", "ROLE_LOWER");
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy("ROLE_HIGHEST > ROLE_HIGHER > ROLE_LOW > ROLE_LOWER");
-
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(flatAuthorities))
.containsExactlyInAnyOrderElementsOf(allAuthorities);
}
diff --git a/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyUtilsTests.java b/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyUtilsTests.java
index 6684a2e9d7..ae08fd1249 100644
--- a/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyUtilsTests.java
+++ b/core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyUtilsTests.java
@@ -44,14 +44,11 @@ public class RoleHierarchyUtilsTests {
"ROLE_B > ROLE_D" + EOL +
"ROLE_C > ROLE_D" + EOL;
// @formatter:on
-
Map> roleHierarchyMap = new TreeMap<>();
roleHierarchyMap.put("ROLE_A", Arrays.asList("ROLE_B", "ROLE_C"));
roleHierarchyMap.put("ROLE_B", Arrays.asList("ROLE_D"));
roleHierarchyMap.put("ROLE_C", Arrays.asList("ROLE_D"));
-
String roleHierarchy = RoleHierarchyUtils.roleHierarchyFromMap(roleHierarchyMap);
-
assertThat(roleHierarchy).isEqualTo(expectedRoleHierarchy);
}
@@ -69,7 +66,6 @@ public class RoleHierarchyUtilsTests {
public void roleHierarchyFromMapWhenRoleNullThenThrowsIllegalArgumentException() {
Map> roleHierarchyMap = new HashMap<>();
roleHierarchyMap.put(null, Arrays.asList("ROLE_B", "ROLE_C"));
-
RoleHierarchyUtils.roleHierarchyFromMap(roleHierarchyMap);
}
@@ -77,7 +73,6 @@ public class RoleHierarchyUtilsTests {
public void roleHierarchyFromMapWhenRoleEmptyThenThrowsIllegalArgumentException() {
Map> roleHierarchyMap = new HashMap<>();
roleHierarchyMap.put("", Arrays.asList("ROLE_B", "ROLE_C"));
-
RoleHierarchyUtils.roleHierarchyFromMap(roleHierarchyMap);
}
@@ -85,7 +80,6 @@ public class RoleHierarchyUtilsTests {
public void roleHierarchyFromMapWhenImpliedRolesNullThenThrowsIllegalArgumentException() {
Map> roleHierarchyMap = new HashMap<>();
roleHierarchyMap.put("ROLE_A", null);
-
RoleHierarchyUtils.roleHierarchyFromMap(roleHierarchyMap);
}
@@ -93,7 +87,6 @@ public class RoleHierarchyUtilsTests {
public void roleHierarchyFromMapWhenImpliedRolesEmptyThenThrowsIllegalArgumentException() {
Map> roleHierarchyMap = new HashMap<>();
roleHierarchyMap.put("ROLE_A", Collections.emptyList());
-
RoleHierarchyUtils.roleHierarchyFromMap(roleHierarchyMap);
}
diff --git a/core/src/test/java/org/springframework/security/access/hierarchicalroles/TestHelperTests.java b/core/src/test/java/org/springframework/security/access/hierarchicalroles/TestHelperTests.java
index 54570c4759..111b94b8f5 100644
--- a/core/src/test/java/org/springframework/security/access/hierarchicalroles/TestHelperTests.java
+++ b/core/src/test/java/org/springframework/security/access/hierarchicalroles/TestHelperTests.java
@@ -42,12 +42,10 @@ public class TestHelperTests {
List authorities3 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_C");
List authorities4 = AuthorityUtils.createAuthorityList("ROLE_A");
List authorities5 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_A");
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(null, null)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, authorities1)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, authorities2)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities2, authorities1)).isTrue();
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(null, authorities1)).isFalse();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, null)).isFalse();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, authorities3)).isFalse();
@@ -65,42 +63,32 @@ public class TestHelperTests {
Collection authorities3 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_C");
Collection authorities4 = AuthorityUtils.createAuthorityList("ROLE_A");
Collection authorities5 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_A");
-
List authoritiesStrings1 = new ArrayList<>();
authoritiesStrings1.add("ROLE_A");
authoritiesStrings1.add("ROLE_B");
-
List authoritiesStrings2 = new ArrayList<>();
authoritiesStrings2.add("ROLE_B");
authoritiesStrings2.add("ROLE_A");
-
List authoritiesStrings3 = new ArrayList<>();
authoritiesStrings3.add("ROLE_A");
authoritiesStrings3.add("ROLE_C");
-
List authoritiesStrings4 = new ArrayList<>();
authoritiesStrings4.add("ROLE_A");
-
List authoritiesStrings5 = new ArrayList<>();
authoritiesStrings5.add("ROLE_A");
authoritiesStrings5.add("ROLE_A");
-
assertThat(CollectionUtils.isEqualCollection(
HierarchicalRolesTestHelper.toCollectionOfAuthorityStrings(authorities1), authoritiesStrings1))
.isTrue();
-
assertThat(CollectionUtils.isEqualCollection(
HierarchicalRolesTestHelper.toCollectionOfAuthorityStrings(authorities2), authoritiesStrings2))
.isTrue();
-
assertThat(CollectionUtils.isEqualCollection(
HierarchicalRolesTestHelper.toCollectionOfAuthorityStrings(authorities3), authoritiesStrings3))
.isTrue();
-
assertThat(CollectionUtils.isEqualCollection(
HierarchicalRolesTestHelper.toCollectionOfAuthorityStrings(authorities4), authoritiesStrings4))
.isTrue();
-
assertThat(CollectionUtils.isEqualCollection(
HierarchicalRolesTestHelper.toCollectionOfAuthorityStrings(authorities5), authoritiesStrings5))
.isTrue();
@@ -114,12 +102,10 @@ public class TestHelperTests {
List authorities3 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_C");
List authorities4 = AuthorityUtils.createAuthorityList("ROLE_A");
List authorities5 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_A");
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(null, null)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, authorities1)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, authorities2)).isTrue();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities2, authorities1)).isTrue();
-
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(null, authorities1)).isFalse();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, null)).isFalse();
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(authorities1, authorities3)).isFalse();
@@ -144,7 +130,6 @@ public class TestHelperTests {
List authorities1 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_A");
assertThat(authorities1).hasSize(1);
assertThat(authorities1.get(0).getAuthority()).isEqualTo("ROLE_A");
-
List authorities2 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_A", "ROLE_C");
assertThat(authorities2).hasSize(2);
assertThat(authorities2.get(0).getAuthority()).isEqualTo("ROLE_A");
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 67f6e1aa86..6a4047cbae 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
@@ -36,7 +36,6 @@ public class AbstractSecurityInterceptorTests {
@Test(expected = IllegalArgumentException.class)
public void detectsIfInvocationPassedIncompatibleSecureObject() {
MockSecurityInterceptorWhichOnlySupportsStrings si = new MockSecurityInterceptorWhichOnlySupportsStrings();
-
si.setRunAsManager(mock(RunAsManager.class));
si.setAuthenticationManager(mock(AuthenticationManager.class));
si.setAfterInvocationManager(mock(AfterInvocationManager.class));
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 6244ad3a4f..f6fc8ec922 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
@@ -51,25 +51,19 @@ public class AfterInvocationProviderManagerTests {
manager.setProviders(list);
assertThat(manager.getProviders()).isEqualTo(list);
manager.afterPropertiesSet();
-
List attr1 = SecurityConfig.createList(new String[] { "GIVE_ME_SWAP1" });
List attr2 = SecurityConfig.createList(new String[] { "GIVE_ME_SWAP2" });
List attr3 = SecurityConfig.createList(new String[] { "GIVE_ME_SWAP3" });
List attr2and3 = SecurityConfig.createList(new String[] { "GIVE_ME_SWAP2", "GIVE_ME_SWAP3" });
List attr4 = SecurityConfig.createList(new String[] { "NEVER_CAUSES_SWAP" });
-
assertThat(manager.decide(null, new SimpleMethodInvocation(), attr1, "content-before-swapping"))
.isEqualTo("swap1");
-
assertThat(manager.decide(null, new SimpleMethodInvocation(), attr2, "content-before-swapping"))
.isEqualTo("swap2");
-
assertThat(manager.decide(null, new SimpleMethodInvocation(), attr3, "content-before-swapping"))
.isEqualTo("swap3");
-
assertThat(manager.decide(null, new SimpleMethodInvocation(), attr4, "content-before-swapping"))
.isEqualTo("content-before-swapping");
-
assertThat(manager.decide(null, new SimpleMethodInvocation(), attr2and3, "content-before-swapping"))
.isEqualTo("swap3");
}
@@ -78,7 +72,6 @@ public class AfterInvocationProviderManagerTests {
public void testRejectsEmptyProvidersList() {
AfterInvocationProviderManager manager = new AfterInvocationProviderManager();
List list = new Vector();
-
try {
manager.setProviders(list);
fail("Should have thrown IllegalArgumentException");
@@ -95,7 +88,6 @@ public class AfterInvocationProviderManagerTests {
list.add(new MockAfterInvocationProvider("swap1", MethodInvocation.class, new SecurityConfig("GIVE_ME_SWAP1")));
list.add(45);
list.add(new MockAfterInvocationProvider("swap3", MethodInvocation.class, new SecurityConfig("GIVE_ME_SWAP3")));
-
try {
manager.setProviders(list);
fail("Should have thrown IllegalArgumentException");
@@ -108,7 +100,6 @@ public class AfterInvocationProviderManagerTests {
@Test
public void testRejectsNullProvidersList() throws Exception {
AfterInvocationProviderManager manager = new AfterInvocationProviderManager();
-
try {
manager.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
@@ -127,7 +118,6 @@ public class AfterInvocationProviderManagerTests {
list.add(new MockAfterInvocationProvider("swap3", MethodInvocation.class, new SecurityConfig("GIVE_ME_SWAP3")));
manager.setProviders(list);
manager.afterPropertiesSet();
-
assertThat(manager.supports(new SecurityConfig("UNKNOWN_ATTRIB"))).isFalse();
assertThat(manager.supports(new SecurityConfig("GIVE_ME_SWAP2"))).isTrue();
}
@@ -141,7 +131,6 @@ public class AfterInvocationProviderManagerTests {
list.add(new MockAfterInvocationProvider("swap3", MethodInvocation.class, new SecurityConfig("GIVE_ME_SWAP3")));
manager.setProviders(list);
manager.afterPropertiesSet();
-
// assertFalse(manager.supports(FilterInvocation.class));
assertThat(manager.supports(MethodInvocation.class)).isTrue();
}
@@ -171,7 +160,6 @@ public class AfterInvocationProviderManagerTests {
if (config.contains(this.configAttribute)) {
return this.forceReturnObject;
}
-
return returnedObject;
}
diff --git a/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java b/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java
index f745614c0f..eb6947816a 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java
@@ -42,7 +42,6 @@ public class InterceptorStatusTokenTests {
MethodInvocation mi = new SimpleMethodInvocation();
SecurityContext ctx = SecurityContextHolder.createEmptyContext();
InterceptorStatusToken token = new InterceptorStatusToken(ctx, true, attr, mi);
-
assertThat(token.isContextHolderRefreshRequired()).isTrue();
assertThat(token.getAttributes()).isEqualTo(attr);
assertThat(token.getSecureObject()).isEqualTo(mi);
diff --git a/core/src/test/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProviderTests.java
index b19767152a..620806f5ff 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/RunAsImplAuthenticationProviderTests.java
@@ -38,7 +38,6 @@ public class RunAsImplAuthenticationProviderTests {
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"), UsernamePasswordAuthenticationToken.class);
RunAsImplAuthenticationProvider provider = new RunAsImplAuthenticationProvider();
provider.setKey("hello_world");
-
provider.authenticate(token);
}
@@ -48,11 +47,8 @@ public class RunAsImplAuthenticationProviderTests {
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"), UsernamePasswordAuthenticationToken.class);
RunAsImplAuthenticationProvider provider = new RunAsImplAuthenticationProvider();
provider.setKey("my_password");
-
Authentication result = provider.authenticate(token);
-
Assert.assertTrue("Should have returned RunAsUserToken", result instanceof RunAsUserToken);
-
RunAsUserToken resultCast = (RunAsUserToken) result;
assertThat(resultCast.getKeyHash()).isEqualTo("my_password".hashCode());
}
@@ -60,7 +56,6 @@ public class RunAsImplAuthenticationProviderTests {
@Test(expected = IllegalArgumentException.class)
public void testStartupFailsIfNoKey() throws Exception {
RunAsImplAuthenticationProvider provider = new RunAsImplAuthenticationProvider();
-
provider.afterPropertiesSet();
}
diff --git a/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java b/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java
index c58c4a193f..31503300c3 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java
@@ -45,10 +45,8 @@ public class RunAsManagerImplTests {
public void testDoesNotReturnAdditionalAuthoritiesIfCalledWithoutARunAsSetting() {
UsernamePasswordAuthenticationToken inputToken = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
-
RunAsManagerImpl runAs = new RunAsManagerImpl();
runAs.setKey("my_password");
-
Authentication resultingToken = runAs.buildRunAs(inputToken, new Object(),
SecurityConfig.createList("SOMETHING_WE_IGNORE"));
assertThat(resultingToken).isNull();
@@ -58,23 +56,18 @@ public class RunAsManagerImplTests {
public void testRespectsRolePrefix() {
UsernamePasswordAuthenticationToken inputToken = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ONE", "TWO"));
-
RunAsManagerImpl runAs = new RunAsManagerImpl();
runAs.setKey("my_password");
runAs.setRolePrefix("FOOBAR_");
-
Authentication result = runAs.buildRunAs(inputToken, new Object(),
SecurityConfig.createList("RUN_AS_SOMETHING"));
-
assertThat(result instanceof RunAsUserToken).withFailMessage("Should have returned a RunAsUserToken").isTrue();
assertThat(result.getPrincipal()).isEqualTo(inputToken.getPrincipal());
assertThat(result.getCredentials()).isEqualTo(inputToken.getCredentials());
Set authorities = AuthorityUtils.authorityListToSet(result.getAuthorities());
-
assertThat(authorities.contains("FOOBAR_RUN_AS_SOMETHING")).isTrue();
assertThat(authorities.contains("ONE")).isTrue();
assertThat(authorities.contains("TWO")).isTrue();
-
RunAsUserToken resultCast = (RunAsUserToken) result;
assertThat(resultCast.getKeyHash()).isEqualTo("my_password".hashCode());
}
@@ -83,25 +76,19 @@ public class RunAsManagerImplTests {
public void testReturnsAdditionalGrantedAuthorities() {
UsernamePasswordAuthenticationToken inputToken = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
-
RunAsManagerImpl runAs = new RunAsManagerImpl();
runAs.setKey("my_password");
-
Authentication result = runAs.buildRunAs(inputToken, new Object(),
SecurityConfig.createList("RUN_AS_SOMETHING"));
-
if (!(result instanceof RunAsUserToken)) {
fail("Should have returned a RunAsUserToken");
}
-
assertThat(result.getPrincipal()).isEqualTo(inputToken.getPrincipal());
assertThat(result.getCredentials()).isEqualTo(inputToken.getCredentials());
-
Set authorities = AuthorityUtils.authorityListToSet(result.getAuthorities());
assertThat(authorities.contains("ROLE_RUN_AS_SOMETHING")).isTrue();
assertThat(authorities.contains("ROLE_ONE")).isTrue();
assertThat(authorities.contains("ROLE_TWO")).isTrue();
-
RunAsUserToken resultCast = (RunAsUserToken) result;
assertThat(resultCast.getKeyHash()).isEqualTo("my_password".hashCode());
}
@@ -109,13 +96,11 @@ public class RunAsManagerImplTests {
@Test
public void testStartupDetectsMissingKey() throws Exception {
RunAsManagerImpl runAs = new RunAsManagerImpl();
-
try {
runAs.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
diff --git a/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java b/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java
index 50d5fd3d70..b8b151b27a 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java
@@ -53,7 +53,6 @@ public class RunAsUserTokenTests {
@Test
public void testNoArgConstructorDoesntExist() {
Class clazz = RunAsUserToken.class;
-
try {
clazz.getDeclaredConstructor((Class[]) null);
fail("Should have thrown NoSuchMethodException");
diff --git a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java
index b510aeb697..aa8ff61359 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java
@@ -198,7 +198,6 @@ public class MethodSecurityInterceptorTests {
given(this.adm.supports(MethodInvocation.class)).willReturn(true);
given(this.mds.supports(MethodInvocation.class)).willReturn(true);
given(this.mds.getAllConfigAttributes()).willReturn(null);
-
this.interceptor.setValidateConfigAttributes(true);
this.interceptor.afterPropertiesSet();
verify(this.adm, never()).supports(any(ConfigAttribute.class));
@@ -224,10 +223,8 @@ public class MethodSecurityInterceptorTests {
public void callIsntMadeWhenAuthenticationManagerRejectsAuthentication() {
final TestingAuthenticationToken token = new TestingAuthenticationToken("Test", "Password");
SecurityContextHolder.getContext().setAuthentication(token);
-
mdsReturnsUserRole();
given(this.authman.authenticate(token)).willThrow(new BadCredentialsException("rejected"));
-
this.advisedTarget.makeLowerCase("HELLO");
}
@@ -237,9 +234,7 @@ public class MethodSecurityInterceptorTests {
this.interceptor.setPublishAuthorizationSuccess(true);
SecurityContextHolder.getContext().setAuthentication(this.token);
mdsReturnsUserRole();
-
String result = this.advisedTarget.makeLowerCase("HELLO");
-
// Note we check the isAuthenticated remained true in following line
assertThat(result)
.isEqualTo("hello org.springframework.security.authentication.TestingAuthenticationToken true");
@@ -256,7 +251,6 @@ public class MethodSecurityInterceptorTests {
given(this.authman.authenticate(this.token)).willReturn(this.token);
willThrow(new AccessDeniedException("rejected")).given(this.adm).decide(any(Authentication.class),
any(MethodInvocation.class), any(List.class));
-
try {
this.advisedTarget.makeUpperCase("HELLO");
fail("Expected Exception");
@@ -282,7 +276,6 @@ public class MethodSecurityInterceptorTests {
this.interceptor.setRunAsManager(runAs);
mdsReturnsUserRole();
given(runAs.buildRunAs(eq(this.token), any(MethodInvocation.class), any(List.class))).willReturn(runAsToken);
-
String result = this.advisedTarget.makeUpperCase("hello");
assertThat(result).isEqualTo("HELLO org.springframework.security.access.intercept.RunAsUserToken true");
// Check we've changed back
@@ -304,14 +297,12 @@ public class MethodSecurityInterceptorTests {
this.interceptor.setRunAsManager(runAs);
mdsReturnsUserRole();
given(runAs.buildRunAs(eq(this.token), any(MethodInvocation.class), any(List.class))).willReturn(runAsToken);
-
try {
this.advisedTarget.makeUpperCase("hello");
fail("Expected Exception");
}
catch (RuntimeException success) {
}
-
// Check we've changed back
assertThat(SecurityContextHolder.getContext()).isSameAs(ctx);
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.token);
@@ -329,19 +320,15 @@ public class MethodSecurityInterceptorTests {
this.token.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(this.token);
mdsReturnsUserRole();
-
AfterInvocationManager aim = mock(AfterInvocationManager.class);
this.interceptor.setAfterInvocationManager(aim);
-
given(mi.proceed()).willThrow(new Throwable());
-
try {
this.interceptor.invoke(mi);
fail("Expected exception");
}
catch (Throwable expected) {
}
-
verifyZeroInteractions(aim);
}
diff --git a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java
index d9ea3b8857..297705c6e5 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java
@@ -39,7 +39,6 @@ public class MethodSecurityMetadataSourceAdvisorTests {
public void testAdvisorReturnsFalseWhenMethodInvocationNotDefined() throws Exception {
Class clazz = TargetObject.class;
Method method = clazz.getMethod("makeLowerCase", new Class[] { String.class });
-
MethodSecurityMetadataSource mds = mock(MethodSecurityMetadataSource.class);
given(mds.getAttributes(method, clazz)).willReturn(null);
MethodSecurityMetadataSourceAdvisor advisor = new MethodSecurityMetadataSourceAdvisor("", mds, "");
@@ -50,7 +49,6 @@ public class MethodSecurityMetadataSourceAdvisorTests {
public void testAdvisorReturnsTrueWhenMethodInvocationIsDefined() throws Exception {
Class clazz = TargetObject.class;
Method method = clazz.getMethod("countLength", new Class[] { String.class });
-
MethodSecurityMetadataSource mds = mock(MethodSecurityMetadataSource.class);
given(mds.getAttributes(method, clazz)).willReturn(SecurityConfig.createList("ROLE_A"));
MethodSecurityMetadataSourceAdvisor advisor = new MethodSecurityMetadataSourceAdvisor("", mds, "");
diff --git a/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJMethodSecurityInterceptorTests.java b/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJMethodSecurityInterceptorTests.java
index f156277895..6ea44ac332 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJMethodSecurityInterceptorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJMethodSecurityInterceptorTests.java
@@ -114,7 +114,6 @@ public class AspectJMethodSecurityInterceptorTests {
SecurityContextHolder.getContext().setAuthentication(this.token);
this.interceptor.invoke(this.joinPoint, this.aspectJCallback);
verify(this.aspectJCallback).proceedWithObject();
-
// Just try the other method too
this.interceptor.invoke(this.joinPoint);
}
@@ -123,7 +122,6 @@ public class AspectJMethodSecurityInterceptorTests {
@Test
public void callbackIsNotInvokedWhenPermissionDenied() {
willThrow(new AccessDeniedException("denied")).given(this.adm).decide(any(), any(), any());
-
SecurityContextHolder.getContext().setAuthentication(this.token);
try {
this.interceptor.invoke(this.joinPoint, this.aspectJCallback);
@@ -138,7 +136,6 @@ public class AspectJMethodSecurityInterceptorTests {
public void adapterHoldsCorrectData() {
TargetObject to = new TargetObject();
Method m = ClassUtils.getMethodIfAvailable(TargetObject.class, "countLength", new Class[] { String.class });
-
given(this.joinPoint.getTarget()).willReturn(to);
given(this.joinPoint.getArgs()).willReturn(new Object[] { "Hi" });
MethodInvocationAdapter mia = new MethodInvocationAdapter(this.joinPoint);
@@ -152,19 +149,15 @@ public class AspectJMethodSecurityInterceptorTests {
public void afterInvocationManagerIsNotInvokedIfExceptionIsRaised() {
this.token.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(this.token);
-
AfterInvocationManager aim = mock(AfterInvocationManager.class);
this.interceptor.setAfterInvocationManager(aim);
-
given(this.aspectJCallback.proceedWithObject()).willThrow(new RuntimeException());
-
try {
this.interceptor.invoke(this.joinPoint, this.aspectJCallback);
fail("Expected exception");
}
catch (RuntimeException expected) {
}
-
verifyZeroInteractions(aim);
}
@@ -181,14 +174,12 @@ public class AspectJMethodSecurityInterceptorTests {
this.interceptor.setRunAsManager(runAs);
given(runAs.buildRunAs(eq(this.token), any(MethodInvocation.class), any(List.class))).willReturn(runAsToken);
given(this.aspectJCallback.proceedWithObject()).willThrow(new RuntimeException());
-
try {
this.interceptor.invoke(this.joinPoint, this.aspectJCallback);
fail("Expected Exception");
}
catch (RuntimeException success) {
}
-
// Check we've changed back
assertThat(SecurityContextHolder.getContext()).isSameAs(ctx);
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.token);
@@ -207,14 +198,12 @@ public class AspectJMethodSecurityInterceptorTests {
this.interceptor.setRunAsManager(runAs);
given(runAs.buildRunAs(eq(this.token), any(MethodInvocation.class), any(List.class))).willReturn(runAsToken);
given(this.joinPoint.proceed()).willThrow(new RuntimeException());
-
try {
this.interceptor.invoke(this.joinPoint);
fail("Expected Exception");
}
catch (RuntimeException success) {
}
-
// Check we've changed back
assertThat(SecurityContextHolder.getContext()).isSameAs(ctx);
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.token);
diff --git a/core/src/test/java/org/springframework/security/access/intercept/method/MapBasedMethodSecurityMetadataSourceTests.java b/core/src/test/java/org/springframework/security/access/intercept/method/MapBasedMethodSecurityMetadataSourceTests.java
index 9236bb38d8..ae3c44b91e 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/method/MapBasedMethodSecurityMetadataSourceTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/method/MapBasedMethodSecurityMetadataSourceTests.java
@@ -64,7 +64,6 @@ public class MapBasedMethodSecurityMetadataSourceTests {
public void methodsWithDifferentArgumentsAreMatchedCorrectly() {
this.mds.addSecureMethod(MockService.class, this.someMethodInteger, this.ROLE_A);
this.mds.addSecureMethod(MockService.class, this.someMethodString, this.ROLE_B);
-
assertThat(this.mds.getAttributes(this.someMethodInteger, MockService.class)).isEqualTo(this.ROLE_A);
assertThat(this.mds.getAttributes(this.someMethodString, MockService.class)).isEqualTo(this.ROLE_B);
}
diff --git a/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java b/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java
index bd0a55037d..a9e89fa1e5 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java
@@ -78,13 +78,10 @@ public class MethodInvocationPrivilegeEvaluatorTests {
public void allowsAccessUsingCreate() throws Exception {
Object object = new TargetObject();
final MethodInvocation mi = MethodInvocationUtils.create(object, "makeLowerCase", "foobar");
-
MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator();
given(this.mds.getAttributes(mi)).willReturn(this.role);
-
mipe.setSecurityInterceptor(this.interceptor);
mipe.afterPropertiesSet();
-
assertThat(mipe.isAllowed(mi, this.token)).isTrue();
}
@@ -95,7 +92,6 @@ public class MethodInvocationPrivilegeEvaluatorTests {
MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator();
mipe.setSecurityInterceptor(this.interceptor);
given(this.mds.getAttributes(mi)).willReturn(this.role);
-
assertThat(mipe.isAllowed(mi, this.token)).isTrue();
}
@@ -107,7 +103,6 @@ public class MethodInvocationPrivilegeEvaluatorTests {
mipe.setSecurityInterceptor(this.interceptor);
given(this.mds.getAttributes(mi)).willReturn(this.role);
willThrow(new AccessDeniedException("rejected")).given(this.adm).decide(this.token, mi, this.role);
-
assertThat(mipe.isAllowed(mi, this.token)).isFalse();
}
@@ -115,12 +110,10 @@ public class MethodInvocationPrivilegeEvaluatorTests {
public void declinesAccessUsingCreateFromClass() {
final MethodInvocation mi = MethodInvocationUtils.createFromClass(new OtherTargetObject(), ITargetObject.class,
"makeLowerCase", new Class[] { String.class }, new Object[] { "helloWorld" });
-
MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator();
mipe.setSecurityInterceptor(this.interceptor);
given(this.mds.getAttributes(mi)).willReturn(this.role);
willThrow(new AccessDeniedException("rejected")).given(this.adm).decide(this.token, mi, this.role);
-
assertThat(mipe.isAllowed(mi, this.token)).isFalse();
}
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 46e5985dab..b0cfe45d60 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
@@ -54,9 +54,7 @@ public class AbstractAccessDecisionManagerTests {
List list = new Vector();
list.add(new DenyVoter());
list.add(new MockStringOnlyVoter());
-
MockDecisionManagerImpl mock = new MockDecisionManagerImpl(list);
-
assertThat(mock.supports(String.class)).isTrue();
assertThat(!mock.supports(Integer.class)).isTrue();
}
@@ -68,12 +66,9 @@ public class AbstractAccessDecisionManagerTests {
DenyAgainVoter denyVoter = new DenyAgainVoter();
list.add(voter);
list.add(denyVoter);
-
MockDecisionManagerImpl mock = new MockDecisionManagerImpl(list);
-
ConfigAttribute attr = new SecurityConfig("DENY_AGAIN_FOR_SURE");
assertThat(mock.supports(attr)).isTrue();
-
ConfigAttribute badAttr = new SecurityConfig("WE_DONT_SUPPORT_THIS");
assertThat(!mock.supports(badAttr)).isTrue();
}
@@ -92,13 +87,11 @@ public class AbstractAccessDecisionManagerTests {
@Test
public void testRejectsEmptyList() {
List list = new Vector();
-
try {
new MockDecisionManagerImpl(list);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -109,7 +102,6 @@ public class AbstractAccessDecisionManagerTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -126,7 +118,6 @@ public class AbstractAccessDecisionManagerTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
diff --git a/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java b/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java
index e03cbc3cb9..d11135de93 100644
--- a/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java
@@ -56,11 +56,9 @@ public class AffirmativeBasedTests {
@Before
@SuppressWarnings("unchecked")
public void setup() {
-
this.grant = mock(AccessDecisionVoter.class);
this.abstain = mock(AccessDecisionVoter.class);
this.deny = mock(AccessDecisionVoter.class);
-
given(this.grant.vote(any(Authentication.class), any(Object.class), any(List.class)))
.willReturn(AccessDecisionVoter.ACCESS_GRANTED);
given(this.abstain.vote(any(Authentication.class), any(Object.class), any(List.class)))
@@ -71,7 +69,6 @@ public class AffirmativeBasedTests {
@Test
public void oneAffirmativeVoteOneDenyVoteOneAbstainVoteGrantsAccess() throws Exception {
-
this.mgr = new AffirmativeBased(
Arrays.>asList(this.grant, this.deny, this.abstain));
this.mgr.afterPropertiesSet();
@@ -104,7 +101,6 @@ public class AffirmativeBasedTests {
this.mgr = new AffirmativeBased(
Arrays.>asList(this.abstain, this.abstain, this.abstain));
assertThat(!this.mgr.isAllowIfAllAbstainDecisions()).isTrue(); // check default
-
this.mgr.decide(this.user, new Object(), this.attrs);
}
@@ -114,7 +110,6 @@ public class AffirmativeBasedTests {
Arrays.>asList(this.abstain, this.abstain, this.abstain));
this.mgr.setAllowIfAllAbstainDecisions(true);
assertThat(this.mgr.isAllowIfAllAbstainDecisions()).isTrue(); // check changed
-
this.mgr.decide(this.user, new Object(), this.attrs);
}
diff --git a/core/src/test/java/org/springframework/security/access/vote/AuthenticatedVoterTests.java b/core/src/test/java/org/springframework/security/access/vote/AuthenticatedVoterTests.java
index 4cc37d0c70..595bd55fc9 100644
--- a/core/src/test/java/org/springframework/security/access/vote/AuthenticatedVoterTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/AuthenticatedVoterTests.java
@@ -82,13 +82,11 @@ public class AuthenticatedVoterTests {
@Test
public void testSetterRejectsNull() {
AuthenticatedVoter voter = new AuthenticatedVoter();
-
try {
voter.setAuthenticationTrustResolver(null);
fail("Expected IAE");
}
catch (IllegalArgumentException expected) {
-
}
}
diff --git a/core/src/test/java/org/springframework/security/access/vote/ConsensusBasedTests.java b/core/src/test/java/org/springframework/security/access/vote/ConsensusBasedTests.java
index 0392e921c1..647387d2aa 100644
--- a/core/src/test/java/org/springframework/security/access/vote/ConsensusBasedTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/ConsensusBasedTests.java
@@ -43,9 +43,7 @@ public class ConsensusBasedTests {
ConsensusBased mgr = makeDecisionManager();
mgr.setAllowIfEqualGrantedDeniedDecisions(false);
assertThat(!mgr.isAllowIfEqualGrantedDeniedDecisions()).isTrue(); // check changed
-
List config = SecurityConfig.createList("ROLE_1", "DENY_FOR_SURE");
-
mgr.decide(auth, new Object(), config);
}
@@ -53,29 +51,22 @@ public class ConsensusBasedTests {
public void testOneAffirmativeVoteOneDenyVoteOneAbstainVoteGrantsAccessWithDefault() {
TestingAuthenticationToken auth = makeTestToken();
ConsensusBased mgr = makeDecisionManager();
-
assertThat(mgr.isAllowIfEqualGrantedDeniedDecisions()).isTrue(); // check default
-
List config = SecurityConfig.createList("ROLE_1", "DENY_FOR_SURE");
-
mgr.decide(auth, new Object(), config);
-
}
@Test
public void testOneAffirmativeVoteTwoAbstainVotesGrantsAccess() {
TestingAuthenticationToken auth = makeTestToken();
ConsensusBased mgr = makeDecisionManager();
-
mgr.decide(auth, new Object(), SecurityConfig.createList("ROLE_2"));
-
}
@Test(expected = AccessDeniedException.class)
public void testOneDenyVoteTwoAbstainVotesDeniesAccess() {
TestingAuthenticationToken auth = makeTestToken();
ConsensusBased mgr = makeDecisionManager();
-
mgr.decide(auth, new Object(), SecurityConfig.createList("ROLE_WE_DO_NOT_HAVE"));
fail("Should have thrown AccessDeniedException");
}
@@ -84,9 +75,7 @@ public class ConsensusBasedTests {
public void testThreeAbstainVotesDeniesAccessWithDefault() {
TestingAuthenticationToken auth = makeTestToken();
ConsensusBased mgr = makeDecisionManager();
-
assertThat(!mgr.isAllowIfAllAbstainDecisions()).isTrue(); // check default
-
mgr.decide(auth, new Object(), SecurityConfig.createList("IGNORED_BY_ALL"));
}
@@ -96,7 +85,6 @@ public class ConsensusBasedTests {
ConsensusBased mgr = makeDecisionManager();
mgr.setAllowIfAllAbstainDecisions(true);
assertThat(mgr.isAllowIfAllAbstainDecisions()).isTrue(); // check changed
-
mgr.decide(auth, new Object(), SecurityConfig.createList("IGNORED_BY_ALL"));
}
@@ -104,7 +92,6 @@ public class ConsensusBasedTests {
public void testTwoAffirmativeVotesTwoAbstainVotesGrantsAccess() {
TestingAuthenticationToken auth = makeTestToken();
ConsensusBased mgr = makeDecisionManager();
-
mgr.decide(auth, new Object(), SecurityConfig.createList("ROLE_1", "ROLE_2"));
}
@@ -116,7 +103,6 @@ public class ConsensusBasedTests {
voters.add(roleVoter);
voters.add(denyForSureVoter);
voters.add(denyAgainForSureVoter);
-
return new ConsensusBased(voters);
}
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 f6e2977982..4d59a0173b 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
@@ -48,15 +48,12 @@ public class DenyAgainVoter implements AccessDecisionVoter {
@Override
public int vote(Authentication authentication, Object object, Collection attributes) {
Iterator iter = attributes.iterator();
-
while (iter.hasNext()) {
ConfigAttribute attribute = iter.next();
-
if (this.supports(attribute)) {
return ACCESS_DENIED;
}
}
-
return ACCESS_ABSTAIN;
}
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 ae548752f1..b20964b020 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
@@ -50,15 +50,12 @@ public class DenyVoter implements AccessDecisionVoter {
@Override
public int vote(Authentication authentication, Object object, Collection attributes) {
Iterator iter = attributes.iterator();
-
while (iter.hasNext()) {
ConfigAttribute attribute = iter.next();
-
if (this.supports(attribute)) {
return ACCESS_DENIED;
}
}
-
return ACCESS_ABSTAIN;
}
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 9dd3cc940d..806ec7416b 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
@@ -31,11 +31,9 @@ public class RoleHierarchyVoterTests {
public void hierarchicalRoleIsIncludedInDecision() {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
-
// User has role A, role B is required
TestingAuthenticationToken auth = new TestingAuthenticationToken("user", "password", "ROLE_A");
RoleHierarchyVoter voter = new RoleHierarchyVoter(roleHierarchyImpl);
-
assertThat(voter.vote(auth, new Object(), SecurityConfig.createList("ROLE_B")))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
}
diff --git a/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java b/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java
index 2c204ea270..943d31da0a 100644
--- a/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java
@@ -51,7 +51,6 @@ public class UnanimousBasedTests {
private UnanimousBased makeDecisionManagerWithFooBarPrefix() {
RoleVoter roleVoter = new RoleVoter();
roleVoter.setRolePrefix("FOOBAR_");
-
DenyVoter denyForSureVoter = new DenyVoter();
DenyAgainVoter denyAgainForSureVoter = new DenyAgainVoter();
List> voters = new Vector<>();
@@ -73,9 +72,7 @@ public class UnanimousBasedTests {
public void testOneAffirmativeVoteOneDenyVoteOneAbstainVoteDeniesAccess() {
TestingAuthenticationToken auth = makeTestToken();
UnanimousBased mgr = makeDecisionManager();
-
List config = SecurityConfig.createList(new String[] { "ROLE_1", "DENY_FOR_SURE" });
-
try {
mgr.decide(auth, new Object(), config);
fail("Should have thrown AccessDeniedException");
@@ -88,9 +85,7 @@ public class UnanimousBasedTests {
public void testOneAffirmativeVoteTwoAbstainVotesGrantsAccess() {
TestingAuthenticationToken auth = makeTestToken();
UnanimousBased mgr = makeDecisionManager();
-
List config = SecurityConfig.createList("ROLE_2");
-
mgr.decide(auth, new Object(), config);
}
@@ -98,9 +93,7 @@ public class UnanimousBasedTests {
public void testOneDenyVoteTwoAbstainVotesDeniesAccess() {
TestingAuthenticationToken auth = makeTestToken();
UnanimousBased mgr = makeDecisionManager();
-
List config = SecurityConfig.createList("ROLE_WE_DO_NOT_HAVE");
-
try {
mgr.decide(auth, new Object(), config);
fail("Should have thrown AccessDeniedException");
@@ -113,9 +106,7 @@ public class UnanimousBasedTests {
public void testRoleVoterPrefixObserved() {
TestingAuthenticationToken auth = makeTestTokenWithFooBarPrefix();
UnanimousBased mgr = makeDecisionManagerWithFooBarPrefix();
-
List config = SecurityConfig.createList(new String[] { "FOOBAR_1", "FOOBAR_2" });
-
mgr.decide(auth, new Object(), config);
}
@@ -123,11 +114,8 @@ public class UnanimousBasedTests {
public void testThreeAbstainVotesDeniesAccessWithDefault() {
TestingAuthenticationToken auth = makeTestToken();
UnanimousBased mgr = makeDecisionManager();
-
assertThat(!mgr.isAllowIfAllAbstainDecisions()).isTrue(); // check default
-
List config = SecurityConfig.createList("IGNORED_BY_ALL");
-
try {
mgr.decide(auth, new Object(), config);
fail("Should have thrown AccessDeniedException");
@@ -142,9 +130,7 @@ public class UnanimousBasedTests {
UnanimousBased mgr = makeDecisionManager();
mgr.setAllowIfAllAbstainDecisions(true);
assertThat(mgr.isAllowIfAllAbstainDecisions()).isTrue(); // check changed
-
List config = SecurityConfig.createList("IGNORED_BY_ALL");
-
mgr.decide(auth, new Object(), config);
}
@@ -152,9 +138,7 @@ public class UnanimousBasedTests {
public void testTwoAffirmativeVotesTwoAbstainVotesGrantsAccess() {
TestingAuthenticationToken auth = makeTestToken();
UnanimousBased mgr = makeDecisionManager();
-
List config = SecurityConfig.createList(new String[] { "ROLE_1", "ROLE_2" });
-
mgr.decide(auth, new Object(), config);
}
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 fa7219294a..90c0f82f4a 100644
--- a/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java
@@ -51,7 +51,6 @@ public class AbstractAuthenticationTokenTests {
MockAuthenticationImpl token = new MockAuthenticationImpl("Test", "Password", this.authorities);
List gotAuthorities = (List) token.getAuthorities();
assertThat(gotAuthorities).isNotSameAs(this.authorities);
-
gotAuthorities.set(0, new SimpleGrantedAuthority("ROLE_SUPER_USER"));
}
@@ -70,9 +69,7 @@ public class AbstractAuthenticationTokenTests {
MockAuthenticationImpl token3 = new MockAuthenticationImpl(null, null, AuthorityUtils.NO_AUTHORITIES);
assertThat(token2.hashCode()).isEqualTo(token1.hashCode());
assertThat(token1.hashCode() != token3.hashCode()).isTrue();
-
token2.setAuthenticated(true);
-
assertThat(token1.hashCode() != token2.hashCode()).isTrue();
}
@@ -81,25 +78,19 @@ public class AbstractAuthenticationTokenTests {
MockAuthenticationImpl token1 = new MockAuthenticationImpl("Test", "Password", this.authorities);
MockAuthenticationImpl token2 = new MockAuthenticationImpl("Test", "Password", this.authorities);
assertThat(token2).isEqualTo(token1);
-
MockAuthenticationImpl token3 = new MockAuthenticationImpl("Test", "Password_Changed", this.authorities);
assertThat(!token1.equals(token3)).isTrue();
-
MockAuthenticationImpl token4 = new MockAuthenticationImpl("Test_Changed", "Password", this.authorities);
assertThat(!token1.equals(token4)).isTrue();
-
MockAuthenticationImpl token5 = new MockAuthenticationImpl("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO_CHANGED"));
assertThat(!token1.equals(token5)).isTrue();
-
MockAuthenticationImpl token6 = new MockAuthenticationImpl("Test", "Password",
AuthorityUtils.createAuthorityList("ROLE_ONE"));
assertThat(!token1.equals(token6)).isTrue();
-
MockAuthenticationImpl token7 = new MockAuthenticationImpl("Test", "Password", null);
assertThat(!token1.equals(token7)).isTrue();
assertThat(!token7.equals(token1)).isTrue();
-
assertThat(!token1.equals(100)).isTrue();
}
@@ -126,10 +117,8 @@ public class AbstractAuthenticationTokenTests {
@Test
public void testGetNameWhenPrincipalIsAuthenticatedPrincipal() {
String principalName = "test";
-
AuthenticatedPrincipal principal = mock(AuthenticatedPrincipal.class);
given(principal.getName()).willReturn(principalName);
-
MockAuthenticationImpl token = new MockAuthenticationImpl(principal, "Password", this.authorities);
assertThat(token.getName()).isEqualTo(principalName);
verify(principal, times(1)).getName();
diff --git a/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java b/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java
index 63010817d8..fa476f0738 100644
--- a/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java
@@ -55,11 +55,9 @@ public class AuthenticationTrustResolverImplTests {
@Test
public void testGettersSetters() {
AuthenticationTrustResolverImpl trustResolver = new AuthenticationTrustResolverImpl();
-
assertThat(AnonymousAuthenticationToken.class).isEqualTo(trustResolver.getAnonymousClass());
trustResolver.setAnonymousClass(TestingAuthenticationToken.class);
assertThat(trustResolver.getAnonymousClass()).isEqualTo(TestingAuthenticationToken.class);
-
assertThat(RememberMeAuthenticationToken.class).isEqualTo(trustResolver.getRememberMeClass());
trustResolver.setRememberMeClass(TestingAuthenticationToken.class);
assertThat(trustResolver.getRememberMeClass()).isEqualTo(TestingAuthenticationToken.class);
diff --git a/core/src/test/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisherTests.java b/core/src/test/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisherTests.java
index 111e33cb3b..6a7ac10f3e 100644
--- a/core/src/test/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisherTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisherTests.java
@@ -57,7 +57,6 @@ public class DefaultAuthenticationEventPublisherTests {
ApplicationEventPublisher appPublisher = mock(ApplicationEventPublisher.class);
this.publisher.setApplicationEventPublisher(appPublisher);
Authentication a = mock(Authentication.class);
-
Exception cause = new Exception();
Object extraInfo = new Object();
this.publisher.publishAuthenticationFailure(new BadCredentialsException(""), a);
@@ -94,7 +93,6 @@ public class DefaultAuthenticationEventPublisherTests {
this.publisher.setApplicationEventPublisher(appPublisher);
this.publisher.publishAuthenticationSuccess(mock(Authentication.class));
verify(appPublisher).publishEvent(isA(AuthenticationSuccessEvent.class));
-
this.publisher.setApplicationEventPublisher(null);
// Should be ignored with null app publisher
this.publisher.publishAuthenticationSuccess(mock(Authentication.class));
@@ -107,7 +105,6 @@ public class DefaultAuthenticationEventPublisherTests {
p.put(MockAuthenticationException.class.getName(), AuthenticationFailureDisabledEvent.class.getName());
this.publisher.setAdditionalExceptionMappings(p);
ApplicationEventPublisher appPublisher = mock(ApplicationEventPublisher.class);
-
this.publisher.setApplicationEventPublisher(appPublisher);
this.publisher.publishAuthenticationFailure(new MockAuthenticationException("test"),
mock(Authentication.class));
@@ -129,7 +126,6 @@ public class DefaultAuthenticationEventPublisherTests {
p.put(MockAuthenticationException.class.getName(), AuthenticationFailureDisabledEvent.class.getName());
this.publisher.setAdditionalExceptionMappings(p);
ApplicationEventPublisher appPublisher = mock(ApplicationEventPublisher.class);
-
this.publisher.setApplicationEventPublisher(appPublisher);
this.publisher.publishAuthenticationFailure(new AuthenticationException("") {
}, mock(Authentication.class));
@@ -166,7 +162,6 @@ public class DefaultAuthenticationEventPublisherTests {
mappings.put(MockAuthenticationException.class, AuthenticationFailureDisabledEvent.class);
this.publisher.setAdditionalExceptionMappings(mappings);
ApplicationEventPublisher appPublisher = mock(ApplicationEventPublisher.class);
-
this.publisher.setApplicationEventPublisher(appPublisher);
this.publisher.publishAuthenticationFailure(new MockAuthenticationException("test"),
mock(Authentication.class));
@@ -184,7 +179,6 @@ public class DefaultAuthenticationEventPublisherTests {
this.publisher = new DefaultAuthenticationEventPublisher();
this.publisher.setDefaultAuthenticationFailureEvent(AuthenticationFailureBadCredentialsEvent.class);
ApplicationEventPublisher appPublisher = mock(ApplicationEventPublisher.class);
-
this.publisher.setApplicationEventPublisher(appPublisher);
this.publisher.publishAuthenticationFailure(new AuthenticationException("") {
}, mock(Authentication.class));
diff --git a/core/src/test/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManagerTests.java b/core/src/test/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManagerTests.java
index 23394aef94..71e73e044c 100644
--- a/core/src/test/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/DelegatingReactiveAuthenticationManagerTests.java
@@ -51,10 +51,8 @@ public class DelegatingReactiveAuthenticationManagerTests {
public void authenticateWhenEmptyAndNotThenReturnsNotEmpty() {
given(this.delegate1.authenticate(any())).willReturn(Mono.empty());
given(this.delegate2.authenticate(any())).willReturn(Mono.just(this.authentication));
-
DelegatingReactiveAuthenticationManager manager = new DelegatingReactiveAuthenticationManager(this.delegate1,
this.delegate2);
-
assertThat(manager.authenticate(this.authentication).block()).isEqualTo(this.authentication);
}
@@ -64,20 +62,16 @@ public class DelegatingReactiveAuthenticationManagerTests {
// flatMap)
given(this.delegate1.authenticate(any()))
.willReturn(Mono.just(this.authentication).delayElement(Duration.ofMillis(100)));
-
DelegatingReactiveAuthenticationManager manager = new DelegatingReactiveAuthenticationManager(this.delegate1,
this.delegate2);
-
StepVerifier.create(manager.authenticate(this.authentication)).expectNext(this.authentication).verifyComplete();
}
@Test
public void authenticateWhenBadCredentialsThenDelegate2NotInvokedAndError() {
given(this.delegate1.authenticate(any())).willReturn(Mono.error(new BadCredentialsException("Test")));
-
DelegatingReactiveAuthenticationManager manager = new DelegatingReactiveAuthenticationManager(this.delegate1,
this.delegate2);
-
StepVerifier.create(manager.authenticate(this.authentication)).expectError(BadCredentialsException.class)
.verify();
}
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 711ffccfac..b75f9dcf8c 100644
--- a/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java
@@ -69,7 +69,6 @@ public class ProviderManagerTests {
ProviderManager mgr = makeProviderManager();
Authentication result = mgr.authenticate(token);
assertThat(result.getCredentials()).isNull();
-
mgr.setEraseCredentialsAfterAuthentication(false);
token = new UsernamePasswordAuthenticationToken("Test", "Password");
result = mgr.authenticate(token);
@@ -82,7 +81,6 @@ public class ProviderManagerTests {
ProviderManager mgr = new ProviderManager(createProviderWhichReturns(a));
AuthenticationEventPublisher publisher = mock(AuthenticationEventPublisher.class);
mgr.setAuthenticationEventPublisher(publisher);
-
Authentication result = mgr.authenticate(a);
assertThat(result).isEqualTo(a);
verify(publisher).publishAuthenticationSuccess(result);
@@ -95,7 +93,6 @@ public class ProviderManagerTests {
Arrays.asList(createProviderWhichReturns(null), createProviderWhichReturns(a)));
AuthenticationEventPublisher publisher = mock(AuthenticationEventPublisher.class);
mgr.setAuthenticationEventPublisher(publisher);
-
Authentication result = mgr.authenticate(a);
assertThat(result).isSameAs(a);
verify(publisher).publishAuthenticationSuccess(result);
@@ -130,7 +127,6 @@ public class ProviderManagerTests {
public void detailsAreNotSetOnAuthenticationTokenIfAlreadySetByProvider() {
Object requestDetails = "(Request Details)";
final Object resultDetails = "(Result Details)";
-
// A provider which sets the details object
AuthenticationProvider provider = new AuthenticationProvider() {
@Override
@@ -144,12 +140,9 @@ public class ProviderManagerTests {
return true;
}
};
-
ProviderManager authMgr = new ProviderManager(provider);
-
TestingAuthenticationToken request = createAuthenticationToken();
request.setDetails(requestDetails);
-
Authentication result = authMgr.authenticate(request);
assertThat(result.getDetails()).isEqualTo(resultDetails);
}
@@ -158,10 +151,8 @@ public class ProviderManagerTests {
public void detailsAreSetOnAuthenticationTokenIfNotAlreadySetByProvider() {
Object details = new Object();
ProviderManager authMgr = makeProviderManager();
-
TestingAuthenticationToken request = createAuthenticationToken();
request.setDetails(details);
-
Authentication result = authMgr.authenticate(request);
assertThat(result.getCredentials()).isNotNull();
assertThat(result.getDetails()).isSameAs(details);
@@ -178,7 +169,6 @@ public class ProviderManagerTests {
@Test
public void authenticationExceptionIsRethrownIfNoLaterProviderAuthenticates() {
-
ProviderManager mgr = new ProviderManager(Arrays
.asList(createProviderWhichThrows(new BadCredentialsException("")), createProviderWhichReturns(null)));
try {
@@ -195,9 +185,7 @@ public class ProviderManagerTests {
AuthenticationProvider iThrowAccountStatusException = createProviderWhichThrows(new AccountStatusException("") {
});
AuthenticationProvider otherProvider = mock(AuthenticationProvider.class);
-
ProviderManager authMgr = new ProviderManager(Arrays.asList(iThrowAccountStatusException, otherProvider));
-
try {
authMgr.authenticate(mock(Authentication.class));
fail("Expected AccountStatusException");
@@ -239,13 +227,11 @@ public class ProviderManagerTests {
AuthenticationEventPublisher publisher = mock(AuthenticationEventPublisher.class);
AuthenticationManager parent = mock(AuthenticationManager.class);
given(parent.authenticate(authReq)).willThrow(new ProviderNotFoundException(""));
-
// Set a provider that throws an exception - this is the exception we expect to be
// propagated
ProviderManager mgr = new ProviderManager(
Collections.singletonList(createProviderWhichThrows(new BadCredentialsException(""))), parent);
mgr.setAuthenticationEventPublisher(publisher);
-
try {
mgr.authenticate(authReq);
fail("Expected exception");
@@ -302,7 +288,6 @@ public class ProviderManagerTests {
ProviderManager mgr = new ProviderManager(Arrays.asList(createProviderWhichThrows(expected),
createProviderWhichThrows(new BadCredentialsException("Oops"))), null);
final Authentication authReq = mock(Authentication.class);
-
try {
mgr.authenticate(authReq);
fail("Expected Exception");
@@ -318,13 +303,10 @@ public class ProviderManagerTests {
ProviderManager parentMgr = new ProviderManager(createProviderWhichThrows(badCredentialsExParent));
ProviderManager childMgr = new ProviderManager(Collections.singletonList(
createProviderWhichThrows(new BadCredentialsException("Bad Credentials in child"))), parentMgr);
-
AuthenticationEventPublisher publisher = mock(AuthenticationEventPublisher.class);
parentMgr.setAuthenticationEventPublisher(publisher);
childMgr.setAuthenticationEventPublisher(publisher);
-
final Authentication authReq = mock(Authentication.class);
-
try {
childMgr.authenticate(authReq);
fail("Expected exception");
@@ -341,7 +323,6 @@ public class ProviderManagerTests {
AuthenticationProvider provider = mock(AuthenticationProvider.class);
given(provider.supports(any(Class.class))).willReturn(true);
given(provider.authenticate(any(Authentication.class))).willThrow(ex);
-
return provider;
}
@@ -349,7 +330,6 @@ public class ProviderManagerTests {
AuthenticationProvider provider = mock(AuthenticationProvider.class);
given(provider.supports(any(Class.class))).willReturn(true);
given(provider.authenticate(any(Authentication.class))).willReturn(a);
-
return provider;
}
diff --git a/core/src/test/java/org/springframework/security/authentication/ReactiveAuthenticationManagerAdapterTests.java b/core/src/test/java/org/springframework/security/authentication/ReactiveAuthenticationManagerAdapterTests.java
index 99cb38c3d3..7a4bbb3740 100644
--- a/core/src/test/java/org/springframework/security/authentication/ReactiveAuthenticationManagerAdapterTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/ReactiveAuthenticationManagerAdapterTests.java
@@ -64,27 +64,21 @@ public class ReactiveAuthenticationManagerAdapterTests {
public void authenticateWhenSuccessThenSuccess() {
given(this.delegate.authenticate(any())).willReturn(this.authentication);
given(this.authentication.isAuthenticated()).willReturn(true);
-
Authentication result = this.manager.authenticate(this.authentication).block();
-
assertThat(result).isEqualTo(this.authentication);
}
@Test
public void authenticateWhenReturnNotAuthenticatedThenError() {
given(this.delegate.authenticate(any())).willReturn(this.authentication);
-
Authentication result = this.manager.authenticate(this.authentication).block();
-
assertThat(result).isNull();
}
@Test
public void authenticateWhenBadCredentialsThenError() {
given(this.delegate.authenticate(any())).willThrow(new BadCredentialsException("Failed"));
-
Mono result = this.manager.authenticate(this.authentication);
-
StepVerifier.create(result).expectError(BadCredentialsException.class).verify();
}
diff --git a/core/src/test/java/org/springframework/security/authentication/ReactiveUserDetailsServiceAuthenticationManagerTests.java b/core/src/test/java/org/springframework/security/authentication/ReactiveUserDetailsServiceAuthenticationManagerTests.java
index d6fd522756..1887df9bb3 100644
--- a/core/src/test/java/org/springframework/security/authentication/ReactiveUserDetailsServiceAuthenticationManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/ReactiveUserDetailsServiceAuthenticationManagerTests.java
@@ -71,11 +71,9 @@ public class ReactiveUserDetailsServiceAuthenticationManagerTests {
@Test
public void authenticateWhenUserNotFoundThenBadCredentials() {
given(this.repository.findByUsername(this.username)).willReturn(Mono.empty());
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.username,
this.password);
Mono authentication = this.manager.authenticate(token);
-
StepVerifier.create(authentication).expectError(BadCredentialsException.class).verify();
}
@@ -88,11 +86,9 @@ public class ReactiveUserDetailsServiceAuthenticationManagerTests {
.build();
// @formatter:on
given(this.repository.findByUsername(user.getUsername())).willReturn(Mono.just(user));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.username,
this.password + "INVALID");
Mono authentication = this.manager.authenticate(token);
-
StepVerifier.create(authentication).expectError(BadCredentialsException.class).verify();
}
@@ -105,11 +101,9 @@ public class ReactiveUserDetailsServiceAuthenticationManagerTests {
.build();
// @formatter:on
given(this.repository.findByUsername(user.getUsername())).willReturn(Mono.just(user));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.username,
this.password);
Authentication authentication = this.manager.authenticate(token).block();
-
assertThat(authentication).isEqualTo(authentication);
}
@@ -119,11 +113,9 @@ public class ReactiveUserDetailsServiceAuthenticationManagerTests {
given(this.passwordEncoder.matches(any(), any())).willReturn(true);
User user = new User(this.username, this.password, AuthorityUtils.createAuthorityList("ROLE_USER"));
given(this.repository.findByUsername(user.getUsername())).willReturn(Mono.just(user));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.username,
this.password);
Authentication authentication = this.manager.authenticate(token).block();
-
assertThat(authentication).isEqualTo(authentication);
}
@@ -133,12 +125,9 @@ public class ReactiveUserDetailsServiceAuthenticationManagerTests {
given(this.passwordEncoder.matches(any(), any())).willReturn(false);
User user = new User(this.username, this.password, AuthorityUtils.createAuthorityList("ROLE_USER"));
given(this.repository.findByUsername(user.getUsername())).willReturn(Mono.just(user));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.username,
this.password);
-
Mono authentication = this.manager.authenticate(token);
-
StepVerifier.create(authentication).expectError(BadCredentialsException.class).verify();
}
diff --git a/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java
index ec2a84e921..1435300fc8 100644
--- a/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java
@@ -35,9 +35,7 @@ public class TestingAuthenticationProviderTests {
TestingAuthenticationProvider provider = new TestingAuthenticationProvider();
TestingAuthenticationToken token = new TestingAuthenticationToken("Test", "Password", "ROLE_ONE", "ROLE_TWO");
Authentication result = provider.authenticate(token);
-
assertThat(result instanceof TestingAuthenticationToken).isTrue();
-
TestingAuthenticationToken castResult = (TestingAuthenticationToken) result;
assertThat(castResult.getPrincipal()).isEqualTo("Test");
assertThat(castResult.getCredentials()).isEqualTo("Password");
diff --git a/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationTokenTests.java
index 35ec2095b7..8b7c6f4617 100644
--- a/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationTokenTests.java
@@ -32,7 +32,6 @@ public class TestingAuthenticationTokenTests {
@Test
public void constructorWhenNoAuthoritiesThenUnauthenticated() {
TestingAuthenticationToken unauthenticated = new TestingAuthenticationToken("principal", "credentials");
-
assertThat(unauthenticated.isAuthenticated()).isFalse();
}
@@ -40,7 +39,6 @@ public class TestingAuthenticationTokenTests {
public void constructorWhenArityAuthoritiesThenAuthenticated() {
TestingAuthenticationToken authenticated = new TestingAuthenticationToken("principal", "credentials",
"authority");
-
assertThat(authenticated.isAuthenticated()).isTrue();
}
@@ -48,7 +46,6 @@ public class TestingAuthenticationTokenTests {
public void constructorWhenCollectionAuthoritiesThenAuthenticated() {
TestingAuthenticationToken authenticated = new TestingAuthenticationToken("principal", "credentials",
Arrays.asList(new SimpleGrantedAuthority("authority")));
-
assertThat(authenticated.isAuthenticated()).isTrue();
}
diff --git a/core/src/test/java/org/springframework/security/authentication/UserDetailsRepositoryReactiveAuthenticationManagerTests.java b/core/src/test/java/org/springframework/security/authentication/UserDetailsRepositoryReactiveAuthenticationManagerTests.java
index 1718a05da4..8c6362b14e 100644
--- a/core/src/test/java/org/springframework/security/authentication/UserDetailsRepositoryReactiveAuthenticationManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/UserDetailsRepositoryReactiveAuthenticationManagerTests.java
@@ -72,7 +72,6 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
.roles("USER")
.build();
// @formatter:on
-
private UserDetailsRepositoryReactiveAuthenticationManager manager;
@Before
@@ -97,9 +96,7 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
this.manager.setPasswordEncoder(this.encoder);
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.user,
this.user.getPassword());
-
Authentication result = this.manager.authenticate(token).block();
-
verify(this.scheduler).schedule(any());
}
@@ -115,9 +112,7 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
this.manager.setUserDetailsPasswordService(this.userDetailsPasswordService);
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.user,
this.user.getPassword());
-
Authentication result = this.manager.authenticate(token).block();
-
verify(this.encoder).encode(this.user.getPassword());
verify(this.userDetailsPasswordService).updatePassword(eq(this.user), eq(encodedPassword));
}
@@ -130,9 +125,7 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
this.manager.setUserDetailsPasswordService(this.userDetailsPasswordService);
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.user,
this.user.getPassword());
-
assertThatThrownBy(() -> this.manager.authenticate(token).block()).isInstanceOf(BadCredentialsException.class);
-
verifyZeroInteractions(this.userDetailsPasswordService);
}
@@ -145,9 +138,7 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
this.manager.setUserDetailsPasswordService(this.userDetailsPasswordService);
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.user,
this.user.getPassword());
-
Authentication result = this.manager.authenticate(token).block();
-
verifyZeroInteractions(this.userDetailsPasswordService);
}
@@ -158,11 +149,9 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
given(this.encoder.matches(any(), any())).willReturn(true);
this.manager.setPasswordEncoder(this.encoder);
this.manager.setPostAuthenticationChecks(this.postAuthenticationChecks);
-
assertThatExceptionOfType(LockedException.class).isThrownBy(() -> this.manager
.authenticate(new UsernamePasswordAuthenticationToken(this.user, this.user.getPassword())).block())
.withMessage("account is locked");
-
verify(this.postAuthenticationChecks).check(eq(this.user));
}
@@ -171,12 +160,9 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
given(this.userDetailsService.findByUsername(any())).willReturn(Mono.just(this.user));
given(this.encoder.matches(any(), any())).willReturn(true);
this.manager.setPasswordEncoder(this.encoder);
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(this.user,
this.user.getPassword());
-
this.manager.authenticate(token).block();
-
verifyZeroInteractions(this.postAuthenticationChecks);
}
@@ -191,10 +177,8 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
.build();
// @formatter:on
given(this.userDetailsService.findByUsername(any())).willReturn(Mono.just(expiredUser));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(expiredUser,
expiredUser.getPassword());
-
this.manager.authenticate(token).block();
}
@@ -209,17 +193,14 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
.build();
// @formatter:on
given(this.userDetailsService.findByUsername(any())).willReturn(Mono.just(lockedUser));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(lockedUser,
lockedUser.getPassword());
-
this.manager.authenticate(token).block();
}
@Test(expected = DisabledException.class)
public void authenticateWhenAccountDisabledThenException() {
this.manager.setPasswordEncoder(this.encoder);
-
// @formatter:off
UserDetails disabledUser = User.withUsername("user")
.password("password")
@@ -228,10 +209,8 @@ public class UserDetailsRepositoryReactiveAuthenticationManagerTests {
.build();
// @formatter:on
given(this.userDetailsService.findByUsername(any())).willReturn(Mono.just(disabledUser));
-
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(disabledUser,
disabledUser.getPassword());
-
this.manager.authenticate(token).block();
}
diff --git a/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java
index 7ea4eaab20..61cd51ecef 100644
--- a/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java
@@ -34,26 +34,20 @@ public class UsernamePasswordAuthenticationTokenTests {
public void authenticatedPropertyContractIsSatisfied() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
AuthorityUtils.NO_AUTHORITIES);
-
// check default given we passed some GrantedAuthorty[]s (well, we passed empty
// list)
assertThat(token.isAuthenticated()).isTrue();
-
// check explicit set to untrusted (we can safely go from trusted to untrusted,
// but not the reverse)
token.setAuthenticated(false);
assertThat(!token.isAuthenticated()).isTrue();
-
// Now let's create a UsernamePasswordAuthenticationToken without any
// GrantedAuthorty[]s (different constructor)
token = new UsernamePasswordAuthenticationToken("Test", "Password");
-
assertThat(!token.isAuthenticated()).isTrue();
-
// check we're allowed to still set it to untrusted
token.setAuthenticated(false);
assertThat(!token.isAuthenticated()).isTrue();
-
// check denied changing it to trusted
try {
token.setAuthenticated(true);
diff --git a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java
index 81745b88c2..808cb36347 100644
--- a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java
@@ -38,10 +38,8 @@ public class AnonymousAuthenticationProviderTests {
@Test
public void testDetectsAnInvalidKey() {
AnonymousAuthenticationProvider aap = new AnonymousAuthenticationProvider("qwerty");
-
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("WRONG_KEY", "Test",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
-
try {
aap.authenticate(token);
fail("Should have thrown BadCredentialsException");
@@ -57,7 +55,6 @@ public class AnonymousAuthenticationProviderTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -70,10 +67,8 @@ public class AnonymousAuthenticationProviderTests {
@Test
public void testIgnoresClassesItDoesNotSupport() {
AnonymousAuthenticationProvider aap = new AnonymousAuthenticationProvider("qwerty");
-
TestingAuthenticationToken token = new TestingAuthenticationToken("user", "password", "ROLE_A");
assertThat(aap.supports(TestingAuthenticationToken.class)).isFalse();
-
// Try it anyway
assertThat(aap.authenticate(token)).isNull();
}
@@ -81,12 +76,9 @@ public class AnonymousAuthenticationProviderTests {
@Test
public void testNormalOperation() {
AnonymousAuthenticationProvider aap = new AnonymousAuthenticationProvider("qwerty");
-
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("qwerty", "Test",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
-
Authentication result = aap.authenticate(token);
-
assertThat(token).isEqualTo(result);
}
diff --git a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java
index 05fd37fb78..298a43e633 100644
--- a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java
@@ -46,21 +46,18 @@ public class AnonymousAuthenticationTokenTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
new AnonymousAuthenticationToken("key", null, ROLES_12);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new AnonymousAuthenticationToken("key", "Test", null);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
new AnonymousAuthenticationToken("key", "Test", AuthorityUtils.NO_AUTHORITIES);
fail("Should have thrown IllegalArgumentException");
@@ -73,14 +70,12 @@ public class AnonymousAuthenticationTokenTests {
public void testEqualsWhenEqual() {
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
-
assertThat(token2).isEqualTo(token1);
}
@Test
public void testGetters() {
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
-
assertThat(token.getKeyHash()).isEqualTo("key".hashCode());
assertThat(token.getPrincipal()).isEqualTo("Test");
assertThat(token.getCredentials()).isEqualTo("");
@@ -91,7 +86,6 @@ public class AnonymousAuthenticationTokenTests {
@Test
public void testNoArgConstructorDoesntExist() {
Class> clazz = AnonymousAuthenticationToken.class;
-
try {
clazz.getDeclaredConstructor((Class[]) null);
fail("Should have thrown NoSuchMethodException");
@@ -104,7 +98,6 @@ public class AnonymousAuthenticationTokenTests {
public void testNotEqualsDueToAbstractParentEqualsCheck() {
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("key", "DIFFERENT_PRINCIPAL", ROLES_12);
-
assertThat(token1.equals(token2)).isFalse();
}
@@ -113,16 +106,13 @@ public class AnonymousAuthenticationTokenTests {
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken("Test", "Password",
ROLES_12);
-
assertThat(token1.equals(token2)).isFalse();
}
@Test
public void testNotEqualsDueToKey() {
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
-
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("DIFFERENT_KEY", "Test", ROLES_12);
-
assertThat(token1.equals(token2)).isFalse();
}
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 ca50e2d215..8429503319 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
@@ -74,17 +74,14 @@ public class DaoAuthenticationProviderTests {
@Test
public void testAuthenticateFailsForIncorrectPasswordCase() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "KOala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@@ -94,105 +91,86 @@ public class DaoAuthenticationProviderTests {
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken("rod", null);
try {
provider.authenticate(authenticationToken);
fail("Expected BadCredenialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@Test
public void testAuthenticateFailsIfAccountExpired() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("peter", "opal");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserPeterAccountExpired());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown AccountExpiredException");
}
catch (AccountExpiredException expected) {
-
}
}
@Test
public void testAuthenticateFailsIfAccountLocked() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("peter", "opal");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserPeterAccountLocked());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown LockedException");
}
catch (LockedException expected) {
-
}
}
@Test
public void testAuthenticateFailsIfCredentialsExpired() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("peter", "opal");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserPeterCredentialsExpired());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown CredentialsExpiredException");
}
catch (CredentialsExpiredException expected) {
-
}
-
// Check that wrong password causes BadCredentialsException, rather than
// CredentialsExpiredException
token = new UsernamePasswordAuthenticationToken("peter", "wrong_password");
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@Test
public void testAuthenticateFailsIfUserDisabled() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("peter", "opal");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserPeter());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown DisabledException");
}
catch (DisabledException expected) {
-
}
}
@Test
public void testAuthenticateFailsWhenAuthenticationDaoHasBackendFailure() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceSimulateBackendError());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown InternalAuthenticationServiceException");
@@ -204,116 +182,95 @@ public class DaoAuthenticationProviderTests {
@Test
public void testAuthenticateFailsWithEmptyUsername() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(null, "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@Test
public void testAuthenticateFailsWithInvalidPassword() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "INVALID_PASSWORD");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@Test
public void testAuthenticateFailsWithInvalidUsernameAndHideUserNotFoundExceptionFalse() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("INVALID_USER", "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setHideUserNotFoundExceptions(false); // we want
// UsernameNotFoundExceptions
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown UsernameNotFoundException");
}
catch (UsernameNotFoundException expected) {
-
}
}
@Test
public void testAuthenticateFailsWithInvalidUsernameAndHideUserNotFoundExceptionsWithDefaultOfTrue() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("INVALID_USER", "koala");
-
DaoAuthenticationProvider provider = createProvider();
assertThat(provider.isHideUserNotFoundExceptions()).isTrue();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@Test
public void testAuthenticateFailsWithInvalidUsernameAndChangePasswordEncoder() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("INVALID_USER", "koala");
-
DaoAuthenticationProvider provider = createProvider();
assertThat(provider.isHideUserNotFoundExceptions()).isTrue();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
-
provider.setPasswordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@Test
public void testAuthenticateFailsWithMixedCaseUsernameIfDefaultChanged() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("RoD", "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
try {
provider.authenticate(token);
fail("Should have thrown BadCredentialsException");
}
catch (BadCredentialsException expected) {
-
}
}
@@ -321,17 +278,13 @@ public class DaoAuthenticationProviderTests {
public void testAuthenticates() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "koala");
token.setDetails("192.168.0.1");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
Authentication result = provider.authenticate(token);
-
if (!(result instanceof UsernamePasswordAuthenticationToken)) {
fail("Should have returned instance of UsernamePasswordAuthenticationToken");
}
-
UsernamePasswordAuthenticationToken castResult = (UsernamePasswordAuthenticationToken) result;
assertThat(castResult.getPrincipal().getClass()).isEqualTo(User.class);
assertThat(castResult.getCredentials()).isEqualTo("koala");
@@ -342,42 +295,32 @@ public class DaoAuthenticationProviderTests {
@Test
public void testAuthenticatesASecondTime() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
-
Authentication result = provider.authenticate(token);
-
if (!(result instanceof UsernamePasswordAuthenticationToken)) {
fail("Should have returned instance of UsernamePasswordAuthenticationToken");
}
-
// Now try to authenticate with the previous result (with its UserDetails)
Authentication result2 = provider.authenticate(result);
-
if (!(result2 instanceof UsernamePasswordAuthenticationToken)) {
fail("Should have returned instance of UsernamePasswordAuthenticationToken");
}
-
assertThat(result2.getCredentials()).isEqualTo(result.getCredentials());
}
@Test
public void testAuthenticatesWithForcePrincipalAsString() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
provider.setUserCache(new MockUserCache());
provider.setForcePrincipalAsString(true);
-
Authentication result = provider.authenticate(token);
-
if (!(result instanceof UsernamePasswordAuthenticationToken)) {
fail("Should have returned instance of UsernamePasswordAuthenticationToken");
}
-
UsernamePasswordAuthenticationToken castResult = (UsernamePasswordAuthenticationToken) result;
assertThat(castResult.getPrincipal().getClass()).isEqualTo(String.class);
assertThat(castResult.getPrincipal()).isEqualTo("rod");
@@ -388,7 +331,6 @@ public class DaoAuthenticationProviderTests {
String password = "password";
String encodedPassword = "encoded";
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", password);
-
PasswordEncoder encoder = mock(PasswordEncoder.class);
UserDetailsService userDetailsService = mock(UserDetailsService.class);
UserDetailsPasswordService passwordManager = mock(UserDetailsPasswordService.class);
@@ -396,16 +338,13 @@ public class DaoAuthenticationProviderTests {
provider.setPasswordEncoder(encoder);
provider.setUserDetailsService(userDetailsService);
provider.setUserDetailsPasswordService(passwordManager);
-
UserDetails user = PasswordEncodedUser.user();
given(encoder.matches(any(), any())).willReturn(true);
given(encoder.upgradeEncoding(any())).willReturn(true);
given(encoder.encode(any())).willReturn(encodedPassword);
given(userDetailsService.loadUserByUsername(any())).willReturn(user);
given(passwordManager.updatePassword(any(), any())).willReturn(user);
-
Authentication result = provider.authenticate(token);
-
verify(encoder).encode(password);
verify(passwordManager).updatePassword(eq(user), eq(encodedPassword));
}
@@ -413,7 +352,6 @@ public class DaoAuthenticationProviderTests {
@Test
public void authenticateWhenBadCredentialsAndPasswordManagerThenNoUpdate() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", "password");
-
PasswordEncoder encoder = mock(PasswordEncoder.class);
UserDetailsService userDetailsService = mock(UserDetailsService.class);
UserDetailsPasswordService passwordManager = mock(UserDetailsPasswordService.class);
@@ -421,20 +359,16 @@ public class DaoAuthenticationProviderTests {
provider.setPasswordEncoder(encoder);
provider.setUserDetailsService(userDetailsService);
provider.setUserDetailsPasswordService(passwordManager);
-
UserDetails user = PasswordEncodedUser.user();
given(encoder.matches(any(), any())).willReturn(false);
given(userDetailsService.loadUserByUsername(any())).willReturn(user);
-
assertThatThrownBy(() -> provider.authenticate(token)).isInstanceOf(BadCredentialsException.class);
-
verifyZeroInteractions(passwordManager);
}
@Test
public void authenticateWhenNotUpgradeAndPasswordManagerThenNoUpdate() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", "password");
-
PasswordEncoder encoder = mock(PasswordEncoder.class);
UserDetailsService userDetailsService = mock(UserDetailsService.class);
UserDetailsPasswordService passwordManager = mock(UserDetailsPasswordService.class);
@@ -442,24 +376,19 @@ public class DaoAuthenticationProviderTests {
provider.setPasswordEncoder(encoder);
provider.setUserDetailsService(userDetailsService);
provider.setUserDetailsPasswordService(passwordManager);
-
UserDetails user = PasswordEncodedUser.user();
given(encoder.matches(any(), any())).willReturn(true);
given(encoder.upgradeEncoding(any())).willReturn(false);
given(userDetailsService.loadUserByUsername(any())).willReturn(user);
-
Authentication result = provider.authenticate(token);
-
verifyZeroInteractions(passwordManager);
}
@Test
public void testDetectsNullBeingReturnedFromAuthenticationDao() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "koala");
-
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(new MockUserDetailsServiceReturnsNull());
-
try {
provider.authenticate(token);
fail("Should have thrown AuthenticationServiceException");
@@ -475,10 +404,8 @@ public class DaoAuthenticationProviderTests {
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setPasswordEncoder(new BCryptPasswordEncoder());
assertThat(provider.getPasswordEncoder().getClass()).isEqualTo(BCryptPasswordEncoder.class);
-
provider.setUserCache(new EhCacheBasedUserCache());
assertThat(provider.getUserCache().getClass()).isEqualTo(EhCacheBasedUserCache.class);
-
assertThat(provider.isForcePrincipalAsString()).isFalse();
provider.setForcePrincipalAsString(true);
assertThat(provider.isForcePrincipalAsString()).isTrue();
@@ -487,26 +414,20 @@ public class DaoAuthenticationProviderTests {
@Test
public void testGoesBackToAuthenticationDaoToObtainLatestPasswordIfCachedPasswordSeemsIncorrect() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("rod", "koala");
-
MockUserDetailsServiceUserRod authenticationDao = new MockUserDetailsServiceUserRod();
MockUserCache cache = new MockUserCache();
DaoAuthenticationProvider provider = createProvider();
provider.setUserDetailsService(authenticationDao);
provider.setUserCache(cache);
-
// This will work, as password still "koala"
provider.authenticate(token);
-
// Check "rod = koala" ended up in the cache
assertThat(cache.getUserFromCache("rod").getPassword()).isEqualTo("koala");
-
// Now change the password the AuthenticationDao will return
authenticationDao.setPassword("easternLongNeckTurtle");
-
// Now try authentication again, with the new password
token = new UsernamePasswordAuthenticationToken("rod", "easternLongNeckTurtle");
provider.authenticate(token);
-
// To get this far, the new password was accepted
// Check the cache was updated
assertThat(cache.getUserFromCache("rod").getPassword()).isEqualTo("easternLongNeckTurtle");
@@ -515,13 +436,11 @@ public class DaoAuthenticationProviderTests {
@Test
public void testStartupFailsIfNoAuthenticationDao() throws Exception {
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
-
try {
provider.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -531,13 +450,11 @@ public class DaoAuthenticationProviderTests {
provider.setUserDetailsService(new MockUserDetailsServiceUserRod());
assertThat(provider.getUserCache().getClass()).isEqualTo(NullUserCache.class);
provider.setUserCache(null);
-
try {
provider.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -549,7 +466,6 @@ public class DaoAuthenticationProviderTests {
provider.setUserCache(new MockUserCache());
assertThat(provider.getUserDetailsService()).isEqualTo(userDetailsService);
provider.afterPropertiesSet();
-
}
@Test
@@ -576,7 +492,6 @@ public class DaoAuthenticationProviderTests {
}
catch (UsernameNotFoundException success) {
}
-
// ensure encoder invoked w/ non-null strings since PasswordEncoder impls may fail
// if encoded password is null
verify(encoder).matches(isA(String.class), isA(String.class));
@@ -629,16 +544,13 @@ public class DaoAuthenticationProviderTests {
MockUserDetailsServiceUserRod userDetailsService = new MockUserDetailsServiceUserRod();
userDetailsService.password = encoder.encode((CharSequence) foundUser.getCredentials());
provider.setUserDetailsService(userDetailsService);
-
int sampleSize = 100;
-
List userFoundTimes = new ArrayList<>(sampleSize);
for (int i = 0; i < sampleSize; i++) {
long start = System.currentTimeMillis();
provider.authenticate(foundUser);
userFoundTimes.add(System.currentTimeMillis() - start);
}
-
List userNotFoundTimes = new ArrayList<>(sampleSize);
for (int i = 0; i < sampleSize; i++) {
long start = System.currentTimeMillis();
@@ -650,7 +562,6 @@ public class DaoAuthenticationProviderTests {
}
userNotFoundTimes.add(System.currentTimeMillis() - start);
}
-
double userFoundAvg = avg(userFoundTimes);
double userNotFoundAvg = avg(userNotFoundTimes);
assertThat(Math.abs(userNotFoundAvg - userFoundAvg) <= 3).withFailMessage("User not found average "
@@ -679,7 +590,6 @@ public class DaoAuthenticationProviderTests {
}
catch (UsernameNotFoundException success) {
}
-
verify(encoder, times(0)).matches(anyString(), anyString());
}
diff --git a/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java b/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java
index 1f5bf770ff..d843593f5c 100644
--- a/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java
@@ -37,7 +37,6 @@ public class AuthenticationEventTests {
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("Principal",
"Credentials");
authentication.setDetails("127.0.0.1");
-
return authentication;
}
@@ -60,13 +59,11 @@ public class AuthenticationEventTests {
@Test
public void testRejectsNullAuthentication() {
AuthenticationException exception = new DisabledException("TEST");
-
try {
new AuthenticationFailureDisabledEvent(null, exception);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -77,7 +74,6 @@ public class AuthenticationEventTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
diff --git a/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java b/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java
index e75590f5c4..4d788d4377 100644
--- a/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java
@@ -33,7 +33,6 @@ public class LoggerListenerTests {
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("Principal",
"Credentials");
authentication.setDetails("127.0.0.1");
-
return authentication;
}
@@ -43,7 +42,6 @@ public class LoggerListenerTests {
new LockedException("TEST"));
LoggerListener listener = new LoggerListener();
listener.onApplicationEvent(event);
-
}
}
diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/DefaultJaasAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/jaas/DefaultJaasAuthenticationProviderTests.java
index ce23ea8c54..e075c6184d 100644
--- a/core/src/test/java/org/springframework/security/authentication/jaas/DefaultJaasAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/jaas/DefaultJaasAuthenticationProviderTests.java
@@ -80,7 +80,6 @@ public class DefaultJaasAuthenticationProviderTests {
given(configuration.getAppConfigurationEntry(this.provider.getLoginContextName())).willReturn(aces);
this.token = new UsernamePasswordAuthenticationToken("user", "password");
ReflectionTestUtils.setField(this.provider, "log", this.log);
-
}
@Test(expected = IllegalArgumentException.class)
@@ -119,7 +118,6 @@ public class DefaultJaasAuthenticationProviderTests {
}
catch (AuthenticationException success) {
}
-
verifyFailedLogin();
}
@@ -131,7 +129,6 @@ public class DefaultJaasAuthenticationProviderTests {
}
catch (AuthenticationException success) {
}
-
verifyFailedLogin();
}
@@ -141,13 +138,10 @@ public class DefaultJaasAuthenticationProviderTests {
SecurityContext securityContext = mock(SecurityContext.class);
JaasAuthenticationToken token = mock(JaasAuthenticationToken.class);
LoginContext context = mock(LoginContext.class);
-
given(event.getSecurityContexts()).willReturn(Arrays.asList(securityContext));
given(securityContext.getAuthentication()).willReturn(token);
given(token.getLoginContext()).willReturn(context);
-
this.provider.onApplicationEvent(event);
-
verify(event).getSecurityContexts();
verify(securityContext).getAuthentication();
verify(token).getLoginContext();
@@ -158,9 +152,7 @@ public class DefaultJaasAuthenticationProviderTests {
@Test
public void logoutNullSession() {
SessionDestroyedEvent event = mock(SessionDestroyedEvent.class);
-
this.provider.handleLogout(event);
-
verify(event).getSecurityContexts();
verify(this.log).debug(anyString());
verifyNoMoreInteractions(event);
@@ -170,11 +162,8 @@ public class DefaultJaasAuthenticationProviderTests {
public void logoutNullAuthentication() {
SessionDestroyedEvent event = mock(SessionDestroyedEvent.class);
SecurityContext securityContext = mock(SecurityContext.class);
-
given(event.getSecurityContexts()).willReturn(Arrays.asList(securityContext));
-
this.provider.handleLogout(event);
-
verify(event).getSecurityContexts();
verify(event).getSecurityContexts();
verify(securityContext).getAuthentication();
@@ -185,12 +174,9 @@ public class DefaultJaasAuthenticationProviderTests {
public void logoutNonJaasAuthentication() {
SessionDestroyedEvent event = mock(SessionDestroyedEvent.class);
SecurityContext securityContext = mock(SecurityContext.class);
-
given(event.getSecurityContexts()).willReturn(Arrays.asList(securityContext));
given(securityContext.getAuthentication()).willReturn(this.token);
-
this.provider.handleLogout(event);
-
verify(event).getSecurityContexts();
verify(event).getSecurityContexts();
verify(securityContext).getAuthentication();
@@ -202,15 +188,12 @@ public class DefaultJaasAuthenticationProviderTests {
SessionDestroyedEvent event = mock(SessionDestroyedEvent.class);
SecurityContext securityContext = mock(SecurityContext.class);
JaasAuthenticationToken token = mock(JaasAuthenticationToken.class);
-
given(event.getSecurityContexts()).willReturn(Arrays.asList(securityContext));
given(securityContext.getAuthentication()).willReturn(token);
-
this.provider.onApplicationEvent(event);
verify(event).getSecurityContexts();
verify(securityContext).getAuthentication();
verify(token).getLoginContext();
-
verifyNoMoreInteractions(event, securityContext, token);
}
@@ -221,14 +204,11 @@ public class DefaultJaasAuthenticationProviderTests {
JaasAuthenticationToken token = mock(JaasAuthenticationToken.class);
LoginContext context = mock(LoginContext.class);
LoginException loginException = new LoginException("Failed Login");
-
given(event.getSecurityContexts()).willReturn(Arrays.asList(securityContext));
given(securityContext.getAuthentication()).willReturn(token);
given(token.getLoginContext()).willReturn(context);
willThrow(loginException).given(context).logout();
-
this.provider.onApplicationEvent(event);
-
verify(event).getSecurityContexts();
verify(securityContext).getAuthentication();
verify(token).getLoginContext();
@@ -241,7 +221,6 @@ public class DefaultJaasAuthenticationProviderTests {
public void publishNullPublisher() {
this.provider.setApplicationEventPublisher(null);
AuthenticationException ae = new BadCredentialsException("Failed to login");
-
this.provider.publishFailureEvent(this.token, ae);
this.provider.publishSuccessEvent(this.token);
}
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 f474ce4c40..6f59331bbf 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
@@ -79,7 +79,6 @@ public class JaasAuthenticationProviderTests {
}
catch (AuthenticationException ex) {
}
-
assertThat(this.eventCheck.failedEvent).as("Failure event not fired").isNotNull();
assertThat(this.eventCheck.failedEvent.getException()).withFailMessage("Failure event exception was null")
.isNotNull();
@@ -94,7 +93,6 @@ public class JaasAuthenticationProviderTests {
}
catch (AuthenticationException ex) {
}
-
assertThat(this.eventCheck.failedEvent).as("Failure event not fired").isNotNull();
assertThat(this.eventCheck.failedEvent.getException()).withFailMessage("Failure event exception was null")
.isNotNull();
@@ -105,9 +103,7 @@ public class JaasAuthenticationProviderTests {
public void testConfigurationLoop() throws Exception {
String resName = "/" + getClass().getName().replace('.', '/') + ".conf";
URL url = getClass().getResource(resName);
-
Security.setProperty("login.config.url.1", url.toString());
-
setUp();
testFull();
}
@@ -119,7 +115,6 @@ public class JaasAuthenticationProviderTests {
myJaasProvider.setAuthorityGranters(this.jaasProvider.getAuthorityGranters());
myJaasProvider.setCallbackHandlers(this.jaasProvider.getCallbackHandlers());
myJaasProvider.setLoginContextName(this.jaasProvider.getLoginContextName());
-
try {
myJaasProvider.afterPropertiesSet();
fail("Should have thrown ApplicationContextException");
@@ -136,7 +131,6 @@ public class JaasAuthenticationProviderTests {
// Create temp directory with a space in the name
File configDir = new File(System.getProperty("java.io.tmpdir") + File.separator + "jaas test");
configDir.deleteOnExit();
-
if (configDir.exists()) {
configDir.delete();
}
@@ -149,14 +143,12 @@ public class JaasAuthenticationProviderTests {
"JAASTestBlah {" + "org.springframework.security.authentication.jaas.TestLoginModule required;" + "};");
pw.flush();
pw.close();
-
JaasAuthenticationProvider myJaasProvider = new JaasAuthenticationProvider();
myJaasProvider.setApplicationEventPublisher(this.context);
myJaasProvider.setLoginConfig(new FileSystemResource(configFile));
myJaasProvider.setAuthorityGranters(this.jaasProvider.getAuthorityGranters());
myJaasProvider.setCallbackHandlers(this.jaasProvider.getCallbackHandlers());
myJaasProvider.setLoginContextName(this.jaasProvider.getLoginContextName());
-
myJaasProvider.afterPropertiesSet();
}
@@ -168,7 +160,6 @@ public class JaasAuthenticationProviderTests {
myJaasProvider.setCallbackHandlers(this.jaasProvider.getCallbackHandlers());
myJaasProvider.setLoginConfig(this.jaasProvider.getLoginConfig());
myJaasProvider.setLoginContextName(null);
-
try {
myJaasProvider.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
@@ -176,9 +167,7 @@ public class JaasAuthenticationProviderTests {
catch (IllegalArgumentException expected) {
assertThat(expected.getMessage()).startsWith("loginContextName must be set on");
}
-
myJaasProvider.setLoginContextName("");
-
try {
myJaasProvider.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
@@ -192,25 +181,19 @@ public class JaasAuthenticationProviderTests {
public void testFull() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", "password",
AuthorityUtils.createAuthorityList("ROLE_ONE"));
-
assertThat(this.jaasProvider.supports(UsernamePasswordAuthenticationToken.class)).isTrue();
-
Authentication auth = this.jaasProvider.authenticate(token);
-
assertThat(this.jaasProvider.getAuthorityGranters()).isNotNull();
assertThat(this.jaasProvider.getCallbackHandlers()).isNotNull();
assertThat(this.jaasProvider.getLoginConfig()).isNotNull();
assertThat(this.jaasProvider.getLoginContextName()).isNotNull();
-
Collection extends GrantedAuthority> list = auth.getAuthorities();
Set set = AuthorityUtils.authorityListToSet(list);
-
assertThat(set.contains("ROLE_ONE")).withFailMessage("GrantedAuthorities should not contain ROLE_ONE")
.isFalse();
assertThat(set.contains("ROLE_TEST1")).withFailMessage("GrantedAuthorities should contain ROLE_TEST1").isTrue();
assertThat(set.contains("ROLE_TEST2")).withFailMessage("GrantedAuthorities should contain ROLE_TEST2").isTrue();
boolean foundit = false;
-
for (GrantedAuthority a : list) {
if (a instanceof JaasGrantedAuthority) {
JaasGrantedAuthority grant = (JaasGrantedAuthority) a;
@@ -219,9 +202,7 @@ public class JaasAuthenticationProviderTests {
foundit = true;
}
}
-
assertThat(foundit).as("Could not find a JaasGrantedAuthority").isTrue();
-
assertThat(this.eventCheck.successEvent).as("Success event should be fired").isNotNull();
assertThat(this.eventCheck.successEvent.getAuthentication()).withFailMessage("Auth objects should be equal")
.isEqualTo(auth);
@@ -237,7 +218,6 @@ public class JaasAuthenticationProviderTests {
public void testLoginExceptionResolver() {
assertThat(this.jaasProvider.getLoginExceptionResolver()).isNotNull();
this.jaasProvider.setLoginExceptionResolver((e) -> new LockedException("This is just a test!"));
-
try {
this.jaasProvider.authenticate(new UsernamePasswordAuthenticationToken("user", "password"));
}
@@ -251,26 +231,19 @@ public class JaasAuthenticationProviderTests {
@Test
public void testLogout() throws Exception {
MockLoginContext loginContext = new MockLoginContext(this.jaasProvider.getLoginContextName());
-
JaasAuthenticationToken token = new JaasAuthenticationToken(null, null, loginContext);
-
SecurityContext context = SecurityContextHolder.createEmptyContext();
context.setAuthentication(token);
-
SessionDestroyedEvent event = mock(SessionDestroyedEvent.class);
given(event.getSecurityContexts()).willReturn(Arrays.asList(context));
-
this.jaasProvider.handleLogout(event);
-
assertThat(loginContext.loggedOut).isTrue();
}
@Test
public void testNullDefaultAuthorities() {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", "password");
-
assertThat(this.jaasProvider.supports(UsernamePasswordAuthenticationToken.class)).isTrue();
-
Authentication auth = this.jaasProvider.authenticate(token);
assertThat(auth.getAuthorities()).withFailMessage("Only ROLE_TEST1 and ROLE_TEST2 should have been returned")
.hasSize(2);
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 565ea98356..7efedeecb6 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
@@ -35,7 +35,6 @@ public class JaasEventCheck implements ApplicationListener options = new HashMap<>();
options.put("ignoreMissingAuthentication", "true");
-
this.module.initialize(this.subject, null, null, options);
SecurityContextHolder.getContext().setAuthentication(null);
assertThat(this.module.login()).as("Should return false and ask to be ignored").isFalse();
diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/TestAuthorityGranter.java b/core/src/test/java/org/springframework/security/authentication/jaas/TestAuthorityGranter.java
index fbab33f747..2a557097a3 100644
--- a/core/src/test/java/org/springframework/security/authentication/jaas/TestAuthorityGranter.java
+++ b/core/src/test/java/org/springframework/security/authentication/jaas/TestAuthorityGranter.java
@@ -28,12 +28,10 @@ public class TestAuthorityGranter implements AuthorityGranter {
@Override
public Set grant(Principal principal) {
Set rtnSet = new HashSet<>();
-
if (principal.getName().equals("TEST_PRINCIPAL")) {
rtnSet.add("ROLE_TEST1");
rtnSet.add("ROLE_TEST2");
}
-
return rtnSet;
}
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 ab0d94fe90..b00267effc 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
@@ -52,14 +52,11 @@ public class TestLoginModule implements LoginModule {
@SuppressWarnings("unchecked")
public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
this.subject = subject;
-
try {
TextInputCallback textCallback = new TextInputCallback("prompt");
NameCallback nameCallback = new NameCallback("prompt");
PasswordCallback passwordCallback = new PasswordCallback("prompt", false);
-
callbackHandler.handle(new Callback[] { textCallback, nameCallback, passwordCallback });
-
this.password = new String(passwordCallback.getPassword());
this.user = nameCallback.getName();
}
@@ -73,15 +70,11 @@ public class TestLoginModule implements LoginModule {
if (!this.user.equals("user")) {
throw new LoginException("Bad User");
}
-
if (!this.password.equals("password")) {
throw new LoginException("Bad Password");
}
-
this.subject.getPrincipals().add(() -> "TEST_PRINCIPAL");
-
this.subject.getPrincipals().add(() -> "NULL_PRINCIPAL");
-
return true;
}
diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/memory/InMemoryConfigurationTests.java b/core/src/test/java/org/springframework/security/authentication/jaas/memory/InMemoryConfigurationTests.java
index 58bb0120f5..c1f4f8be7f 100644
--- a/core/src/test/java/org/springframework/security/authentication/jaas/memory/InMemoryConfigurationTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/jaas/memory/InMemoryConfigurationTests.java
@@ -45,7 +45,6 @@ public class InMemoryConfigurationTests {
public void setUp() {
this.defaultEntries = new AppConfigurationEntry[] { new AppConfigurationEntry(TestLoginModule.class.getName(),
LoginModuleControlFlag.REQUIRED, Collections.emptyMap()) };
-
this.mappedEntries = Collections.singletonMap("name",
new AppConfigurationEntry[] { new AppConfigurationEntry(TestLoginModule.class.getName(),
LoginModuleControlFlag.OPTIONAL, Collections.emptyMap()) });
diff --git a/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImplTests.java b/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImplTests.java
index 3602d38288..a52f73ace0 100644
--- a/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImplTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/rcp/RemoteAuthenticationManagerImplTests.java
@@ -41,24 +41,20 @@ public class RemoteAuthenticationManagerImplTests {
AuthenticationManager am = mock(AuthenticationManager.class);
given(am.authenticate(any(Authentication.class))).willThrow(new BadCredentialsException(""));
manager.setAuthenticationManager(am);
-
manager.attemptAuthentication("rod", "password");
}
@Test
public void testStartupChecksAuthenticationManagerSet() throws Exception {
RemoteAuthenticationManagerImpl manager = new RemoteAuthenticationManagerImpl();
-
try {
manager.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
manager.setAuthenticationManager(mock(AuthenticationManager.class));
manager.afterPropertiesSet();
-
}
@Test
@@ -67,7 +63,6 @@ public class RemoteAuthenticationManagerImplTests {
AuthenticationManager am = mock(AuthenticationManager.class);
given(am.authenticate(any(Authentication.class))).willReturn(new TestingAuthenticationToken("u", "p", "A"));
manager.setAuthenticationManager(am);
-
manager.attemptAuthentication("rod", "password");
}
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 ed48fbfe87..42b37a73c8 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
@@ -39,13 +39,11 @@ public class RemoteAuthenticationProviderTests {
public void testExceptionsGetPassedBackToCaller() {
RemoteAuthenticationProvider provider = new RemoteAuthenticationProvider();
provider.setRemoteAuthenticationManager(new MockRemoteAuthenticationManager(false));
-
try {
provider.authenticate(new UsernamePasswordAuthenticationToken("rod", "password"));
fail("Should have thrown RemoteAuthenticationException");
}
catch (RemoteAuthenticationException expected) {
-
}
}
@@ -59,25 +57,20 @@ public class RemoteAuthenticationProviderTests {
@Test
public void testStartupChecksAuthenticationManagerSet() throws Exception {
RemoteAuthenticationProvider provider = new RemoteAuthenticationProvider();
-
try {
provider.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
provider.setRemoteAuthenticationManager(new MockRemoteAuthenticationManager(true));
provider.afterPropertiesSet();
-
}
@Test
public void testSuccessfulAuthenticationCreatesObject() {
RemoteAuthenticationProvider provider = new RemoteAuthenticationProvider();
provider.setRemoteAuthenticationManager(new MockRemoteAuthenticationManager(true));
-
Authentication result = provider.authenticate(new UsernamePasswordAuthenticationToken("rod", "password"));
assertThat(result.getPrincipal()).isEqualTo("rod");
assertThat(result.getCredentials()).isEqualTo("password");
@@ -88,14 +81,12 @@ public class RemoteAuthenticationProviderTests {
public void testNullCredentialsDoesNotCauseNullPointerException() {
RemoteAuthenticationProvider provider = new RemoteAuthenticationProvider();
provider.setRemoteAuthenticationManager(new MockRemoteAuthenticationManager(false));
-
try {
provider.authenticate(new UsernamePasswordAuthenticationToken("rod", null));
fail("Expected Exception");
}
catch (RemoteAuthenticationException success) {
}
-
}
@Test
diff --git a/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationProviderTests.java
index 3673f6b05e..169e9802cd 100644
--- a/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationProviderTests.java
@@ -38,10 +38,8 @@ public class RememberMeAuthenticationProviderTests {
@Test
public void testDetectsAnInvalidKey() {
RememberMeAuthenticationProvider aap = new RememberMeAuthenticationProvider("qwerty");
-
RememberMeAuthenticationToken token = new RememberMeAuthenticationToken("WRONG_KEY", "Test",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
-
try {
aap.authenticate(token);
fail("Should have thrown BadCredentialsException");
@@ -57,7 +55,6 @@ public class RememberMeAuthenticationProviderTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -71,10 +68,8 @@ public class RememberMeAuthenticationProviderTests {
@Test
public void testIgnoresClassesItDoesNotSupport() {
RememberMeAuthenticationProvider aap = new RememberMeAuthenticationProvider("qwerty");
-
TestingAuthenticationToken token = new TestingAuthenticationToken("user", "password", "ROLE_A");
assertThat(aap.supports(TestingAuthenticationToken.class)).isFalse();
-
// Try it anyway
assertThat(aap.authenticate(token)).isNull();
}
@@ -82,12 +77,9 @@ public class RememberMeAuthenticationProviderTests {
@Test
public void testNormalOperation() {
RememberMeAuthenticationProvider aap = new RememberMeAuthenticationProvider("qwerty");
-
RememberMeAuthenticationToken token = new RememberMeAuthenticationToken("qwerty", "Test",
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
-
Authentication result = aap.authenticate(token);
-
assertThat(token).isEqualTo(result);
}
diff --git a/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationTokenTests.java
index 492566f564..6bdf73bd5d 100644
--- a/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/rememberme/RememberMeAuthenticationTokenTests.java
@@ -45,17 +45,13 @@ public class RememberMeAuthenticationTokenTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
try {
new RememberMeAuthenticationToken("key", null, ROLES_12);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
-
try {
List authsContainingNull = new ArrayList<>();
authsContainingNull.add(null);
@@ -63,7 +59,6 @@ public class RememberMeAuthenticationTokenTests {
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@@ -71,14 +66,12 @@ public class RememberMeAuthenticationTokenTests {
public void testEqualsWhenEqual() {
RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12);
RememberMeAuthenticationToken token2 = new RememberMeAuthenticationToken("key", "Test", ROLES_12);
-
assertThat(token2).isEqualTo(token1);
}
@Test
public void testGetters() {
RememberMeAuthenticationToken token = new RememberMeAuthenticationToken("key", "Test", ROLES_12);
-
assertThat(token.getKeyHash()).isEqualTo("key".hashCode());
assertThat(token.getPrincipal()).isEqualTo("Test");
assertThat(token.getCredentials()).isEqualTo("");
@@ -92,7 +85,6 @@ public class RememberMeAuthenticationTokenTests {
RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12);
RememberMeAuthenticationToken token2 = new RememberMeAuthenticationToken("key", "DIFFERENT_PRINCIPAL",
ROLES_12);
-
assertThat(token1.equals(token2)).isFalse();
}
@@ -101,7 +93,6 @@ public class RememberMeAuthenticationTokenTests {
RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12);
UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken("Test", "Password",
ROLES_12);
-
assertThat(token1.equals(token2)).isFalse();
}
@@ -109,7 +100,6 @@ public class RememberMeAuthenticationTokenTests {
public void testNotEqualsDueToKey() {
RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12);
RememberMeAuthenticationToken token2 = new RememberMeAuthenticationToken("DIFFERENT_KEY", "Test", ROLES_12);
-
assertThat(token1.equals(token2)).isFalse();
}
diff --git a/core/src/test/java/org/springframework/security/authorization/AuthenticatedReactiveAuthorizationManagerTests.java b/core/src/test/java/org/springframework/security/authorization/AuthenticatedReactiveAuthorizationManagerTests.java
index 788fb05eb1..b9a333abbb 100644
--- a/core/src/test/java/org/springframework/security/authorization/AuthenticatedReactiveAuthorizationManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authorization/AuthenticatedReactiveAuthorizationManagerTests.java
@@ -46,39 +46,32 @@ public class AuthenticatedReactiveAuthorizationManagerTests {
@Test
public void checkWhenAuthenticatedThenReturnTrue() {
given(this.authentication.isAuthenticated()).willReturn(true);
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isTrue();
}
@Test
public void checkWhenNotAuthenticatedThenReturnFalse() {
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenEmptyThenReturnFalse() {
boolean granted = this.manager.check(Mono.empty(), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenAnonymousAuthenticatedThenReturnFalse() {
AnonymousAuthenticationToken anonymousAuthenticationToken = mock(AnonymousAuthenticationToken.class);
-
boolean granted = this.manager.check(Mono.just(anonymousAuthenticationToken), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenErrorThenError() {
Mono result = this.manager.check(Mono.error(new RuntimeException("ooops")), null);
-
StepVerifier.create(result).expectError().verify();
}
diff --git a/core/src/test/java/org/springframework/security/authorization/AuthorityReactiveAuthorizationManagerTests.java b/core/src/test/java/org/springframework/security/authorization/AuthorityReactiveAuthorizationManagerTests.java
index eeb5fe479d..096e983924 100644
--- a/core/src/test/java/org/springframework/security/authorization/AuthorityReactiveAuthorizationManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authorization/AuthorityReactiveAuthorizationManagerTests.java
@@ -46,21 +46,18 @@ public class AuthorityReactiveAuthorizationManagerTests {
@Test
public void checkWhenHasAuthorityAndNotAuthenticatedThenReturnFalse() {
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenHasAuthorityAndEmptyThenReturnFalse() {
boolean granted = this.manager.check(Mono.empty(), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenHasAuthorityAndErrorThenError() {
Mono result = this.manager.check(Mono.error(new RuntimeException("ooops")), null);
-
StepVerifier.create(result).expectError().verify();
}
@@ -68,27 +65,21 @@ public class AuthorityReactiveAuthorizationManagerTests {
public void checkWhenHasAuthorityAndAuthenticatedAndNoAuthoritiesThenReturnFalse() {
given(this.authentication.isAuthenticated()).willReturn(true);
given(this.authentication.getAuthorities()).willReturn(Collections.emptyList());
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenHasAuthorityAndAuthenticatedAndWrongAuthoritiesThenReturnFalse() {
this.authentication = new TestingAuthenticationToken("rob", "secret", "ROLE_ADMIN");
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@Test
public void checkWhenHasAuthorityAndAuthorizedThenReturnTrue() {
this.authentication = new TestingAuthenticationToken("rob", "secret", "ADMIN");
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isTrue();
}
@@ -96,9 +87,7 @@ public class AuthorityReactiveAuthorizationManagerTests {
public void checkWhenHasRoleAndAuthorizedThenReturnTrue() {
this.manager = AuthorityReactiveAuthorizationManager.hasRole("ADMIN");
this.authentication = new TestingAuthenticationToken("rob", "secret", "ROLE_ADMIN");
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isTrue();
}
@@ -106,9 +95,7 @@ public class AuthorityReactiveAuthorizationManagerTests {
public void checkWhenHasRoleAndNotAuthorizedThenReturnFalse() {
this.manager = AuthorityReactiveAuthorizationManager.hasRole("ADMIN");
this.authentication = new TestingAuthenticationToken("rob", "secret", "ADMIN");
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isFalse();
}
@@ -117,9 +104,7 @@ public class AuthorityReactiveAuthorizationManagerTests {
this.manager = AuthorityReactiveAuthorizationManager.hasAnyRole("GENERAL", "USER", "TEST");
this.authentication = new TestingAuthenticationToken("rob", "secret", "ROLE_USER", "ROLE_AUDITING",
"ROLE_ADMIN");
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isTrue();
}
@@ -127,9 +112,7 @@ public class AuthorityReactiveAuthorizationManagerTests {
public void checkWhenHasAnyRoleAndNotAuthorizedThenReturnFalse() {
this.manager = AuthorityReactiveAuthorizationManager.hasAnyRole("GENERAL", "USER", "TEST");
this.authentication = new TestingAuthenticationToken("rob", "secret", "USER", "AUDITING", "ADMIN");
-
boolean granted = this.manager.check(Mono.just(this.authentication), null).block().isGranted();
-
assertThat(granted).isFalse();
}
diff --git a/core/src/test/java/org/springframework/security/concurrent/DelegatingSecurityContextRunnableTests.java b/core/src/test/java/org/springframework/security/concurrent/DelegatingSecurityContextRunnableTests.java
index 265ab85f16..3c47bc6416 100644
--- a/core/src/test/java/org/springframework/security/concurrent/DelegatingSecurityContextRunnableTests.java
+++ b/core/src/test/java/org/springframework/security/concurrent/DelegatingSecurityContextRunnableTests.java
@@ -66,7 +66,6 @@ public class DelegatingSecurityContextRunnableTests {
assertThat(SecurityContextHolder.getContext()).isEqualTo(this.securityContext);
return null;
}).given(this.delegate).run();
-
this.executor = Executors.newFixedThreadPool(1);
}
diff --git a/core/src/test/java/org/springframework/security/context/DelegatingApplicationListenerTests.java b/core/src/test/java/org/springframework/security/context/DelegatingApplicationListenerTests.java
index 7f087dfbab..86d242ad66 100644
--- a/core/src/test/java/org/springframework/security/context/DelegatingApplicationListenerTests.java
+++ b/core/src/test/java/org/springframework/security/context/DelegatingApplicationListenerTests.java
@@ -51,7 +51,6 @@ public class DelegatingApplicationListenerTests {
@Test
public void processEventNull() {
this.listener.onApplicationEvent(null);
-
verify(this.delegate, never()).onApplicationEvent(any(ApplicationEvent.class));
}
@@ -60,14 +59,12 @@ public class DelegatingApplicationListenerTests {
given(this.delegate.supportsEventType(this.event.getClass())).willReturn(true);
given(this.delegate.supportsSourceType(this.event.getSource().getClass())).willReturn(true);
this.listener.onApplicationEvent(this.event);
-
verify(this.delegate).onApplicationEvent(this.event);
}
@Test
public void processEventEventTypeNotSupported() {
this.listener.onApplicationEvent(this.event);
-
verify(this.delegate, never()).onApplicationEvent(any(ApplicationEvent.class));
}
@@ -75,7 +72,6 @@ public class DelegatingApplicationListenerTests {
public void processEventSourceTypeNotSupported() {
given(this.delegate.supportsEventType(this.event.getClass())).willReturn(true);
this.listener.onApplicationEvent(this.event);
-
verify(this.delegate, never()).onApplicationEvent(any(ApplicationEvent.class));
}
diff --git a/core/src/test/java/org/springframework/security/core/SpringSecurityCoreVersionTests.java b/core/src/test/java/org/springframework/security/core/SpringSecurityCoreVersionTests.java
index 292c9d1680..33b297c385 100644
--- a/core/src/test/java/org/springframework/security/core/SpringSecurityCoreVersionTests.java
+++ b/core/src/test/java/org/springframework/security/core/SpringSecurityCoreVersionTests.java
@@ -63,20 +63,16 @@ public class SpringSecurityCoreVersionTests {
public void springVersionIsUpToDate() {
// Property is set by the build script
String springVersion = System.getProperty("springVersion");
-
assertThat(SpringSecurityCoreVersion.MIN_SPRING_VERSION).isEqualTo(springVersion);
}
@Test
public void serialVersionMajorAndMinorVersionMatchBuildVersion() {
String version = System.getProperty("springSecurityVersion");
-
// Strip patch version
String serialVersion = String.valueOf(SpringSecurityCoreVersion.SERIAL_VERSION_UID).substring(0, 2);
-
assertThat(serialVersion.charAt(0)).isEqualTo(version.charAt(0));
assertThat(serialVersion.charAt(1)).isEqualTo(version.charAt(2));
-
}
// SEC-2295
@@ -87,9 +83,7 @@ public class SpringSecurityCoreVersionTests {
PowerMockito.spy(SpringVersion.class);
PowerMockito.doReturn(version).when(SpringSecurityCoreVersion.class, "getVersion");
PowerMockito.doReturn(version).when(SpringVersion.class, "getVersion");
-
performChecks();
-
verifyZeroInteractions(this.logger);
}
@@ -99,9 +93,7 @@ public class SpringSecurityCoreVersionTests {
PowerMockito.spy(SpringVersion.class);
PowerMockito.doReturn("1").when(SpringSecurityCoreVersion.class, "getVersion");
PowerMockito.doReturn(null).when(SpringVersion.class, "getVersion");
-
performChecks();
-
verifyZeroInteractions(this.logger);
}
@@ -111,9 +103,7 @@ public class SpringSecurityCoreVersionTests {
PowerMockito.spy(SpringVersion.class);
PowerMockito.doReturn("3").when(SpringSecurityCoreVersion.class, "getVersion");
PowerMockito.doReturn("2").when(SpringVersion.class, "getVersion");
-
performChecks();
-
verify(this.logger, times(1)).warn(any());
}
@@ -123,9 +113,7 @@ public class SpringSecurityCoreVersionTests {
PowerMockito.spy(SpringVersion.class);
PowerMockito.doReturn("4.0.0.RELEASE").when(SpringSecurityCoreVersion.class, "getVersion");
PowerMockito.doReturn("4.0.0.RELEASE").when(SpringVersion.class, "getVersion");
-
performChecks();
-
verify(this.logger, never()).warn(any());
}
@@ -137,9 +125,7 @@ public class SpringSecurityCoreVersionTests {
PowerMockito.spy(SpringVersion.class);
PowerMockito.doReturn("3.2.0.RELEASE").when(SpringSecurityCoreVersion.class, "getVersion");
PowerMockito.doReturn("3.2.10.RELEASE").when(SpringVersion.class, "getVersion");
-
performChecks(minSpringVersion);
-
verify(this.logger, never()).warn(any());
}
@@ -150,9 +136,7 @@ public class SpringSecurityCoreVersionTests {
PowerMockito.doReturn("3").when(SpringSecurityCoreVersion.class, "getVersion");
PowerMockito.doReturn("2").when(SpringVersion.class, "getVersion");
System.setProperty(getDisableChecksProperty(), Boolean.TRUE.toString());
-
performChecks();
-
verifyZeroInteractions(this.logger);
}
diff --git a/core/src/test/java/org/springframework/security/core/SpringSecurityMessageSourceTests.java b/core/src/test/java/org/springframework/security/core/SpringSecurityMessageSourceTests.java
index e9de5e9787..b795c3609b 100644
--- a/core/src/test/java/org/springframework/security/core/SpringSecurityMessageSourceTests.java
+++ b/core/src/test/java/org/springframework/security/core/SpringSecurityMessageSourceTests.java
@@ -42,12 +42,10 @@ public class SpringSecurityMessageSourceTests {
// Change Locale to English
Locale before = LocaleContextHolder.getLocale();
LocaleContextHolder.setLocale(Locale.FRENCH);
-
// Cause a message to be generated
MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
assertThat("Le jeton nonce est compromis FOOBAR").isEqualTo(messages.getMessage(
"DigestAuthenticationFilter.nonceCompromised", new Object[] { "FOOBAR" }, "ERROR - FAILED TO LOOKUP"));
-
// Revert to original Locale
LocaleContextHolder.setLocale(before);
}
@@ -57,14 +55,11 @@ public class SpringSecurityMessageSourceTests {
public void germanSystemLocaleWithEnglishLocaleContextHolder() {
Locale beforeSystem = Locale.getDefault();
Locale.setDefault(Locale.GERMAN);
-
Locale beforeHolder = LocaleContextHolder.getLocale();
LocaleContextHolder.setLocale(Locale.US);
-
MessageSourceAccessor msgs = SpringSecurityMessageSource.getAccessor();
assertThat("Access is denied")
.isEqualTo(msgs.getMessage("AbstractAccessDecisionManager.accessDenied", "Ooops"));
-
// Revert to original Locale
Locale.setDefault(beforeSystem);
LocaleContextHolder.setLocale(beforeHolder);
diff --git a/core/src/test/java/org/springframework/security/core/authority/AuthorityUtilsTests.java b/core/src/test/java/org/springframework/security/core/authority/AuthorityUtilsTests.java
index 5d3ff6a689..34af08348f 100644
--- a/core/src/test/java/org/springframework/security/core/authority/AuthorityUtilsTests.java
+++ b/core/src/test/java/org/springframework/security/core/authority/AuthorityUtilsTests.java
@@ -34,9 +34,7 @@ public class AuthorityUtilsTests {
public void commaSeparatedStringIsParsedCorrectly() {
List authorityArray = AuthorityUtils
.commaSeparatedStringToAuthorityList(" ROLE_A, B, C, ROLE_D\n,\n E ");
-
Set authorities = AuthorityUtils.authorityListToSet(authorityArray);
-
assertThat(authorities.contains("B")).isTrue();
assertThat(authorities.contains("C")).isTrue();
assertThat(authorities.contains("E")).isTrue();
diff --git a/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java b/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java
index 5380b81d71..09177a9fef 100644
--- a/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java
+++ b/core/src/test/java/org/springframework/security/core/authority/SimpleGrantedAuthorityTests.java
@@ -35,14 +35,10 @@ public class SimpleGrantedAuthorityTests {
SimpleGrantedAuthority auth1 = new SimpleGrantedAuthority("TEST");
assertThat(auth1).isEqualTo(auth1);
assertThat(new SimpleGrantedAuthority("TEST")).isEqualTo(auth1);
-
assertThat(auth1.equals("TEST")).isFalse();
-
SimpleGrantedAuthority auth3 = new SimpleGrantedAuthority("NOT_EQUAL");
assertThat(!auth1.equals(auth3)).isTrue();
-
assertThat(auth1.equals(mock(GrantedAuthority.class))).isFalse();
-
assertThat(auth1.equals(222)).isFalse();
}
diff --git a/core/src/test/java/org/springframework/security/core/authority/mapping/SimpleAuthoritiesMapperTests.java b/core/src/test/java/org/springframework/security/core/authority/mapping/SimpleAuthoritiesMapperTests.java
index f1515a3661..35781b5f30 100644
--- a/core/src/test/java/org/springframework/security/core/authority/mapping/SimpleAuthoritiesMapperTests.java
+++ b/core/src/test/java/org/springframework/security/core/authority/mapping/SimpleAuthoritiesMapperTests.java
@@ -57,13 +57,11 @@ public class SimpleAuthoritiesMapperTests {
assertThat(mapped).hasSize(2);
assertThat(mapped.contains("AaA")).isTrue();
assertThat(mapped.contains("Bbb")).isTrue();
-
mapper.setConvertToLowerCase(true);
mapped = AuthorityUtils.authorityListToSet(mapper.mapAuthorities(toMap));
assertThat(mapped).hasSize(2);
assertThat(mapped.contains("aaa")).isTrue();
assertThat(mapped.contains("bbb")).isTrue();
-
mapper.setConvertToLowerCase(false);
mapper.setConvertToUpperCase(true);
mapped = AuthorityUtils.authorityListToSet(mapper.mapAuthorities(toMap));
@@ -76,7 +74,6 @@ public class SimpleAuthoritiesMapperTests {
public void duplicatesAreRemoved() {
SimpleAuthorityMapper mapper = new SimpleAuthorityMapper();
mapper.setConvertToUpperCase(true);
-
Set mapped = AuthorityUtils
.authorityListToSet(mapper.mapAuthorities(AuthorityUtils.createAuthorityList("AaA", "AAA")));
assertThat(mapped).hasSize(1);
diff --git a/core/src/test/java/org/springframework/security/core/context/ReactiveSecurityContextHolderTests.java b/core/src/test/java/org/springframework/security/core/context/ReactiveSecurityContextHolderTests.java
index eb915d7e32..0cbad90105 100644
--- a/core/src/test/java/org/springframework/security/core/context/ReactiveSecurityContextHolderTests.java
+++ b/core/src/test/java/org/springframework/security/core/context/ReactiveSecurityContextHolderTests.java
@@ -32,7 +32,6 @@ public class ReactiveSecurityContextHolderTests {
@Test
public void getContextWhenEmpty() {
Mono context = ReactiveSecurityContextHolder.getContext();
-
StepVerifier.create(context).verifyComplete();
}
@@ -40,23 +39,19 @@ public class ReactiveSecurityContextHolderTests {
public void setContextAndGetContextThenEmitsContext() {
SecurityContext expectedContext = new SecurityContextImpl(
new TestingAuthenticationToken("user", "password", "ROLE_USER"));
-
Mono context = Mono.subscriberContext()
.flatMap((c) -> ReactiveSecurityContextHolder.getContext())
.subscriberContext(ReactiveSecurityContextHolder.withSecurityContext(Mono.just(expectedContext)));
-
StepVerifier.create(context).expectNext(expectedContext).verifyComplete();
}
@Test
public void demo() {
Authentication authentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
-
Mono messageByUsername = ReactiveSecurityContextHolder.getContext()
.map(SecurityContext::getAuthentication).map(Authentication::getName)
.flatMap(this::findMessageByUsername)
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication));
-
StepVerifier.create(messageByUsername).expectNext("Hi user").verifyComplete();
}
@@ -68,23 +63,19 @@ public class ReactiveSecurityContextHolderTests {
public void setContextAndClearAndGetContextThenEmitsEmpty() {
SecurityContext expectedContext = new SecurityContextImpl(
new TestingAuthenticationToken("user", "password", "ROLE_USER"));
-
Mono context = Mono.subscriberContext()
.flatMap((c) -> ReactiveSecurityContextHolder.getContext())
.subscriberContext(ReactiveSecurityContextHolder.clearContext())
.subscriberContext(ReactiveSecurityContextHolder.withSecurityContext(Mono.just(expectedContext)));
-
StepVerifier.create(context).verifyComplete();
}
@Test
public void setAuthenticationAndGetContextThenEmitsContext() {
Authentication expectedAuthentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
-
Mono authentication = Mono.subscriberContext()
.flatMap((c) -> ReactiveSecurityContextHolder.getContext()).map(SecurityContext::getAuthentication)
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(expectedAuthentication));
-
StepVerifier.create(authentication).expectNext(expectedAuthentication).verifyComplete();
}
diff --git a/core/src/test/java/org/springframework/security/core/context/SecurityContextHolderTests.java b/core/src/test/java/org/springframework/security/core/context/SecurityContextHolderTests.java
index c8a22279cb..7ea8a2eca8 100644
--- a/core/src/test/java/org/springframework/security/core/context/SecurityContextHolderTests.java
+++ b/core/src/test/java/org/springframework/security/core/context/SecurityContextHolderTests.java
@@ -60,7 +60,6 @@ public class SecurityContextHolderTests {
fail("Should have rejected null");
}
catch (IllegalArgumentException expected) {
-
}
}
diff --git a/core/src/test/java/org/springframework/security/core/parameters/DefaultSecurityParameterNameDiscovererTests.java b/core/src/test/java/org/springframework/security/core/parameters/DefaultSecurityParameterNameDiscovererTests.java
index 8f1cb7ee62..bbaf08c7a1 100644
--- a/core/src/test/java/org/springframework/security/core/parameters/DefaultSecurityParameterNameDiscovererTests.java
+++ b/core/src/test/java/org/springframework/security/core/parameters/DefaultSecurityParameterNameDiscovererTests.java
@@ -48,15 +48,12 @@ public class DefaultSecurityParameterNameDiscovererTests {
public void constructorDefault() {
List discoverers = (List) ReflectionTestUtils
.getField(this.discoverer, "parameterNameDiscoverers");
-
assertThat(discoverers).hasSize(2);
-
ParameterNameDiscoverer annotationDisc = discoverers.get(0);
assertThat(annotationDisc).isInstanceOf(AnnotationParameterNameDiscoverer.class);
Set annotationsToUse = (Set) ReflectionTestUtils.getField(annotationDisc,
"annotationClassesToUse");
assertThat(annotationsToUse).containsOnly("org.springframework.security.access.method.P", P.class.getName());
-
assertThat(discoverers.get(1).getClass()).isEqualTo(DefaultParameterNameDiscoverer.class);
}
@@ -64,19 +61,15 @@ public class DefaultSecurityParameterNameDiscovererTests {
public void constructorDiscoverers() {
this.discoverer = new DefaultSecurityParameterNameDiscoverer(
Arrays.asList(new LocalVariableTableParameterNameDiscoverer()));
-
List discoverers = (List) ReflectionTestUtils
.getField(this.discoverer, "parameterNameDiscoverers");
-
assertThat(discoverers).hasSize(3);
assertThat(discoverers.get(0)).isInstanceOf(LocalVariableTableParameterNameDiscoverer.class);
-
ParameterNameDiscoverer annotationDisc = discoverers.get(1);
assertThat(annotationDisc).isInstanceOf(AnnotationParameterNameDiscoverer.class);
Set annotationsToUse = (Set) ReflectionTestUtils.getField(annotationDisc,
"annotationClassesToUse");
assertThat(annotationsToUse).containsOnly("org.springframework.security.access.method.P", P.class.getName());
-
assertThat(discoverers.get(2)).isInstanceOf(DefaultParameterNameDiscoverer.class);
}
diff --git a/core/src/test/java/org/springframework/security/core/session/SessionInformationTests.java b/core/src/test/java/org/springframework/security/core/session/SessionInformationTests.java
index f2d1cbbcaf..626fcea0ed 100644
--- a/core/src/test/java/org/springframework/security/core/session/SessionInformationTests.java
+++ b/core/src/test/java/org/springframework/security/core/session/SessionInformationTests.java
@@ -34,16 +34,12 @@ public class SessionInformationTests {
Object principal = "Some principal object";
String sessionId = "1234567890";
Date currentDate = new Date();
-
SessionInformation info = new SessionInformation(principal, sessionId, currentDate);
assertThat(info.getPrincipal()).isEqualTo(principal);
assertThat(info.getSessionId()).isEqualTo(sessionId);
assertThat(info.getLastRequest()).isEqualTo(currentDate);
-
Thread.sleep(10);
-
info.refreshLastRequest();
-
assertThat(info.getLastRequest().after(currentDate)).isTrue();
}
diff --git a/core/src/test/java/org/springframework/security/core/session/SessionRegistryImplTests.java b/core/src/test/java/org/springframework/security/core/session/SessionRegistryImplTests.java
index 404722f8cb..df9ea8376d 100644
--- a/core/src/test/java/org/springframework/security/core/session/SessionRegistryImplTests.java
+++ b/core/src/test/java/org/springframework/security/core/session/SessionRegistryImplTests.java
@@ -44,10 +44,8 @@ public class SessionRegistryImplTests {
public void sessionDestroyedEventRemovesSessionFromRegistry() {
Object principal = "Some principal object";
final String sessionId = "zzzz";
-
// Register new Session
this.sessionRegistry.registerNewSession(sessionId, principal);
-
// De-register session via an ApplicationEvent
this.sessionRegistry.onApplicationEvent(new SessionDestroyedEvent("") {
@Override
@@ -60,7 +58,6 @@ public class SessionRegistryImplTests {
return null;
}
});
-
// Check attempts to retrieve cleared session return null
assertThat(this.sessionRegistry.getSessionInformation(sessionId)).isNull();
}
@@ -70,10 +67,8 @@ public class SessionRegistryImplTests {
Object principal = "Some principal object";
final String sessionId = "zzzz";
final String newSessionId = "123";
-
// Register new Session
this.sessionRegistry.registerNewSession(sessionId, principal);
-
// De-register session via an ApplicationEvent
this.sessionRegistry.onApplicationEvent(new SessionIdChangedEvent("") {
@Override
@@ -86,7 +81,6 @@ public class SessionRegistryImplTests {
return newSessionId;
}
});
-
assertThat(this.sessionRegistry.getSessionInformation(sessionId)).isNull();
assertThat(this.sessionRegistry.getSessionInformation(newSessionId)).isNotNull();
assertThat(this.sessionRegistry.getSessionInformation(newSessionId).getPrincipal()).isEqualTo(principal);
@@ -99,11 +93,9 @@ public class SessionRegistryImplTests {
String sessionId1 = "1234567890";
String sessionId2 = "9876543210";
String sessionId3 = "5432109876";
-
this.sessionRegistry.registerNewSession(sessionId1, principal1);
this.sessionRegistry.registerNewSession(sessionId2, principal1);
this.sessionRegistry.registerNewSession(sessionId3, principal2);
-
assertThat(this.sessionRegistry.getAllPrincipals()).hasSize(2);
assertThat(this.sessionRegistry.getAllPrincipals().contains(principal1)).isTrue();
assertThat(this.sessionRegistry.getAllPrincipals().contains(principal2)).isTrue();
@@ -115,32 +107,24 @@ public class SessionRegistryImplTests {
String sessionId = "1234567890";
// Register new Session
this.sessionRegistry.registerNewSession(sessionId, principal);
-
// Retrieve existing session by session ID
Date currentDateTime = this.sessionRegistry.getSessionInformation(sessionId).getLastRequest();
assertThat(this.sessionRegistry.getSessionInformation(sessionId).getPrincipal()).isEqualTo(principal);
assertThat(this.sessionRegistry.getSessionInformation(sessionId).getSessionId()).isEqualTo(sessionId);
assertThat(this.sessionRegistry.getSessionInformation(sessionId).getLastRequest()).isNotNull();
-
// Retrieve existing session by principal
assertThat(this.sessionRegistry.getAllSessions(principal, false)).hasSize(1);
-
// Sleep to ensure SessionRegistryImpl will update time
Thread.sleep(1000);
-
// Update request date/time
this.sessionRegistry.refreshLastRequest(sessionId);
-
Date retrieved = this.sessionRegistry.getSessionInformation(sessionId).getLastRequest();
assertThat(retrieved.after(currentDateTime)).isTrue();
-
// Check it retrieves correctly when looked up via principal
assertThat(this.sessionRegistry.getAllSessions(principal, false).get(0).getLastRequest()).isCloseTo(retrieved,
2000L);
-
// Clear session information
this.sessionRegistry.removeSessionInformation(sessionId);
-
// Check attempts to retrieve cleared session return null
assertThat(this.sessionRegistry.getSessionInformation(sessionId)).isNull();
assertThat(this.sessionRegistry.getAllSessions(principal, false)).isEmpty();
@@ -151,21 +135,17 @@ public class SessionRegistryImplTests {
Object principal = "Some principal object";
String sessionId1 = "1234567890";
String sessionId2 = "9876543210";
-
this.sessionRegistry.registerNewSession(sessionId1, principal);
List sessions = this.sessionRegistry.getAllSessions(principal, false);
assertThat(sessions).hasSize(1);
assertThat(contains(sessionId1, principal)).isTrue();
-
this.sessionRegistry.registerNewSession(sessionId2, principal);
sessions = this.sessionRegistry.getAllSessions(principal, false);
assertThat(sessions).hasSize(2);
assertThat(contains(sessionId2, principal)).isTrue();
-
// Expire one session
SessionInformation session = this.sessionRegistry.getSessionInformation(sessionId2);
session.expireNow();
-
// Check retrieval still correct
assertThat(this.sessionRegistry.getSessionInformation(sessionId2).isExpired()).isTrue();
assertThat(this.sessionRegistry.getSessionInformation(sessionId1).isExpired()).isFalse();
@@ -176,22 +156,18 @@ public class SessionRegistryImplTests {
Object principal = "Some principal object";
String sessionId1 = "1234567890";
String sessionId2 = "9876543210";
-
this.sessionRegistry.registerNewSession(sessionId1, principal);
List sessions = this.sessionRegistry.getAllSessions(principal, false);
assertThat(sessions).hasSize(1);
assertThat(contains(sessionId1, principal)).isTrue();
-
this.sessionRegistry.registerNewSession(sessionId2, principal);
sessions = this.sessionRegistry.getAllSessions(principal, false);
assertThat(sessions).hasSize(2);
assertThat(contains(sessionId2, principal)).isTrue();
-
this.sessionRegistry.removeSessionInformation(sessionId1);
sessions = this.sessionRegistry.getAllSessions(principal, false);
assertThat(sessions).hasSize(1);
assertThat(contains(sessionId2, principal)).isTrue();
-
this.sessionRegistry.removeSessionInformation(sessionId2);
assertThat(this.sessionRegistry.getSessionInformation(sessionId2)).isNull();
assertThat(this.sessionRegistry.getAllSessions(principal, false)).isEmpty();
@@ -199,13 +175,11 @@ public class SessionRegistryImplTests {
private boolean contains(String sessionId, Object principal) {
List info = this.sessionRegistry.getAllSessions(principal, false);
-
for (SessionInformation sessionInformation : info) {
if (sessionId.equals(sessionInformation.getSessionId())) {
return true;
}
}
-
return false;
}
diff --git a/core/src/test/java/org/springframework/security/core/token/DefaultTokenTests.java b/core/src/test/java/org/springframework/security/core/token/DefaultTokenTests.java
index 5a392720ac..1dc583b84b 100644
--- a/core/src/test/java/org/springframework/security/core/token/DefaultTokenTests.java
+++ b/core/src/test/java/org/springframework/security/core/token/DefaultTokenTests.java
@@ -35,7 +35,6 @@ public class DefaultTokenTests {
String key = "key";
long created = new Date().getTime();
String extendedInformation = "extended";
-
DefaultToken t1 = new DefaultToken(key, created, extendedInformation);
DefaultToken t2 = new DefaultToken(key, created, extendedInformation);
assertThat(t2).isEqualTo(t1);
@@ -52,7 +51,6 @@ public class DefaultTokenTests {
public void testEqualityWithDifferentExtendedInformation3() {
String key = "key";
long created = new Date().getTime();
-
DefaultToken t1 = new DefaultToken(key, created, "length1");
DefaultToken t2 = new DefaultToken(key, created, "longerLength2");
assertThat(t1).isNotEqualTo(t2);
diff --git a/core/src/test/java/org/springframework/security/core/userdetails/MapReactiveUserDetailsServiceTests.java b/core/src/test/java/org/springframework/security/core/userdetails/MapReactiveUserDetailsServiceTests.java
index f9d983a406..a6f8760871 100644
--- a/core/src/test/java/org/springframework/security/core/userdetails/MapReactiveUserDetailsServiceTests.java
+++ b/core/src/test/java/org/springframework/security/core/userdetails/MapReactiveUserDetailsServiceTests.java
@@ -33,7 +33,6 @@ public class MapReactiveUserDetailsServiceTests {
.roles("USER")
.build();
// @formatter:on
-
private MapReactiveUserDetailsService users = new MapReactiveUserDetailsService(Arrays.asList(USER_DETAILS));
@Test(expected = IllegalArgumentException.class)
@@ -71,7 +70,6 @@ public class MapReactiveUserDetailsServiceTests {
assertThat(foundUser.getPassword()).isNotEmpty();
foundUser.eraseCredentials();
assertThat(foundUser.getPassword()).isNull();
-
foundUser = this.users.findByUsername(USER_DETAILS.getUsername()).cast(User.class).block();
assertThat(foundUser.getPassword()).isNotEmpty();
}
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 3a2a074971..5a771a6ed9 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
@@ -49,7 +49,6 @@ public class MockUserDetailsService implements UserDetailsService {
if (this.users.get(username) == null) {
throw new UsernameNotFoundException("User not found: " + username);
}
-
return this.users.get(username);
}
diff --git a/core/src/test/java/org/springframework/security/core/userdetails/UserTests.java b/core/src/test/java/org/springframework/security/core/userdetails/UserTests.java
index 920d6a249f..4ac32d65ba 100644
--- a/core/src/test/java/org/springframework/security/core/userdetails/UserTests.java
+++ b/core/src/test/java/org/springframework/security/core/userdetails/UserTests.java
@@ -44,7 +44,6 @@ public class UserTests {
@Test
public void equalsReturnsTrueIfUsernamesAreTheSame() {
User user1 = new User("rod", "koala", true, true, true, true, ROLE_12);
-
assertThat(user1).isNotNull();
assertThat(user1).isNotEqualTo("A STRING");
assertThat(user1).isEqualTo(user1);
@@ -56,7 +55,6 @@ public class UserTests {
User user1 = new User("rod", "koala", true, true, true, true, ROLE_12);
Set users = new HashSet<>();
users.add(user1);
-
assertThat(users).contains(new User("rod", "koala", true, true, true, true, ROLE_12));
assertThat(users).contains(new User("rod", "anotherpass", false, false, false, false,
AuthorityUtils.createAuthorityList("ROLE_X")));
@@ -66,7 +64,6 @@ public class UserTests {
@Test
public void testNoArgConstructorDoesntExist() {
Class clazz = User.class;
-
try {
clazz.getDeclaredConstructor((Class[]) null);
fail("Should have thrown NoSuchMethodException");
@@ -83,14 +80,12 @@ public class UserTests {
}
catch (IllegalArgumentException expected) {
}
-
try {
new User("rod", null, true, true, true, true, ROLE_12);
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
}
-
try {
List auths = AuthorityUtils.createAuthorityList("ROLE_ONE");
auths.add(null);
@@ -145,9 +140,7 @@ public class UserTests {
@Test
public void withUserDetailsWhenAllEnabled() {
User expected = new User("rob", "pass", true, true, true, true, ROLE_12);
-
UserDetails actual = User.withUserDetails(expected).build();
-
assertThat(actual.getUsername()).isEqualTo(expected.getUsername());
assertThat(actual.getPassword()).isEqualTo(expected.getPassword());
assertThat(actual.getAuthorities()).isEqualTo(expected.getAuthorities());
@@ -160,9 +153,7 @@ public class UserTests {
@Test
public void withUserDetailsWhenAllDisabled() {
User expected = new User("rob", "pass", false, false, false, false, ROLE_12);
-
UserDetails actual = User.withUserDetails(expected).build();
-
assertThat(actual.getUsername()).isEqualTo(expected.getUsername());
assertThat(actual.getPassword()).isEqualTo(expected.getPassword());
assertThat(actual.getAuthorities()).isEqualTo(expected.getAuthorities());
@@ -175,10 +166,8 @@ public class UserTests {
@Test
public void withUserWhenDetailsPasswordEncoderThenEncodes() {
UserDetails userDetails = User.withUsername("user").password("password").roles("USER").build();
-
UserDetails withEncodedPassword = User.withUserDetails(userDetails).passwordEncoder((p) -> p + "encoded")
.build();
-
assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded");
}
@@ -186,7 +175,6 @@ public class UserTests {
public void withUsernameWhenPasswordEncoderAndPasswordThenEncodes() {
UserDetails withEncodedPassword = User.withUsername("user").password("password")
.passwordEncoder((p) -> p + "encoded").roles("USER").build();
-
assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded");
}
@@ -199,7 +187,6 @@ public class UserTests {
.roles("USER")
.build();
// @formatter:on
-
assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded");
}
@@ -214,7 +201,6 @@ public class UserTests {
.roles("USER")
.build();
// @formatter:on
-
assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded");
}
diff --git a/core/src/test/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCacheTests.java b/core/src/test/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCacheTests.java
index 1d989dbe98..45f1887853 100644
--- a/core/src/test/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCacheTests.java
+++ b/core/src/test/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCacheTests.java
@@ -53,7 +53,6 @@ public class EhCacheBasedUserCacheTests {
private Ehcache getCache() {
Ehcache cache = cacheManager.getCache("ehcacheusercachetests");
cache.removeAll();
-
return cache;
}
@@ -67,15 +66,12 @@ public class EhCacheBasedUserCacheTests {
EhCacheBasedUserCache cache = new EhCacheBasedUserCache();
cache.setCache(getCache());
cache.afterPropertiesSet();
-
// Check it gets stored in the cache
cache.putUserInCache(getUser());
assertThat(getUser().getPassword()).isEqualTo(cache.getUserFromCache(getUser().getUsername()).getPassword());
-
// Check it gets removed from the cache
cache.removeUserFromCache(getUser());
assertThat(cache.getUserFromCache(getUser().getUsername())).isNull();
-
// Check it doesn't return values for null or unknown users
assertThat(cache.getUserFromCache(null)).isNull();
assertThat(cache.getUserFromCache("UNKNOWN_USER")).isNull();
@@ -84,10 +80,8 @@ public class EhCacheBasedUserCacheTests {
@Test(expected = IllegalArgumentException.class)
public void startupDetectsMissingCache() throws Exception {
EhCacheBasedUserCache cache = new EhCacheBasedUserCache();
-
cache.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
-
Ehcache myCache = getCache();
cache.setCache(myCache);
assertThat(cache.getCache()).isEqualTo(myCache);
diff --git a/core/src/test/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCacheTests.java b/core/src/test/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCacheTests.java
index 7fa442e322..44bf44bade 100644
--- a/core/src/test/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCacheTests.java
+++ b/core/src/test/java/org/springframework/security/core/userdetails/cache/SpringCacheBasedUserCacheTests.java
@@ -64,15 +64,12 @@ public class SpringCacheBasedUserCacheTests {
@Test
public void cacheOperationsAreSuccessful() throws Exception {
SpringCacheBasedUserCache cache = new SpringCacheBasedUserCache(getCache());
-
// Check it gets stored in the cache
cache.putUserInCache(getUser());
assertThat(getUser().getPassword()).isEqualTo(cache.getUserFromCache(getUser().getUsername()).getPassword());
-
// Check it gets removed from the cache
cache.removeUserFromCache(getUser());
assertThat(cache.getUserFromCache(getUser().getUsername())).isNull();
-
// Check it doesn't return values for null or unknown users
assertThat(cache.getUserFromCache(null)).isNull();
assertThat(cache.getUserFromCache("UNKNOWN_USER")).isNull();
diff --git a/core/src/test/java/org/springframework/security/core/userdetails/jdbc/JdbcDaoImplTests.java b/core/src/test/java/org/springframework/security/core/userdetails/jdbc/JdbcDaoImplTests.java
index bfad0a615e..90f45656b4 100644
--- a/core/src/test/java/org/springframework/security/core/userdetails/jdbc/JdbcDaoImplTests.java
+++ b/core/src/test/java/org/springframework/security/core/userdetails/jdbc/JdbcDaoImplTests.java
@@ -43,7 +43,6 @@ public class JdbcDaoImplTests {
JdbcDaoImpl dao = new JdbcDaoImpl();
dao.setDataSource(PopulatedDatabase.getDataSource());
dao.afterPropertiesSet();
-
return dao;
}
@@ -52,7 +51,6 @@ public class JdbcDaoImplTests {
dao.setDataSource(PopulatedDatabase.getDataSource());
dao.setRolePrefix("ARBITRARY_PREFIX_");
dao.afterPropertiesSet();
-
return dao;
}
@@ -63,7 +61,6 @@ public class JdbcDaoImplTests {
assertThat(user.getUsername()).isEqualTo("rod");
assertThat(user.getPassword()).isEqualTo("koala");
assertThat(user.isEnabled()).isTrue();
-
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())).contains("ROLE_TELLER");
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())).contains("ROLE_SUPERVISOR");
}
@@ -88,7 +85,6 @@ public class JdbcDaoImplTests {
JdbcDaoImpl dao = new JdbcDaoImpl();
dao.setAuthoritiesByUsernameQuery("SELECT * FROM FOO");
assertThat(dao.getAuthoritiesByUsernameQuery()).isEqualTo("SELECT * FROM FOO");
-
dao.setUsersByUsernameQuery("SELECT USERS FROM FOO");
assertThat(dao.getUsersByUsernameQuery()).isEqualTo("SELECT USERS FROM FOO");
}
@@ -96,7 +92,6 @@ public class JdbcDaoImplTests {
@Test
public void testLookupFailsIfUserHasNoGrantedAuthorities() throws Exception {
JdbcDaoImpl dao = makePopulatedJdbcDao();
-
try {
dao.loadUserByUsername("cooper");
fail("Should have thrown UsernameNotFoundException");
@@ -108,13 +103,11 @@ public class JdbcDaoImplTests {
@Test
public void testLookupFailsWithWrongUsername() throws Exception {
JdbcDaoImpl dao = makePopulatedJdbcDao();
-
try {
dao.loadUserByUsername("UNKNOWN_USER");
fail("Should have thrown UsernameNotFoundException");
}
catch (UsernameNotFoundException expected) {
-
}
}
@@ -129,11 +122,9 @@ public class JdbcDaoImplTests {
public void testRolePrefixWorks() throws Exception {
JdbcDaoImpl dao = makePopulatedJdbcDaoWithRolePrefix();
assertThat(dao.getRolePrefix()).isEqualTo("ARBITRARY_PREFIX_");
-
UserDetails user = dao.loadUserByUsername("rod");
assertThat(user.getUsername()).isEqualTo("rod");
assertThat(user.getAuthorities()).hasSize(2);
-
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())).contains("ARBITRARY_PREFIX_ROLE_TELLER");
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities()))
.contains("ARBITRARY_PREFIX_ROLE_SUPERVISOR");
@@ -144,7 +135,6 @@ public class JdbcDaoImplTests {
JdbcDaoImpl dao = makePopulatedJdbcDao();
dao.setEnableAuthorities(false);
dao.setEnableGroups(true);
-
UserDetails jerry = dao.loadUserByUsername("jerry");
assertThat(jerry.getAuthorities()).hasSize(3);
}
@@ -162,34 +152,29 @@ public class JdbcDaoImplTests {
@Test
public void testStartupFailsIfDataSourceNotSet() {
JdbcDaoImpl dao = new JdbcDaoImpl();
-
try {
dao.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@Test
public void testStartupFailsIfUserMapSetToNull() {
JdbcDaoImpl dao = new JdbcDaoImpl();
-
try {
dao.setDataSource(null);
dao.afterPropertiesSet();
fail("Should have thrown IllegalArgumentException");
}
catch (IllegalArgumentException expected) {
-
}
}
@Test(expected = IllegalArgumentException.class)
public void setMessageSourceWhenNullThenThrowsException() {
JdbcDaoImpl dao = new JdbcDaoImpl();
-
dao.setMessageSource(null);
}
@@ -199,9 +184,7 @@ public class JdbcDaoImplTests {
JdbcDaoImpl dao = new JdbcDaoImpl();
dao.setMessageSource(source);
String code = "code";
-
dao.getMessages().getMessage(code);
-
verify(source).getMessage(eq(code), any(), any());
}
diff --git a/core/src/test/java/org/springframework/security/core/userdetails/memory/UserAttributeEditorTests.java b/core/src/test/java/org/springframework/security/core/userdetails/memory/UserAttributeEditorTests.java
index 757d05bbeb..1d700855e8 100644
--- a/core/src/test/java/org/springframework/security/core/userdetails/memory/UserAttributeEditorTests.java
+++ b/core/src/test/java/org/springframework/security/core/userdetails/memory/UserAttributeEditorTests.java
@@ -31,7 +31,6 @@ public class UserAttributeEditorTests {
public void testCorrectOperationWithTrailingSpaces() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("password ,ROLE_ONE,ROLE_TWO ");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user.getPassword()).isEqualTo("password");
assertThat(user.getAuthorities()).hasSize(2);
@@ -43,7 +42,6 @@ public class UserAttributeEditorTests {
public void testCorrectOperationWithoutEnabledDisabledKeyword() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("password,ROLE_ONE,ROLE_TWO");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user.isValid()).isTrue();
assertThat(user.isEnabled()).isTrue(); // default
@@ -57,7 +55,6 @@ public class UserAttributeEditorTests {
public void testDisabledKeyword() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("password,disabled,ROLE_ONE,ROLE_TWO");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user.isValid()).isTrue();
assertThat(!user.isEnabled()).isTrue();
@@ -71,7 +68,6 @@ public class UserAttributeEditorTests {
public void testEmptyStringReturnsNull() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user == null).isTrue();
}
@@ -80,7 +76,6 @@ public class UserAttributeEditorTests {
public void testEnabledKeyword() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("password,ROLE_ONE,enabled,ROLE_TWO");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user.isValid()).isTrue();
assertThat(user.isEnabled()).isTrue();
@@ -94,7 +89,6 @@ public class UserAttributeEditorTests {
public void testMalformedStringReturnsNull() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("MALFORMED_STRING");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user == null).isTrue();
}
@@ -103,7 +97,6 @@ public class UserAttributeEditorTests {
public void testNoPasswordOrRolesReturnsNull() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("disabled");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user == null).isTrue();
}
@@ -112,7 +105,6 @@ public class UserAttributeEditorTests {
public void testNoRolesReturnsNull() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("password,enabled");
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user == null).isTrue();
}
@@ -121,7 +113,6 @@ public class UserAttributeEditorTests {
public void testNullReturnsNull() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText(null);
-
UserAttribute user = (UserAttribute) editor.getValue();
assertThat(user == null).isTrue();
}
diff --git a/core/src/test/java/org/springframework/security/jackson2/AnonymousAuthenticationTokenMixinTests.java b/core/src/test/java/org/springframework/security/jackson2/AnonymousAuthenticationTokenMixinTests.java
index 1efa6f4b62..924364f352 100644
--- a/core/src/test/java/org/springframework/security/jackson2/AnonymousAuthenticationTokenMixinTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/AnonymousAuthenticationTokenMixinTests.java
@@ -48,7 +48,6 @@ public class AnonymousAuthenticationTokenMixinTests extends AbstractMixinTests {
+ "\"authorities\": " + SimpleGrantedAuthorityMixinTests.AUTHORITIES_ARRAYLIST_JSON
+ "}";
// @formatter:on
-
@Test
public void serializeAnonymousAuthenticationTokenTest() throws JsonProcessingException, JSONException {
User user = createDefaultUser();
diff --git a/core/src/test/java/org/springframework/security/jackson2/BadCredentialsExceptionMixinTests.java b/core/src/test/java/org/springframework/security/jackson2/BadCredentialsExceptionMixinTests.java
index 2fcc882be4..91dbb6750e 100644
--- a/core/src/test/java/org/springframework/security/jackson2/BadCredentialsExceptionMixinTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/BadCredentialsExceptionMixinTests.java
@@ -41,7 +41,6 @@ public class BadCredentialsExceptionMixinTests extends AbstractMixinTests {
+ "\"suppressed\": [\"[Ljava.lang.Throwable;\",[]]"
+ "}";
// @formatter:on
-
@Test
public void serializeBadCredentialsExceptionMixinTest() throws JsonProcessingException, JSONException {
BadCredentialsException exception = new BadCredentialsException("message");
diff --git a/core/src/test/java/org/springframework/security/jackson2/RememberMeAuthenticationTokenMixinTests.java b/core/src/test/java/org/springframework/security/jackson2/RememberMeAuthenticationTokenMixinTests.java
index 9500354e97..85b05860e8 100644
--- a/core/src/test/java/org/springframework/security/jackson2/RememberMeAuthenticationTokenMixinTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/RememberMeAuthenticationTokenMixinTests.java
@@ -48,7 +48,6 @@ public class RememberMeAuthenticationTokenMixinTests extends AbstractMixinTests
+ "\"authorities\": " + SimpleGrantedAuthorityMixinTests.AUTHORITIES_ARRAYLIST_JSON
+ "}";
// @formatter:on
-
// @formatter:off
private static final String REMEMBERME_AUTH_STRINGPRINCIPAL_JSON = "{"
+ "\"@class\": \"org.springframework.security.authentication.RememberMeAuthenticationToken\","
@@ -59,7 +58,6 @@ public class RememberMeAuthenticationTokenMixinTests extends AbstractMixinTests
+ "\"authorities\": " + SimpleGrantedAuthorityMixinTests.AUTHORITIES_ARRAYLIST_JSON
+ "}";
// @formatter:on
-
@Test(expected = IllegalArgumentException.class)
public void testWithNullPrincipal() {
new RememberMeAuthenticationToken("key", null, Collections.emptyList());
diff --git a/core/src/test/java/org/springframework/security/jackson2/SecurityContextMixinTests.java b/core/src/test/java/org/springframework/security/jackson2/SecurityContextMixinTests.java
index ab9405c986..8f2806079f 100644
--- a/core/src/test/java/org/springframework/security/jackson2/SecurityContextMixinTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/SecurityContextMixinTests.java
@@ -44,7 +44,6 @@ public class SecurityContextMixinTests extends AbstractMixinTests {
+ "\"authentication\": " + UsernamePasswordAuthenticationTokenMixinTests.AUTHENTICATED_STRINGPRINCIPAL_JSON
+ "}";
// @formatter:on
-
@Test
public void securityContextSerializeTest() throws JsonProcessingException, JSONException {
SecurityContext context = new SecurityContextImpl();
diff --git a/core/src/test/java/org/springframework/security/jackson2/SecurityJackson2ModulesTests.java b/core/src/test/java/org/springframework/security/jackson2/SecurityJackson2ModulesTests.java
index d053a451b9..106750a1e6 100644
--- a/core/src/test/java/org/springframework/security/jackson2/SecurityJackson2ModulesTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/SecurityJackson2ModulesTests.java
@@ -58,7 +58,6 @@ public class SecurityJackson2ModulesTests {
public void readValueWhenExplicitDefaultTypingAfterSecuritySetupThenReadsAsSpecificType() throws Exception {
this.mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
String content = "{\"@class\":\"org.springframework.security.jackson2.SecurityJackson2ModulesTests$NotAllowlisted\",\"property\":\"bar\"}";
-
assertThat(this.mapper.readValue(content, Object.class)).isInstanceOf(NotAllowlisted.class);
}
@@ -68,14 +67,12 @@ public class SecurityJackson2ModulesTests {
this.mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
SecurityJackson2Modules.enableDefaultTyping(this.mapper);
String content = "{\"@class\":\"org.springframework.security.jackson2.SecurityJackson2ModulesTests$NotAllowlisted\",\"property\":\"bar\"}";
-
assertThat(this.mapper.readValue(content, Object.class)).isInstanceOf(NotAllowlisted.class);
}
@Test
public void readValueWhenAnnotatedThenReadsAsSpecificType() throws Exception {
String content = "{\"@class\":\"org.springframework.security.jackson2.SecurityJackson2ModulesTests$NotAllowlistedButAnnotated\",\"property\":\"bar\"}";
-
assertThat(this.mapper.readValue(content, Object.class)).isInstanceOf(NotAllowlistedButAnnotated.class);
}
@@ -83,7 +80,6 @@ public class SecurityJackson2ModulesTests {
public void readValueWhenMixinProvidedThenReadsAsSpecificType() throws Exception {
this.mapper.addMixIn(NotAllowlisted.class, NotAllowlistedMixin.class);
String content = "{\"@class\":\"org.springframework.security.jackson2.SecurityJackson2ModulesTests$NotAllowlisted\",\"property\":\"bar\"}";
-
assertThat(this.mapper.readValue(content, Object.class)).isInstanceOf(NotAllowlisted.class);
}
@@ -91,7 +87,6 @@ public class SecurityJackson2ModulesTests {
public void readValueWhenHashMapThenReadsAsSpecificType() throws Exception {
this.mapper.addMixIn(NotAllowlisted.class, NotAllowlistedMixin.class);
String content = "{\"@class\":\"java.util.HashMap\"}";
-
assertThat(this.mapper.readValue(content, Object.class)).isInstanceOf(HashMap.class);
}
diff --git a/core/src/test/java/org/springframework/security/jackson2/SimpleGrantedAuthorityMixinTests.java b/core/src/test/java/org/springframework/security/jackson2/SimpleGrantedAuthorityMixinTests.java
index 2786cd2b24..05d67d7323 100644
--- a/core/src/test/java/org/springframework/security/jackson2/SimpleGrantedAuthorityMixinTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/SimpleGrantedAuthorityMixinTests.java
@@ -36,18 +36,12 @@ public class SimpleGrantedAuthorityMixinTests extends AbstractMixinTests {
// @formatter:off
public static final String AUTHORITY_JSON = "{\"@class\": \"org.springframework.security.core.authority.SimpleGrantedAuthority\", \"authority\": \"ROLE_USER\"}";
-
public static final String AUTHORITIES_ARRAYLIST_JSON = "[\"java.util.Collections$UnmodifiableRandomAccessList\", [" + AUTHORITY_JSON + "]]";
-
public static final String AUTHORITIES_SET_JSON = "[\"java.util.Collections$UnmodifiableSet\", [" + AUTHORITY_JSON + "]]";
-
public static final String NO_AUTHORITIES_ARRAYLIST_JSON = "[\"java.util.Collections$UnmodifiableRandomAccessList\", []]";
-
public static final String EMPTY_AUTHORITIES_ARRAYLIST_JSON = "[\"java.util.Collections$EmptyList\", []]";
-
public static final String NO_AUTHORITIES_SET_JSON = "[\"java.util.Collections$UnmodifiableSet\", []]";
// @formatter:on
-
@Test
public void serializeSimpleGrantedAuthorityTest() throws JsonProcessingException, JSONException {
SimpleGrantedAuthority authority = new SimpleGrantedAuthority("ROLE_USER");
diff --git a/core/src/test/java/org/springframework/security/jackson2/UserDeserializerTests.java b/core/src/test/java/org/springframework/security/jackson2/UserDeserializerTests.java
index f7d902486b..299b4f9026 100644
--- a/core/src/test/java/org/springframework/security/jackson2/UserDeserializerTests.java
+++ b/core/src/test/java/org/springframework/security/jackson2/UserDeserializerTests.java
@@ -53,7 +53,6 @@ public class UserDeserializerTests extends AbstractMixinTests {
+ "\"authorities\": " + SimpleGrantedAuthorityMixinTests.AUTHORITIES_SET_JSON
+ "}";
// @formatter:on
-
@Test
public void serializeUserTest() throws JsonProcessingException, JSONException {
User user = createDefaultUser();
@@ -72,14 +71,12 @@ public class UserDeserializerTests extends AbstractMixinTests {
public void deserializeUserWithNullPasswordEmptyAuthorityTest() throws IOException {
String userJsonWithoutPasswordString = USER_JSON.replace(SimpleGrantedAuthorityMixinTests.AUTHORITIES_SET_JSON,
"[]");
-
this.mapper.readValue(userJsonWithoutPasswordString, User.class);
}
@Test
public void deserializeUserWithNullPasswordNoAuthorityTest() throws Exception {
String userJsonWithoutPasswordString = removeNode(userWithNoAuthoritiesJson(), this.mapper, "password");
-
User user = this.mapper.readValue(userJsonWithoutPasswordString, User.class);
assertThat(user).isNotNull();
assertThat(user.getUsername()).isEqualTo("admin");
@@ -107,7 +104,6 @@ public class UserDeserializerTests extends AbstractMixinTests {
private String removeNode(String json, ObjectMapper mapper, String toRemove) throws Exception {
ObjectNode node = mapper.getFactory().createParser(json).readValueAsTree();
node.remove(toRemove);
-
String result = mapper.writeValueAsString(node);
JSONAssert.assertNotEquals(json, result, false);
return result;
diff --git a/core/src/test/java/org/springframework/security/provisioning/InMemoryUserDetailsManagerTests.java b/core/src/test/java/org/springframework/security/provisioning/InMemoryUserDetailsManagerTests.java
index c3c4816c06..cca7f4d75b 100644
--- a/core/src/test/java/org/springframework/security/provisioning/InMemoryUserDetailsManagerTests.java
+++ b/core/src/test/java/org/springframework/security/provisioning/InMemoryUserDetailsManagerTests.java
@@ -44,7 +44,6 @@ public class InMemoryUserDetailsManagerTests {
@Test
public void changePasswordWhenUsernameIsNotInLowercase() {
UserDetails userNotLowerCase = User.withUserDetails(PasswordEncodedUser.user()).username("User").build();
-
String newPassword = "newPassword";
this.manager.updatePassword(userNotLowerCase, newPassword);
assertThat(this.manager.loadUserByUsername(userNotLowerCase.getUsername()).getPassword())
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 413bff2c53..ddb9a46d7e 100644
--- a/core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java
+++ b/core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java
@@ -97,7 +97,6 @@ public class JdbcUserDetailsManagerTests {
this.manager.setChangePasswordSql(JdbcUserDetailsManager.DEF_CHANGE_PASSWORD_SQL);
this.manager.initDao();
this.template = this.manager.getJdbcTemplate();
-
this.template.execute("create table users(username varchar(20) not null primary key,"
+ "password varchar(20) not null, enabled boolean not null)");
this.template
@@ -121,7 +120,6 @@ public class JdbcUserDetailsManagerTests {
this.template.execute("alter table users add column acc_locked boolean default false not null");
this.template.execute("alter table users add column acc_expired boolean default false not null");
this.template.execute("alter table users add column creds_expired boolean default false not null");
-
this.manager.setUsersByUsernameQuery(
"select username,password,enabled, acc_locked, acc_expired, creds_expired from users where username = ?");
this.manager.setCreateUserSql(
@@ -133,22 +131,17 @@ public class JdbcUserDetailsManagerTests {
@Test
public void createUserInsertsCorrectData() {
this.manager.createUser(joe);
-
UserDetails joe2 = this.manager.loadUserByUsername("joe");
-
assertThat(joe2).isEqualTo(joe);
}
@Test
public void createUserInsertsCorrectDataWithLocking() {
setUpAccLockingColumns();
-
UserDetails user = new User("joe", "pass", true, false, true, false,
AuthorityUtils.createAuthorityList("A", "B"));
this.manager.createUser(user);
-
UserDetails user2 = this.manager.loadUserByUsername(user.getUsername());
-
assertThat(user2).isEqualToComparingFieldByField(user);
}
@@ -156,7 +149,6 @@ public class JdbcUserDetailsManagerTests {
public void deleteUserRemovesUserDataAndAuthoritiesAndClearsCache() {
insertJoe();
this.manager.deleteUser("joe");
-
assertThat(this.template.queryForList(SELECT_JOE_SQL)).isEmpty();
assertThat(this.template.queryForList(SELECT_JOE_AUTHORITIES_SQL)).isEmpty();
assertThat(this.cache.getUserMap().containsKey("joe")).isFalse();
@@ -167,11 +159,8 @@ public class JdbcUserDetailsManagerTests {
insertJoe();
User newJoe = new User("joe", "newpassword", false, true, true, true,
AuthorityUtils.createAuthorityList(new String[] { "D", "F", "E" }));
-
this.manager.updateUser(newJoe);
-
UserDetails joe = this.manager.loadUserByUsername("joe");
-
assertThat(joe).isEqualTo(newJoe);
assertThat(this.cache.getUserMap().containsKey("joe")).isFalse();
}
@@ -179,16 +168,11 @@ public class JdbcUserDetailsManagerTests {
@Test
public void updateUserChangesDataCorrectlyAndClearsCacheWithLocking() {
setUpAccLockingColumns();
-
insertJoe();
-
User newJoe = new User("joe", "newpassword", false, false, false, true,
AuthorityUtils.createAuthorityList("D", "F", "E"));
-
this.manager.updateUser(newJoe);
-
UserDetails joe = this.manager.loadUserByUsername(newJoe.getUsername());
-
assertThat(joe).isEqualToComparingFieldByField(newJoe);
assertThat(this.cache.getUserMap().containsKey(newJoe.getUsername())).isFalse();
}
@@ -216,7 +200,6 @@ public class JdbcUserDetailsManagerTests {
authenticateJoe();
this.manager.changePassword("wrongpassword", "newPassword");
UserDetails newJoe = this.manager.loadUserByUsername("joe");
-
assertThat(newJoe.getPassword()).isEqualTo("newPassword");
assertThat(this.cache.getUserMap().containsKey("joe")).isFalse();
}
@@ -227,11 +210,9 @@ public class JdbcUserDetailsManagerTests {
Authentication currentAuth = authenticateJoe();
AuthenticationManager am = mock(AuthenticationManager.class);
given(am.authenticate(currentAuth)).willReturn(currentAuth);
-
this.manager.setAuthenticationManager(am);
this.manager.changePassword("password", "newPassword");
UserDetails newJoe = this.manager.loadUserByUsername("joe");
-
assertThat(newJoe.getPassword()).isEqualTo("newPassword");
// The password in the context should also be altered
Authentication newAuth = SecurityContextHolder.getContext().getAuthentication();
@@ -247,16 +228,13 @@ public class JdbcUserDetailsManagerTests {
authenticateJoe();
AuthenticationManager am = mock(AuthenticationManager.class);
given(am.authenticate(any(Authentication.class))).willThrow(new BadCredentialsException(""));
-
this.manager.setAuthenticationManager(am);
-
try {
this.manager.changePassword("password", "newPassword");
fail("Expected BadCredentialsException");
}
catch (BadCredentialsException expected) {
}
-
// Check password hasn't changed.
UserDetails newJoe = this.manager.loadUserByUsername("joe");
assertThat(newJoe.getPassword()).isEqualTo("password");
@@ -268,7 +246,6 @@ public class JdbcUserDetailsManagerTests {
public void findAllGroupsReturnsExpectedGroupNames() {
List groups = this.manager.findAllGroups();
assertThat(groups).hasSize(4);
-
Collections.sort(groups);
assertThat(groups.get(0)).isEqualTo("GROUP_0");
assertThat(groups.get(1)).isEqualTo("GROUP_1");
@@ -289,10 +266,8 @@ public class JdbcUserDetailsManagerTests {
@SuppressWarnings("unchecked")
public void createGroupInsertsCorrectData() {
this.manager.createGroup("TEST_GROUP", AuthorityUtils.createAuthorityList("ROLE_X", "ROLE_Y"));
-
List roles = this.template.queryForList("select ga.authority from groups g, group_authorities ga "
+ "where ga.group_id = g.id " + "and g.group_name = 'TEST_GROUP'");
-
assertThat(roles).hasSize(2);
}
@@ -302,7 +277,6 @@ public class JdbcUserDetailsManagerTests {
this.manager.deleteGroup("GROUP_1");
this.manager.deleteGroup("GROUP_2");
this.manager.deleteGroup("GROUP_3");
-
assertThat(this.template.queryForList("select * from group_authorities")).isEmpty();
assertThat(this.template.queryForList("select * from group_members")).isEmpty();
assertThat(this.template.queryForList("select id from groups")).isEmpty();
@@ -311,7 +285,6 @@ public class JdbcUserDetailsManagerTests {
@Test
public void renameGroupIsSuccessful() {
this.manager.renameGroup("GROUP_0", "GROUP_X");
-
assertThat(this.template.queryForObject("select id from groups where group_name = 'GROUP_X'", Integer.class))
.isZero();
}
@@ -319,14 +292,12 @@ public class JdbcUserDetailsManagerTests {
@Test
public void addingGroupUserSetsCorrectData() {
this.manager.addUserToGroup("tom", "GROUP_0");
-
assertThat(this.template.queryForList("select username from group_members where group_id = 0")).hasSize(2);
}
@Test
public void removeUserFromGroupDeletesGroupMemberRow() {
this.manager.removeUserFromGroup("jerry", "GROUP_1");
-
assertThat(this.template.queryForList("select group_id from group_members where username = 'jerry'"))
.hasSize(1);
}
@@ -341,7 +312,6 @@ public class JdbcUserDetailsManagerTests {
public void addGroupAuthorityInsertsCorrectGroupAuthorityRow() {
GrantedAuthority auth = new SimpleGrantedAuthority("ROLE_X");
this.manager.addGroupAuthority("GROUP_0", auth);
-
this.template.queryForObject(
"select authority from group_authorities where authority = 'ROLE_X' and group_id = 0", String.class);
}
@@ -351,7 +321,6 @@ public class JdbcUserDetailsManagerTests {
GrantedAuthority auth = new SimpleGrantedAuthority("ROLE_A");
this.manager.removeGroupAuthority("GROUP_0", auth);
assertThat(this.template.queryForList("select authority from group_authorities where group_id = 0")).isEmpty();
-
this.manager.removeGroupAuthority("GROUP_2", auth);
assertThat(this.template.queryForList("select authority from group_authorities where group_id = 2")).hasSize(2);
}
@@ -388,7 +357,6 @@ public class JdbcUserDetailsManagerTests {
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken("joe", "password",
joe.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(auth);
-
return auth;
}
diff --git a/core/src/test/java/org/springframework/security/util/FieldUtilsTests.java b/core/src/test/java/org/springframework/security/util/FieldUtilsTests.java
index 51835d2133..2d7317b7a1 100644
--- a/core/src/test/java/org/springframework/security/util/FieldUtilsTests.java
+++ b/core/src/test/java/org/springframework/security/util/FieldUtilsTests.java
@@ -28,12 +28,10 @@ public class FieldUtilsTests {
@Test
public void gettingAndSettingProtectedFieldIsSuccessful() throws Exception {
Object tc = new TestClass();
-
assertThat(FieldUtils.getProtectedFieldValue("protectedField", tc)).isEqualTo("x");
assertThat(FieldUtils.getFieldValue(tc, "nested.protectedField")).isEqualTo("z");
FieldUtils.setProtectedFieldValue("protectedField", tc, "y");
assertThat(FieldUtils.getProtectedFieldValue("protectedField", tc)).isEqualTo("y");
-
try {
FieldUtils.getProtectedFieldValue("nonExistentField", tc);
}
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 aa099fb9c0..7bc823f2bb 100644
--- a/core/src/test/java/org/springframework/security/util/MethodInvocationUtilsTests.java
+++ b/core/src/test/java/org/springframework/security/util/MethodInvocationUtilsTests.java
@@ -61,14 +61,11 @@ public class MethodInvocationUtilsTests {
AdvisedTarget t = new AdvisedTarget();
// Just lie about interfaces
t.setInterfaces(new Class[] { Serializable.class, MethodInvocation.class, Blah.class });
-
MethodInvocation mi = MethodInvocationUtils.create(t, "blah");
assertThat(mi).isNotNull();
-
t.setProxyTargetClass(true);
mi = MethodInvocationUtils.create(t, "blah");
assertThat(mi).isNotNull();
-
assertThat(MethodInvocationUtils.create(t, "blah", "non-existent arg")).isNull();
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/argon2/Argon2PasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/argon2/Argon2PasswordEncoderTests.java
index dce328f4b3..23fde39954 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/argon2/Argon2PasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/argon2/Argon2PasswordEncoderTests.java
@@ -89,7 +89,6 @@ public class Argon2PasswordEncoderTests {
public void matchesWhenGeneratedWithDifferentEncoderThenTrue() {
Argon2PasswordEncoder oldEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 4);
Argon2PasswordEncoder newEncoder = new Argon2PasswordEncoder();
-
String password = "secret";
String oldEncodedPassword = oldEncoder.encode(password);
assertThat(newEncoder.matches(password, oldEncodedPassword)).isTrue();
@@ -113,9 +112,7 @@ public class Argon2PasswordEncoderTests {
@Test
public void encodeWhenUsingPredictableSaltThenEqualTestHash() throws Exception {
injectPredictableSaltGen();
-
String hash = this.encoder.encode("sometestpassword");
-
assertThat(hash).isEqualTo(
"$argon2id$v=19$m=4096,t=3,p=1$QUFBQUFBQUFBQUFBQUFBQQ$hmmTNyJlwbb6HAvFoHFWF+u03fdb0F2qA+39oPlcAqo");
}
@@ -125,7 +122,6 @@ public class Argon2PasswordEncoderTests {
this.encoder = new Argon2PasswordEncoder(16, 32, 4, 512, 5);
injectPredictableSaltGen();
String hash = this.encoder.encode("sometestpassword");
-
assertThat(hash).isEqualTo(
"$argon2id$v=19$m=512,t=5,p=4$QUFBQUFBQUFBQUFBQUFBQQ$PNv4C3K50bz3rmON+LtFpdisD7ePieLNq+l5iUHgc1k");
}
@@ -133,16 +129,13 @@ public class Argon2PasswordEncoderTests {
@Test
public void upgradeEncodingWhenSameEncodingThenFalse() {
String hash = this.encoder.encode("password");
-
assertThat(this.encoder.upgradeEncoding(hash)).isFalse();
}
@Test
public void upgradeEncodingWhenSameStandardParamsThenFalse() {
Argon2PasswordEncoder newEncoder = new Argon2PasswordEncoder();
-
String hash = this.encoder.encode("password");
-
assertThat(newEncoder.upgradeEncoding(hash)).isFalse();
}
@@ -150,9 +143,7 @@ public class Argon2PasswordEncoderTests {
public void upgradeEncodingWhenSameCustomParamsThenFalse() {
Argon2PasswordEncoder oldEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 4);
Argon2PasswordEncoder newEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 4);
-
String hash = oldEncoder.encode("password");
-
assertThat(newEncoder.upgradeEncoding(hash)).isFalse();
}
@@ -160,9 +151,7 @@ public class Argon2PasswordEncoderTests {
public void upgradeEncodingWhenHashHasLowerMemoryThenTrue() {
Argon2PasswordEncoder oldEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 4);
Argon2PasswordEncoder newEncoder = new Argon2PasswordEncoder(20, 64, 4, 512, 4);
-
String hash = oldEncoder.encode("password");
-
assertThat(newEncoder.upgradeEncoding(hash)).isTrue();
}
@@ -170,9 +159,7 @@ public class Argon2PasswordEncoderTests {
public void upgradeEncodingWhenHashHasLowerIterationsThenTrue() {
Argon2PasswordEncoder oldEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 4);
Argon2PasswordEncoder newEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 5);
-
String hash = oldEncoder.encode("password");
-
assertThat(newEncoder.upgradeEncoding(hash)).isTrue();
}
@@ -180,9 +167,7 @@ public class Argon2PasswordEncoderTests {
public void upgradeEncodingWhenHashHasHigherParamsThenFalse() {
Argon2PasswordEncoder oldEncoder = new Argon2PasswordEncoder(20, 64, 4, 256, 4);
Argon2PasswordEncoder newEncoder = new Argon2PasswordEncoder(20, 64, 4, 128, 3);
-
String hash = oldEncoder.encode("password");
-
assertThat(newEncoder.upgradeEncoding(hash)).isFalse();
}
@@ -205,7 +190,6 @@ public class Argon2PasswordEncoderTests {
byte[] bytes = new byte[16];
Arrays.fill(bytes, (byte) 0x41);
Mockito.when(this.keyGeneratorMock.generateKey()).thenReturn(bytes);
-
// we can't use the @InjectMock-annotation because the salt-generator is set in
// the constructor
// and Mockito will only inject mocks if they are null
diff --git a/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoderTests.java
index 1b88c0fc09..b9c9c1072f 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoderTests.java
@@ -113,7 +113,6 @@ public class BCryptPasswordEncoderTests {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(8);
String result = encoder.encode("password");
assertThat(encoder.matches("password", result)).isTrue();
-
}
@Test
@@ -169,10 +168,8 @@ public class BCryptPasswordEncoderTests {
public void upgradeFromLowerStrength() {
BCryptPasswordEncoder weakEncoder = new BCryptPasswordEncoder(5);
BCryptPasswordEncoder strongEncoder = new BCryptPasswordEncoder(15);
-
String weakPassword = weakEncoder.encode("password");
String strongPassword = strongEncoder.encode("password");
-
assertThat(weakEncoder.upgradeEncoding(strongPassword)).isFalse();
assertThat(strongEncoder.upgradeEncoding(weakPassword)).isTrue();
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptTests.java b/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptTests.java
index 7fcd8739c9..010c1e9c8e 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptTests.java
@@ -11,7 +11,6 @@
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
package org.springframework.security.crypto.bcrypt;
import java.util.ArrayList;
@@ -141,7 +140,6 @@ public class BCryptTests {
"$2y$06$sYDFHqOcXTjBgOsqC0WCKeMd3T1UhHuWQSxncLGtXDLMrcE6vFDti"));
testObjectsString.add(new TestObject<>("~!@#$%^&*() ~!@#$%^&*()PNBFRD", "$2y$06$6Xm0gCw4g7ZNDCEp4yTise",
"$2y$06$6Xm0gCw4g7ZNDCEp4yTisez0kSdpXEl66MvdxGidnmChIe8dFmMnq"));
-
testObjectsByteArray = new ArrayList<>();
testObjectsByteArray.add(new TestObject<>(new byte[] {}, "$2a$06$fPIsBO8qRqkjj273rfaOI.",
"$2a$06$fPIsBO8qRqkjj273rfaOI.uiVGfgi6Z1Iz.vZr11mi/38o09TUVCy"));
@@ -315,11 +313,9 @@ public class BCryptTests {
print("BCrypt.hashpw w/ international chars: ");
String pw1 = "ππππππππ";
String pw2 = "????????";
-
String h1 = BCrypt.hashpw(pw1, BCrypt.gensalt());
assertThat(BCrypt.checkpw(pw2, h1)).isFalse();
print(".");
-
String h2 = BCrypt.hashpw(pw2, BCrypt.gensalt());
assertThat(BCrypt.checkpw(pw1, h2)).isFalse();
print(".");
@@ -386,15 +382,12 @@ public class BCryptTests {
@Test
public void testBase64EncodeDecode() {
byte[] ba = new byte[3];
-
for (int b = 0; b <= 0xFF; b++) {
for (int i = 0; i < ba.length; i++) {
Arrays.fill(ba, (byte) 0);
ba[i] = (byte) b;
-
String s = encode_base64(ba, 3);
assertThat(s.length()).isEqualTo(4);
-
byte[] decoded = BCrypt.decode_base64(s, 3);
assertThat(decoded).isEqualTo(ba);
}
@@ -452,10 +445,8 @@ public class BCryptTests {
public void equalsOnStringsIsCorrect() {
assertThat(BCrypt.equalsNoEarlyReturn("", "")).isTrue();
assertThat(BCrypt.equalsNoEarlyReturn("test", "test")).isTrue();
-
assertThat(BCrypt.equalsNoEarlyReturn("test", "")).isFalse();
assertThat(BCrypt.equalsNoEarlyReturn("", "test")).isFalse();
-
assertThat(BCrypt.equalsNoEarlyReturn("test", "pass")).isFalse();
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java b/crypto/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java
index 9a66e090d9..4c1b202df8 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java
@@ -33,9 +33,7 @@ public class Utf8Tests {
byte[] bytes = Utf8.encode("6048b75ed560785c");
assertThat(bytes).hasSize(16);
assertThat(Arrays.equals("6048b75ed560785c".getBytes("UTF-8"), bytes)).isTrue();
-
String decoded = Utf8.decode(bytes);
-
assertThat(decoded).isEqualTo("6048b75ed560785c");
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/encrypt/AesBytesEncryptorTests.java b/crypto/src/test/java/org/springframework/security/crypto/encrypt/AesBytesEncryptorTests.java
index 0d1a9b678b..d806b028cb 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/encrypt/AesBytesEncryptorTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/encrypt/AesBytesEncryptorTests.java
@@ -67,7 +67,6 @@ public class AesBytesEncryptorTests {
byte[] encryption = encryptor.encrypt(this.secret.getBytes());
assertThat(new String(Hex.encode(encryption)))
.isEqualTo("4b0febebd439db7ca77153cb254520c3b7232ac29355d07869433f1ecf55fe94");
-
byte[] decryption = encryptor.decrypt(encryption);
assertThat(new String(decryption)).isEqualTo(this.secret);
}
@@ -77,11 +76,9 @@ public class AesBytesEncryptorTests {
CryptoAssumptions.assumeGCMJCE();
AesBytesEncryptor encryptor = new AesBytesEncryptor(this.password, this.hexSalt, this.generator,
CipherAlgorithm.GCM);
-
byte[] encryption = encryptor.encrypt(this.secret.getBytes());
assertThat(new String(Hex.encode(encryption)))
.isEqualTo("4b0febebd439db7ca77153cb254520c3e4d61ae38207b4e42b820d311dc3d4e0e2f37ed5ee");
-
byte[] decryption = encryptor.decrypt(encryption);
assertThat(new String(decryption)).isEqualTo(this.secret);
}
@@ -92,11 +89,9 @@ public class AesBytesEncryptorTests {
PBEKeySpec keySpec = new PBEKeySpec(this.password.toCharArray(), Hex.decode(this.hexSalt), 1024, 256);
SecretKey secretKey = CipherUtils.newSecretKey(SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA1.name(), keySpec);
AesBytesEncryptor encryptor = new AesBytesEncryptor(secretKey, this.generator, CipherAlgorithm.GCM);
-
byte[] encryption = encryptor.encrypt(this.secret.getBytes());
assertThat(new String(Hex.encode(encryption)))
.isEqualTo("4b0febebd439db7ca77153cb254520c3e4d61ae38207b4e42b820d311dc3d4e0e2f37ed5ee");
-
byte[] decryption = encryptor.decrypt(encryption);
assertThat(new String(decryption)).isEqualTo(this.secret);
}
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 56a70c073d..44506004d1 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
@@ -102,7 +102,6 @@ public class BouncyCastleAesBytesEncryptorEquivalencyTests {
Assert.assertArrayEquals(this.testData, leftDecrypted);
Assert.assertArrayEquals(this.testData, rightDecrypted);
}
-
}
private void testCompatibility(BytesEncryptor left, BytesEncryptor right) {
diff --git a/crypto/src/test/java/org/springframework/security/crypto/encrypt/CryptoAssumptions.java b/crypto/src/test/java/org/springframework/security/crypto/encrypt/CryptoAssumptions.java
index 3feeb87868..3fca2601c8 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/encrypt/CryptoAssumptions.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/encrypt/CryptoAssumptions.java
@@ -52,7 +52,6 @@ public final class CryptoAssumptions {
throw new AssumptionViolatedException(cipherAlgorithm + " padding not available, skipping test", ex);
}
Assume.assumeTrue("AES key length of 256 not allowed, skipping test", aes256Available);
-
}
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/factory/PasswordEncoderFactoriesTests.java b/crypto/src/test/java/org/springframework/security/crypto/factory/PasswordEncoderFactoriesTests.java
index 7aff4acdd3..89143fae4e 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/factory/PasswordEncoderFactoriesTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/factory/PasswordEncoderFactoriesTests.java
@@ -35,7 +35,6 @@ public class PasswordEncoderFactoriesTests {
@Test
public void encodeWhenDefaultThenBCryptUsed() {
String encodedPassword = this.encoder.encode(this.rawPassword);
-
assertThat(encodedPassword).startsWith("{bcrypt}");
assertThat(this.encoder.matches(this.rawPassword, encodedPassword)).isTrue();
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/password/DelegatingPasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/password/DelegatingPasswordEncoderTests.java
index e53288afcc..c98fd1016b 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/password/DelegatingPasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/password/DelegatingPasswordEncoderTests.java
@@ -69,7 +69,6 @@ public class DelegatingPasswordEncoderTests {
this.delegates = new HashMap<>();
this.delegates.put(this.bcryptId, this.bcrypt);
this.delegates.put("noop", this.noop);
-
this.passwordEncoder = new DelegatingPasswordEncoder(this.bcryptId, this.delegates);
}
@@ -92,9 +91,7 @@ public class DelegatingPasswordEncoderTests {
public void matchesWhenCustomDefaultPasswordEncoderForMatchesThenDelegates() {
String encodedPassword = "{unmapped}" + this.rawPassword;
this.passwordEncoder.setDefaultPasswordEncoderForMatches(this.invalidId);
-
assertThat(this.passwordEncoder.matches(this.rawPassword, encodedPassword)).isFalse();
-
verify(this.invalidId).matches(this.rawPassword, encodedPassword);
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -102,16 +99,13 @@ public class DelegatingPasswordEncoderTests {
@Test
public void encodeWhenValidThenUsesIdForEncode() {
given(this.bcrypt.encode(this.rawPassword)).willReturn(this.encodedPassword);
-
assertThat(this.passwordEncoder.encode(this.rawPassword)).isEqualTo(this.bcryptEncodedPassword);
}
@Test
public void matchesWhenBCryptThenDelegatesToBCrypt() {
given(this.bcrypt.matches(this.rawPassword, this.encodedPassword)).willReturn(true);
-
assertThat(this.passwordEncoder.matches(this.rawPassword, this.bcryptEncodedPassword)).isTrue();
-
verify(this.bcrypt).matches(this.rawPassword, this.encodedPassword);
verifyZeroInteractions(this.noop);
}
@@ -119,9 +113,7 @@ public class DelegatingPasswordEncoderTests {
@Test
public void matchesWhenNoopThenDelegatesToNoop() {
given(this.noop.matches(this.rawPassword, this.encodedPassword)).willReturn(true);
-
assertThat(this.passwordEncoder.matches(this.rawPassword, this.noopEncodedPassword)).isTrue();
-
verify(this.noop).matches(this.rawPassword, this.encodedPassword);
verifyZeroInteractions(this.bcrypt);
}
@@ -131,7 +123,6 @@ public class DelegatingPasswordEncoderTests {
assertThatThrownBy(() -> this.passwordEncoder.matches(this.rawPassword, "{unmapped}" + this.rawPassword))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("There is no PasswordEncoder mapped for the id \"unmapped\"");
-
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -140,7 +131,6 @@ public class DelegatingPasswordEncoderTests {
assertThatThrownBy(() -> this.passwordEncoder.matches(this.rawPassword, "{bcrypt" + this.rawPassword))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("There is no PasswordEncoder mapped for the id \"null\"");
-
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -149,7 +139,6 @@ public class DelegatingPasswordEncoderTests {
assertThatThrownBy(() -> this.passwordEncoder.matches(this.rawPassword, "bcrypt}" + this.rawPassword))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("There is no PasswordEncoder mapped for the id \"null\"");
-
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -158,7 +147,6 @@ public class DelegatingPasswordEncoderTests {
assertThatThrownBy(() -> this.passwordEncoder.matches(this.rawPassword, "{}" + this.rawPassword))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("There is no PasswordEncoder mapped for the id \"\"");
-
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -167,20 +155,16 @@ public class DelegatingPasswordEncoderTests {
assertThatThrownBy(() -> this.passwordEncoder.matches(this.rawPassword, "invalid" + this.bcryptEncodedPassword))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("There is no PasswordEncoder mapped for the id \"null\"");
-
verifyZeroInteractions(this.bcrypt, this.noop);
}
@Test
public void matchesWhenIdIsNullThenFalse() {
this.delegates = new Hashtable<>(this.delegates);
-
DelegatingPasswordEncoder passwordEncoder = new DelegatingPasswordEncoder(this.bcryptId, this.delegates);
-
assertThatThrownBy(() -> passwordEncoder.matches(this.rawPassword, this.rawPassword))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("There is no PasswordEncoder mapped for the id \"null\"");
-
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -189,9 +173,7 @@ public class DelegatingPasswordEncoderTests {
this.delegates.put(null, this.invalidId);
this.passwordEncoder = new DelegatingPasswordEncoder(this.bcryptId, this.delegates);
given(this.invalidId.matches(this.rawPassword, this.encodedPassword)).willReturn(true);
-
assertThat(this.passwordEncoder.matches(this.rawPassword, this.encodedPassword)).isTrue();
-
verify(this.invalidId).matches(this.rawPassword, this.encodedPassword);
verifyZeroInteractions(this.bcrypt, this.noop);
}
@@ -219,23 +201,19 @@ public class DelegatingPasswordEncoderTests {
@Test
public void upgradeEncodingWhenSameIdAndEncoderFalseThenEncoderDecidesFalse() {
assertThat(this.passwordEncoder.upgradeEncoding(this.bcryptEncodedPassword)).isFalse();
-
verify(this.bcrypt).upgradeEncoding(this.encodedPassword);
}
@Test
public void upgradeEncodingWhenSameIdAndEncoderTrueThenEncoderDecidesTrue() {
given(this.bcrypt.upgradeEncoding(any())).willReturn(true);
-
assertThat(this.passwordEncoder.upgradeEncoding(this.bcryptEncodedPassword)).isTrue();
-
verify(this.bcrypt).upgradeEncoding(this.encodedPassword);
}
@Test
public void upgradeEncodingWhenDifferentIdThenTrue() {
assertThat(this.passwordEncoder.upgradeEncoding(this.noopEncodedPassword)).isTrue();
-
verifyZeroInteractions(this.bcrypt);
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/password/LdapShaPasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/password/LdapShaPasswordEncoderTests.java
index dfd72f22af..c2ba10087f 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/password/LdapShaPasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/password/LdapShaPasswordEncoderTests.java
@@ -83,14 +83,11 @@ public class LdapShaPasswordEncoderTests {
public void correctPrefixCaseIsUsed() {
this.sha.setForceLowerCasePrefix(false);
assertThat(this.sha.encode("somepassword").startsWith("{SSHA}"));
-
this.sha.setForceLowerCasePrefix(true);
assertThat(this.sha.encode("somepassword").startsWith("{ssha}"));
-
this.sha = new LdapShaPasswordEncoder(KeyGenerators.shared(0));
this.sha.setForceLowerCasePrefix(false);
assertThat(this.sha.encode("somepassword").startsWith("{SHA}"));
-
this.sha.setForceLowerCasePrefix(true);
assertThat(this.sha.encode("somepassword").startsWith("{SSHA}"));
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/password/Md4PasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/password/Md4PasswordEncoderTests.java
index b36ac74940..a1de26c6c3 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/password/Md4PasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/password/Md4PasswordEncoderTests.java
@@ -62,7 +62,6 @@ public class Md4PasswordEncoderTests {
String rawPassword = "password";
Md4PasswordEncoder md4 = new Md4PasswordEncoder();
String encodedPassword = md4.encode(rawPassword);
-
assertThat(md4.matches(rawPassword, encodedPassword)).isTrue();
}
diff --git a/crypto/src/test/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoderTests.java
index a430e8108e..057545ca41 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/password/MessageDigestPasswordEncoderTests.java
@@ -95,7 +95,6 @@ public class MessageDigestPasswordEncoderTests {
MessageDigestPasswordEncoder pe = new MessageDigestPasswordEncoder("SHA-1");
String raw = "abc123";
assertThat(pe.matches(raw, "{THIS_IS_A_SALT}b2f50ffcbd3407fe9415c062d55f54731f340d32"));
-
}
@Test
diff --git a/crypto/src/test/java/org/springframework/security/crypto/password/Pbkdf2PasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/password/Pbkdf2PasswordEncoderTests.java
index 3da34c5daf..bd54171718 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/password/Pbkdf2PasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/password/Pbkdf2PasswordEncoderTests.java
@@ -71,14 +71,12 @@ public class Pbkdf2PasswordEncoderTests {
byte[] originalBytes = Hex.decode(originalEncodedPassword);
byte[] fixedBytes = Arrays.copyOfRange(originalBytes, saltLength, originalBytes.length);
String fixedHex = String.valueOf(Hex.encode(fixedBytes));
-
assertThat(fixedHex).isEqualTo(encodedPassword);
}
@Test
public void encodeAndMatchWhenBase64ThenSuccess() {
this.encoder.setEncodeHashAsBase64(true);
-
String rawPassword = "password";
String encodedPassword = this.encoder.encode(rawPassword);
assertThat(this.encoder.matches(rawPassword, encodedPassword)).isTrue();
@@ -89,7 +87,6 @@ public class Pbkdf2PasswordEncoderTests {
this.encoder.setEncodeHashAsBase64(true);
String rawPassword = "password";
String encodedPassword = "3FOwOMcDgxP+z1x/sv184LFY2WVD+ZGMgYP3LPOSmCcDmk1XPYvcCQ==";
-
assertThat(this.encoder.matches(rawPassword, encodedPassword)).isTrue();
java.util.Base64.getDecoder().decode(encodedPassword); // validate can decode as
// Base64
@@ -98,7 +95,6 @@ public class Pbkdf2PasswordEncoderTests {
@Test
public void encodeAndMatchWhenSha256ThenSuccess() {
this.encoder.setAlgorithm(Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA256);
-
String rawPassword = "password";
String encodedPassword = this.encoder.encode(rawPassword);
assertThat(this.encoder.matches(rawPassword, encodedPassword)).isTrue();
@@ -107,7 +103,6 @@ public class Pbkdf2PasswordEncoderTests {
@Test
public void matchWhenSha256ThenSuccess() {
this.encoder.setAlgorithm(Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA256);
-
String rawPassword = "password";
String encodedPassword = "821447f994e2b04c5014e31fa9fca4ae1cc9f2188c4ed53d3ddb5ba7980982b51a0ecebfc0b81a79";
assertThat(this.encoder.matches(rawPassword, encodedPassword)).isTrue();
diff --git a/crypto/src/test/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoderTests.java b/crypto/src/test/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoderTests.java
index 22fa4d5ffe..6dcd99865a 100644
--- a/crypto/src/test/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoderTests.java
+++ b/crypto/src/test/java/org/springframework/security/crypto/scrypt/SCryptPasswordEncoderTests.java
@@ -68,7 +68,6 @@ public class SCryptPasswordEncoderTests {
public void samePasswordWithDifferentParams() {
SCryptPasswordEncoder oldEncoder = new SCryptPasswordEncoder(16384, 8, 1, 32, 64);
SCryptPasswordEncoder newEncoder = new SCryptPasswordEncoder();
-
String password = "secret";
String oldEncodedPassword = oldEncoder.encode(password);
assertThat(newEncoder.matches(password, oldEncodedPassword)).isTrue();
@@ -140,10 +139,8 @@ public class SCryptPasswordEncoderTests {
public void upgradeEncodingWhenWeakerToStrongerThenFalse() {
SCryptPasswordEncoder weakEncoder = new SCryptPasswordEncoder((int) Math.pow(2, 10), 4, 1, 32, 64);
SCryptPasswordEncoder strongEncoder = new SCryptPasswordEncoder((int) Math.pow(2, 16), 8, 1, 32, 64);
-
String weakPassword = weakEncoder.encode("password");
String strongPassword = strongEncoder.encode("password");
-
assertThat(weakEncoder.upgradeEncoding(strongPassword)).isFalse();
}
@@ -151,10 +148,8 @@ public class SCryptPasswordEncoderTests {
public void upgradeEncodingWhenStrongerToWeakerThenTrue() {
SCryptPasswordEncoder weakEncoder = new SCryptPasswordEncoder((int) Math.pow(2, 10), 4, 1, 32, 64);
SCryptPasswordEncoder strongEncoder = new SCryptPasswordEncoder((int) Math.pow(2, 16), 8, 1, 32, 64);
-
String weakPassword = weakEncoder.encode("password");
String strongPassword = strongEncoder.encode("password");
-
assertThat(strongEncoder.upgradeEncoding(weakPassword)).isTrue();
}
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 38cd7e3f01..b4937afebb 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
@@ -49,7 +49,6 @@ public class SecurityEvaluationContextExtensionTests {
public void getRootObjectSecurityContextHolderAuthentication() {
TestingAuthenticationToken authentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
SecurityContextHolder.getContext().setAuthentication(authentication);
-
assertThat(getRoot().getAuthentication()).isSameAs(authentication);
}
@@ -57,10 +56,8 @@ public class SecurityEvaluationContextExtensionTests {
public void getRootObjectExplicitAuthenticationOverridesSecurityContextHolder() {
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
-
TestingAuthenticationToken authentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
SecurityContextHolder.getContext().setAuthentication(authentication);
-
assertThat(getRoot().getAuthentication()).isSameAs(explicit);
}
@@ -68,7 +65,6 @@ public class SecurityEvaluationContextExtensionTests {
public void getRootObjectExplicitAuthentication() {
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
-
assertThat(getRoot().getAuthentication()).isSameAs(explicit);
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/LdapUtilsTests.java b/ldap/src/test/java/org/springframework/security/ldap/LdapUtilsTests.java
index 7978c18b4b..ae84d19654 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/LdapUtilsTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/LdapUtilsTests.java
@@ -37,16 +37,13 @@ public class LdapUtilsTests {
public void testCloseContextSwallowsNamingException() throws Exception {
final DirContext dirCtx = mock(DirContext.class);
willThrow(new NamingException()).given(dirCtx).close();
-
LdapUtils.closeContext(dirCtx);
}
@Test
public void testGetRelativeNameReturnsEmptyStringForDnEqualToBaseName() throws Exception {
final DirContext mockCtx = mock(DirContext.class);
-
given(mockCtx.getNameInNamespace()).willReturn("dc=springframework,dc=org");
-
assertThat(LdapUtils.getRelativeName("dc=springframework,dc=org", mockCtx)).isEqualTo("");
}
@@ -54,7 +51,6 @@ public class LdapUtilsTests {
public void testGetRelativeNameReturnsFullDnWithEmptyBaseName() throws Exception {
final DirContext mockCtx = mock(DirContext.class);
given(mockCtx.getNameInNamespace()).willReturn("");
-
assertThat(LdapUtils.getRelativeName("cn=jane,dc=springframework,dc=org", mockCtx))
.isEqualTo("cn=jane,dc=springframework,dc=org");
}
@@ -63,7 +59,6 @@ public class LdapUtilsTests {
public void testGetRelativeNameWorksWithArbitrarySpaces() throws Exception {
final DirContext mockCtx = mock(DirContext.class);
given(mockCtx.getNameInNamespace()).willReturn("dc=springsecurity,dc = org");
-
assertThat(LdapUtils.getRelativeName("cn=jane smith, dc = springsecurity , dc=org", mockCtx))
.isEqualTo("cn=jane smith");
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityAuthenticationSourceTests.java b/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityAuthenticationSourceTests.java
index e7e0b487f1..1b8f25afad 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityAuthenticationSourceTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityAuthenticationSourceTests.java
@@ -52,7 +52,6 @@ public class SpringSecurityAuthenticationSourceTests {
@Test
public void principalIsEmptyForAnonymousUser() {
AuthenticationSource source = new SpringSecurityAuthenticationSource();
-
SecurityContextHolder.getContext().setAuthentication(
new AnonymousAuthenticationToken("key", "anonUser", AuthorityUtils.createAuthorityList("ignored")));
assertThat(source.getPrincipal()).isEqualTo("");
@@ -62,7 +61,6 @@ public class SpringSecurityAuthenticationSourceTests {
public void getPrincipalRejectsNonLdapUserDetailsObject() {
AuthenticationSource source = new SpringSecurityAuthenticationSource();
SecurityContextHolder.getContext().setAuthentication(new TestingAuthenticationToken(new Object(), "password"));
-
source.getPrincipal();
}
@@ -70,7 +68,6 @@ public class SpringSecurityAuthenticationSourceTests {
public void expectedCredentialsAreReturned() {
AuthenticationSource source = new SpringSecurityAuthenticationSource();
SecurityContextHolder.getContext().setAuthentication(new TestingAuthenticationToken(new Object(), "password"));
-
assertThat(source.getCredentials()).isEqualTo("password");
}
@@ -82,7 +79,6 @@ public class SpringSecurityAuthenticationSourceTests {
AuthenticationSource source = new SpringSecurityAuthenticationSource();
SecurityContextHolder.getContext()
.setAuthentication(new TestingAuthenticationToken(user.createUserDetails(), null));
-
assertThat(source.getPrincipal()).isEqualTo("uid=joe,ou=users");
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityLdapTemplateTests.java b/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityLdapTemplateTests.java
index 082392d6d5..5494ae1490 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityLdapTemplateTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/SpringSecurityLdapTemplateTests.java
@@ -60,16 +60,13 @@ public class SpringSecurityLdapTemplateTests {
String searchResultName = "ldap://example.com/dc=springframework,dc=org";
Object[] params = new Object[] {};
DirContextAdapter searchResultObject = mock(DirContextAdapter.class);
-
given(this.ctx.search(any(DistinguishedName.class), eq(filter), eq(params), this.searchControls.capture()))
.willReturn(this.resultsEnum);
given(this.resultsEnum.hasMore()).willReturn(true, false);
given(this.resultsEnum.next()).willReturn(this.searchResult);
given(this.searchResult.getObject()).willReturn(searchResultObject);
-
SpringSecurityLdapTemplate.searchForSingleEntryInternal(this.ctx, mock(SearchControls.class), base, filter,
params);
-
assertThat(this.searchControls.getValue().getReturningObjFlag()).isTrue();
}
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 fc090ac0a7..cf6b6eefcc 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
@@ -53,7 +53,6 @@ public class LdapAuthenticationProviderTests {
public void testSupportsUsernamePasswordAuthenticationToken() {
LdapAuthenticationProvider ldapProvider = new LdapAuthenticationProvider(new MockAuthenticator(),
new MockAuthoritiesPopulator());
-
assertThat(ldapProvider.supports(UsernamePasswordAuthenticationToken.class)).isTrue();
}
@@ -61,7 +60,6 @@ public class LdapAuthenticationProviderTests {
public void testDefaultMapperIsSet() {
LdapAuthenticationProvider ldapProvider = new LdapAuthenticationProvider(new MockAuthenticator(),
new MockAuthoritiesPopulator());
-
assertThat(ldapProvider.getUserDetailsContextMapper() instanceof LdapUserDetailsMapper).isTrue();
}
@@ -69,14 +67,12 @@ public class LdapAuthenticationProviderTests {
public void testEmptyOrNullUserNameThrowsException() {
LdapAuthenticationProvider ldapProvider = new LdapAuthenticationProvider(new MockAuthenticator(),
new MockAuthoritiesPopulator());
-
try {
ldapProvider.authenticate(new UsernamePasswordAuthenticationToken(null, "password"));
fail("Expected BadCredentialsException for empty username");
}
catch (BadCredentialsException expected) {
}
-
try {
ldapProvider.authenticate(new UsernamePasswordAuthenticationToken("", "bobspassword"));
fail("Expected BadCredentialsException for null username");
@@ -90,7 +86,6 @@ public class LdapAuthenticationProviderTests {
final LdapAuthenticator authenticator = mock(LdapAuthenticator.class);
final UsernamePasswordAuthenticationToken joe = new UsernamePasswordAuthenticationToken("joe", "password");
given(authenticator.authenticate(joe)).willThrow(new UsernameNotFoundException("nobody"));
-
LdapAuthenticationProvider provider = new LdapAuthenticationProvider(authenticator);
provider.authenticate(joe);
}
@@ -100,7 +95,6 @@ public class LdapAuthenticationProviderTests {
final LdapAuthenticator authenticator = mock(LdapAuthenticator.class);
final UsernamePasswordAuthenticationToken joe = new UsernamePasswordAuthenticationToken("joe", "password");
given(authenticator.authenticate(joe)).willThrow(new UsernameNotFoundException("nobody"));
-
LdapAuthenticationProvider provider = new LdapAuthenticationProvider(authenticator);
provider.setHideUserNotFoundExceptions(false);
provider.authenticate(joe);
@@ -113,9 +107,7 @@ public class LdapAuthenticationProviderTests {
LdapUserDetailsMapper userMapper = new LdapUserDetailsMapper();
userMapper.setRoleAttributes(new String[] { "ou" });
ldapProvider.setUserDetailsContextMapper(userMapper);
-
assertThat(ldapProvider.getAuthoritiesPopulator()).isNotNull();
-
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken("ben",
"benspassword");
Object authDetails = new Object();
@@ -128,7 +120,6 @@ public class LdapAuthenticationProviderTests {
assertThat(user.getPassword()).isEqualTo("{SHA}nFCebWjxfaLbHHG1Qk5UU4trbvQ=");
assertThat(user.getUsername()).isEqualTo("ben");
assertThat(populator.getRequestedUsername()).isEqualTo("ben");
-
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())).contains("ROLE_FROM_ENTRY");
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())).contains("ROLE_FROM_POPULATOR");
}
@@ -138,12 +129,10 @@ public class LdapAuthenticationProviderTests {
LdapAuthenticationProvider ldapProvider = new LdapAuthenticationProvider(new MockAuthenticator(),
new MockAuthoritiesPopulator());
ldapProvider.setUseAuthenticationRequestCredentials(false);
-
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken("ben",
"benspassword");
Authentication authResult = ldapProvider.authenticate(authRequest);
assertThat(authResult.getCredentials()).isEqualTo("{SHA}nFCebWjxfaLbHHG1Qk5UU4trbvQ=");
-
}
@Test
@@ -166,7 +155,6 @@ public class LdapAuthenticationProviderTests {
LdapAuthenticator mockAuthenticator = mock(LdapAuthenticator.class);
CommunicationException expectedCause = new CommunicationException(new javax.naming.CommunicationException());
given(mockAuthenticator.authenticate(authRequest)).willThrow(expectedCause);
-
LdapAuthenticationProvider ldapProvider = new LdapAuthenticationProvider(mockAuthenticator);
try {
ldapProvider.authenticate(authRequest);
@@ -185,19 +173,15 @@ public class LdapAuthenticationProviderTests {
ctx.setAttributeValue("ou", "FROM_ENTRY");
String username = authentication.getName();
String password = (String) authentication.getCredentials();
-
if (username.equals("ben") && password.equals("benspassword")) {
ctx.setDn(new DistinguishedName("cn=ben,ou=people,dc=springframework,dc=org"));
ctx.setAttributeValue("userPassword", "{SHA}nFCebWjxfaLbHHG1Qk5UU4trbvQ=");
-
return ctx;
}
else if (username.equals("jen") && password.equals("")) {
ctx.setDn(new DistinguishedName("cn=jen,ou=people,dc=springframework,dc=org"));
-
return ctx;
}
-
throw new BadCredentialsException("Authentication failed.");
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticatorMockTests.java b/ldap/src/test/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticatorMockTests.java
index e5c10d8798..7a1a8e35bd 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticatorMockTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticatorMockTests.java
@@ -43,22 +43,16 @@ public class PasswordComparisonAuthenticatorMockTests {
final BaseLdapPathContextSource source = mock(BaseLdapPathContextSource.class);
final BasicAttributes attrs = new BasicAttributes();
attrs.put(new BasicAttribute("uid", "bob"));
-
PasswordComparisonAuthenticator authenticator = new PasswordComparisonAuthenticator(source);
-
authenticator.setUserDnPatterns(new String[] { "cn={0},ou=people" });
-
// Get the mock to return an empty attribute set
given(source.getReadOnlyContext()).willReturn(dirCtx);
given(dirCtx.getAttributes(eq("cn=Bob,ou=people"), any(String[].class))).willReturn(attrs);
given(dirCtx.getNameInNamespace()).willReturn("dc=springframework,dc=org");
-
// Setup a single return value (i.e. success)
final NamingEnumeration searchResults = new BasicAttributes("", null).getAll();
-
given(dirCtx.search(eq("cn=Bob,ou=people"), eq("(userPassword={0})"), any(Object[].class),
any(SearchControls.class))).willReturn(searchResults);
-
authenticator.authenticate(new UsernamePasswordAuthenticationToken("Bob", "bobspassword"));
}
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 b3c3a78d34..8272ec247f 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
@@ -98,43 +98,33 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
@Test
public void customSearchFilterIsUsedForSuccessfulAuthentication() throws Exception {
String customSearchFilter = "(&(objectClass=user)(sAMAccountName={0}))";
-
DirContext ctx = mock(DirContext.class);
given(ctx.getNameInNamespace()).willReturn("");
-
DirContextAdapter dca = new DirContextAdapter();
SearchResult sr = new SearchResult("CN=Joe Jannsen,CN=Users", dca, dca.getAttributes());
given(ctx.search(any(Name.class), eq(customSearchFilter), any(Object[].class), any(SearchControls.class)))
.willReturn(new MockNamingEnumeration(sr));
-
ActiveDirectoryLdapAuthenticationProvider customProvider = new ActiveDirectoryLdapAuthenticationProvider(
"mydomain.eu", "ldap://192.168.1.200/");
customProvider.contextFactory = createContextFactoryReturning(ctx);
-
customProvider.setSearchFilter(customSearchFilter);
Authentication result = customProvider.authenticate(this.joe);
-
assertThat(result.isAuthenticated()).isTrue();
}
@Test
public void defaultSearchFilter() throws Exception {
final String defaultSearchFilter = "(&(objectClass=user)(userPrincipalName={0}))";
-
DirContext ctx = mock(DirContext.class);
given(ctx.getNameInNamespace()).willReturn("");
-
DirContextAdapter dca = new DirContextAdapter();
SearchResult sr = new SearchResult("CN=Joe Jannsen,CN=Users", dca, dca.getAttributes());
given(ctx.search(any(Name.class), eq(defaultSearchFilter), any(Object[].class), any(SearchControls.class)))
.willReturn(new MockNamingEnumeration(sr));
-
ActiveDirectoryLdapAuthenticationProvider customProvider = new ActiveDirectoryLdapAuthenticationProvider(
"mydomain.eu", "ldap://192.168.1.200/");
customProvider.contextFactory = createContextFactoryReturning(ctx);
-
Authentication result = customProvider.authenticate(this.joe);
-
assertThat(result.isAuthenticated()).isTrue();
verify(ctx).search(any(DistinguishedName.class), eq(defaultSearchFilter), any(Object[].class),
any(SearchControls.class));
@@ -145,21 +135,16 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
public void bindPrincipalAndUsernameUsed() throws Exception {
final String defaultSearchFilter = "(&(objectClass=user)(userPrincipalName={0}))";
ArgumentCaptor captor = ArgumentCaptor.forClass(Object[].class);
-
DirContext ctx = mock(DirContext.class);
given(ctx.getNameInNamespace()).willReturn("");
-
DirContextAdapter dca = new DirContextAdapter();
SearchResult sr = new SearchResult("CN=Joe Jannsen,CN=Users", dca, dca.getAttributes());
given(ctx.search(any(Name.class), eq(defaultSearchFilter), captor.capture(), any(SearchControls.class)))
.willReturn(new MockNamingEnumeration(sr));
-
ActiveDirectoryLdapAuthenticationProvider customProvider = new ActiveDirectoryLdapAuthenticationProvider(
"mydomain.eu", "ldap://192.168.1.200/");
customProvider.contextFactory = createContextFactoryReturning(ctx);
-
Authentication result = customProvider.authenticate(this.joe);
-
assertThat(captor.getValue()).containsExactly("joe@mydomain.eu", "joe");
assertThat(result.isAuthenticated()).isTrue();
}
@@ -179,20 +164,17 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
this.provider = new ActiveDirectoryLdapAuthenticationProvider(null, "ldap://192.168.1.200/");
DirContext ctx = mock(DirContext.class);
given(ctx.getNameInNamespace()).willReturn("");
-
DirContextAdapter dca = new DirContextAdapter();
SearchResult sr = new SearchResult("CN=Joe Jannsen,CN=Users", dca, dca.getAttributes());
given(ctx.search(eq(new DistinguishedName("DC=mydomain,DC=eu")), any(String.class), any(Object[].class),
any(SearchControls.class))).willReturn(new MockNamingEnumeration(sr));
this.provider.contextFactory = createContextFactoryReturning(ctx);
-
try {
this.provider.authenticate(this.joe);
fail("Expected BadCredentialsException for user with no domain information");
}
catch (BadCredentialsException expected) {
}
-
this.provider.authenticate(new UsernamePasswordAuthenticationToken("joe@mydomain.eu", "password"));
}
@@ -202,9 +184,7 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
given(ctx.getNameInNamespace()).willReturn("");
given(ctx.search(any(Name.class), any(String.class), any(Object[].class), any(SearchControls.class)))
.willThrow(new NameNotFoundException());
-
this.provider.contextFactory = createContextFactoryReturning(ctx);
-
this.provider.authenticate(this.joe);
}
@@ -215,9 +195,7 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
given(ctx.getNameInNamespace()).willReturn("");
given(ctx.search(any(Name.class), any(String.class), any(Object[].class), any(SearchControls.class)))
.willReturn(new EmptyEnumeration<>());
-
this.provider.contextFactory = createContextFactoryReturning(ctx);
-
this.provider.authenticate(this.joe);
}
@@ -239,9 +217,7 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
given(searchResults.next()).willReturn(searchResult);
given(ctx.search(any(Name.class), any(String.class), any(Object[].class), any(SearchControls.class)))
.willReturn(searchResults);
-
this.provider.contextFactory = createContextFactoryReturning(ctx);
-
this.provider.authenticate(this.joe);
}
@@ -274,7 +250,6 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
this.provider.contextFactory = createContextFactoryThrowing(
new AuthenticationException(msg + dataCode + ", xxxx]"));
this.provider.setConvertSubErrorCodesToExceptions(true);
-
this.thrown.expect(BadCredentialsException.class);
this.thrown.expect(new BaseMatcher() {
private Matcher causeInstance = CoreMatchers
@@ -297,21 +272,18 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
this.causeDataCode.describeTo(desc);
}
});
-
this.provider.authenticate(this.joe);
}
@Test(expected = CredentialsExpiredException.class)
public void expiredPasswordIsCorrectlyMapped() {
this.provider.contextFactory = createContextFactoryThrowing(new AuthenticationException(msg + "532, xxxx]"));
-
try {
this.provider.authenticate(this.joe);
fail("BadCredentialsException should had been thrown");
}
catch (BadCredentialsException expected) {
}
-
this.provider.setConvertSubErrorCodesToExceptions(true);
this.provider.authenticate(this.joe);
}
@@ -379,7 +351,6 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(
"mydomain.eu", EXISTING_LDAP_PROVIDER, "dc=ad,dc=eu,dc=mydomain");
checkAuthentication("dc=ad,dc=eu,dc=mydomain", provider);
-
}
@Test(expected = IllegalArgumentException.class)
@@ -395,10 +366,8 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
@Test
public void contextEnvironmentPropertiesUsed() {
Hashtable env = new Hashtable<>();
-
env.put("java.naming.ldap.factory.socket", "unknown.package.NonExistingSocketFactory");
this.provider.setContextEnvironmentProperties(env);
-
try {
this.provider.authenticate(this.joe);
fail("CommunicationException was expected with a root cause of ClassNotFoundException");
@@ -433,24 +402,17 @@ public class ActiveDirectoryLdapAuthenticationProviderTests {
throws NamingException {
DirContext ctx = mock(DirContext.class);
given(ctx.getNameInNamespace()).willReturn("");
-
DirContextAdapter dca = new DirContextAdapter();
SearchResult sr = new SearchResult("CN=Joe Jannsen,CN=Users", dca, dca.getAttributes());
@SuppressWarnings("deprecation")
DistinguishedName searchBaseDn = new DistinguishedName(rootDn);
given(ctx.search(eq(searchBaseDn), any(String.class), any(Object[].class), any(SearchControls.class)))
.willReturn(new MockNamingEnumeration(sr)).willReturn(new MockNamingEnumeration(sr));
-
provider.contextFactory = createContextFactoryReturning(ctx);
-
Authentication result = provider.authenticate(this.joe);
-
assertThat(result.getAuthorities()).isEmpty();
-
dca.addAttributeValue("memberOf", "CN=Admin,CN=Users,DC=mydomain,DC=eu");
-
result = provider.authenticate(this.joe);
-
assertThat(result.getAuthorities()).hasSize(1);
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyAwareContextSourceTests.java b/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyAwareContextSourceTests.java
index 0f0ffef89f..84cc77f851 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyAwareContextSourceTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyAwareContextSourceTests.java
@@ -54,7 +54,6 @@ public class PasswordPolicyAwareContextSourceTests {
if ("manager".equals(env.get(Context.SECURITY_PRINCIPAL))) {
return PasswordPolicyAwareContextSourceTests.this.ctx;
}
-
return null;
}
};
@@ -71,7 +70,6 @@ public class PasswordPolicyAwareContextSourceTests {
@Test(expected = UncategorizedLdapException.class)
public void standardExceptionIsPropagatedWhenExceptionRaisedAndNoControlsAreSet() throws Exception {
willThrow(new NamingException("some LDAP exception")).given(this.ctx).reconnect(any(Control[].class));
-
this.ctxSource.getContext("user", "ignored");
}
@@ -79,9 +77,7 @@ public class PasswordPolicyAwareContextSourceTests {
public void lockedPasswordPolicyControlRaisesPasswordPolicyException() throws Exception {
given(this.ctx.getResponseControls()).willReturn(new Control[] {
new PasswordPolicyResponseControl(PasswordPolicyResponseControlTests.OPENLDAP_LOCKED_CTRL) });
-
willThrow(new NamingException("locked message")).given(this.ctx).reconnect(any(Control[].class));
-
this.ctxSource.getContext("user", "ignored");
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactoryTests.java b/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactoryTests.java
index 2572727594..50babf5437 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactoryTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControlFactoryTests.java
@@ -33,7 +33,6 @@ public class PasswordPolicyControlFactoryTests {
public void returnsNullForUnrecognisedOID() {
PasswordPolicyControlFactory ctrlFactory = new PasswordPolicyControlFactory();
Control wrongCtrl = mock(Control.class);
-
given(wrongCtrl.getID()).willReturn("wrongId");
assertThat(ctrlFactory.getControlInstance(wrongCtrl)).isNull();
}
@@ -42,7 +41,6 @@ public class PasswordPolicyControlFactoryTests {
public void returnsControlForCorrectOID() {
PasswordPolicyControlFactory ctrlFactory = new PasswordPolicyControlFactory();
Control control = mock(Control.class);
-
given(control.getID()).willReturn(PasswordPolicyControl.OID);
given(control.getEncodedValue()).willReturn(PasswordPolicyResponseControlTests.OPENLDAP_LOCKED_CTRL);
Control result = ctrlFactory.getControlInstance(control);
diff --git a/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControlTests.java b/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControlTests.java
index ebca7d35ba..0422f10ef7 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControlTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControlTests.java
@@ -66,7 +66,6 @@ public class PasswordPolicyResponseControlTests {
//
// //com.sun.jndi.ldap.LdapPoolManager.showStats(System.out);
// }
-
// private PasswordPolicyResponseControl getPPolicyResponseCtl(InitialLdapContext ctx)
// throws NamingException {
// Control[] ctrls = ctx.getResponseControls();
@@ -79,13 +78,10 @@ public class PasswordPolicyResponseControlTests {
//
// return null;
// }
-
@Test
public void openLDAP33SecondsTillPasswordExpiryCtrlIsParsedCorrectly() {
byte[] ctrlBytes = { 0x30, 0x05, (byte) 0xA0, 0x03, (byte) 0xA0, 0x1, 0x21 };
-
PasswordPolicyResponseControl ctrl = new PasswordPolicyResponseControl(ctrlBytes);
-
assertThat(ctrl.hasWarning()).isTrue();
assertThat(ctrl.getTimeBeforeExpiration()).isEqualTo(33);
}
@@ -93,9 +89,7 @@ public class PasswordPolicyResponseControlTests {
@Test
public void openLDAP496GraceLoginsRemainingCtrlIsParsedCorrectly() {
byte[] ctrlBytes = { 0x30, 0x06, (byte) 0xA0, 0x04, (byte) 0xA1, 0x02, 0x01, (byte) 0xF0 };
-
PasswordPolicyResponseControl ctrl = new PasswordPolicyResponseControl(ctrlBytes);
-
assertThat(ctrl.hasWarning()).isTrue();
assertThat(ctrl.getGraceLoginsRemaining()).isEqualTo(496);
}
@@ -105,7 +99,6 @@ public class PasswordPolicyResponseControlTests {
@Test
public void openLDAP5GraceLoginsRemainingCtrlIsParsedCorrectly() {
PasswordPolicyResponseControl ctrl = new PasswordPolicyResponseControl(OPENLDAP_5_LOGINS_REMAINING_CTRL);
-
assertThat(ctrl.hasWarning()).isTrue();
assertThat(ctrl.getGraceLoginsRemaining()).isEqualTo(5);
}
@@ -115,7 +108,6 @@ public class PasswordPolicyResponseControlTests {
@Test
public void openLDAPAccountLockedCtrlIsParsedCorrectly() {
PasswordPolicyResponseControl ctrl = new PasswordPolicyResponseControl(OPENLDAP_LOCKED_CTRL);
-
assertThat(ctrl.hasError() && ctrl.isLocked()).isTrue();
assertThat(ctrl.hasWarning()).isFalse();
}
@@ -123,9 +115,7 @@ public class PasswordPolicyResponseControlTests {
@Test
public void openLDAPPasswordExpiredCtrlIsParsedCorrectly() {
byte[] ctrlBytes = { 0x30, 0x03, (byte) 0xA1, 0x01, 0x00 };
-
PasswordPolicyResponseControl ctrl = new PasswordPolicyResponseControl(ctrlBytes);
-
assertThat(ctrl.hasError() && ctrl.isExpired()).isTrue();
assertThat(ctrl.hasWarning()).isFalse();
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/userdetails/InetOrgPersonTests.java b/ldap/src/test/java/org/springframework/security/ldap/userdetails/InetOrgPersonTests.java
index 1f1e767efe..5e007f84ed 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/userdetails/InetOrgPersonTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/userdetails/InetOrgPersonTests.java
@@ -35,7 +35,6 @@ public class InetOrgPersonTests {
public void testUsernameIsMappedFromContextUidIfNotSet() {
InetOrgPerson.Essence essence = new InetOrgPerson.Essence(createUserContext());
InetOrgPerson p = (InetOrgPerson) essence.createUserDetails();
-
assertThat(p.getUsername()).isEqualTo("ghengis");
}
@@ -55,7 +54,6 @@ public class InetOrgPersonTests {
InetOrgPerson.Essence essence = new InetOrgPerson.Essence(createUserContext());
essence.setUsername("joe");
InetOrgPerson p = (InetOrgPerson) essence.createUserDetails();
-
assertThat(p.getUsername()).isEqualTo("joe");
assertThat(p.getUid()).isEqualTo("ghengis");
}
@@ -64,7 +62,6 @@ public class InetOrgPersonTests {
public void attributesMapCorrectlyFromContext() {
InetOrgPerson.Essence essence = new InetOrgPerson.Essence(createUserContext());
InetOrgPerson p = (InetOrgPerson) essence.createUserDetails();
-
assertThat(p.getCarLicense()).isEqualTo("HORS1");
assertThat(p.getMail()).isEqualTo("ghengis@mongolia");
assertThat(p.getGivenName()).isEqualTo("Ghengis");
@@ -89,7 +86,6 @@ public class InetOrgPersonTests {
public void testPasswordIsSetFromContextUserPassword() {
InetOrgPerson.Essence essence = new InetOrgPerson.Essence(createUserContext());
InetOrgPerson p = (InetOrgPerson) essence.createUserDetails();
-
assertThat(p.getPassword()).isEqualTo("pillage");
}
@@ -102,7 +98,6 @@ public class InetOrgPersonTests {
ctx2.setDn(new DistinguishedName("ignored=ignored"));
InetOrgPerson p = (InetOrgPerson) (new InetOrgPerson.Essence(ctx1)).createUserDetails();
p.populateContext(ctx2);
-
assertThat(ctx2).isEqualTo(ctx1);
}
@@ -116,13 +111,11 @@ public class InetOrgPersonTests {
InetOrgPerson p = (InetOrgPerson) (new InetOrgPerson.Essence(ctx1)).createUserDetails();
InetOrgPerson p2 = (InetOrgPerson) new InetOrgPerson.Essence(p).createUserDetails();
p2.populateContext(ctx2);
-
assertThat(ctx2).isEqualTo(ctx1);
}
private DirContextAdapter createUserContext() {
DirContextAdapter ctx = new DirContextAdapter();
-
ctx.setDn(new DistinguishedName("ignored=ignored"));
ctx.setAttributeValue("uid", "ghengis");
ctx.setAttributeValue("userPassword", "pillage");
@@ -147,7 +140,6 @@ public class InetOrgPersonTests {
ctx.setAttributeValue("sn", "Khan");
ctx.setAttributeValue("street", "Westward Avenue");
ctx.setAttributeValue("telephoneNumber", "+442075436521");
-
return ctx;
}
diff --git a/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsImplTests.java b/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsImplTests.java
index 7671e06211..e803d89288 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsImplTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsImplTests.java
@@ -35,7 +35,6 @@ public class LdapUserDetailsImplTests {
mutableLdapUserDetails.setDn("uid=username1,ou=people,dc=example,dc=com");
mutableLdapUserDetails.setUsername("username1");
mutableLdapUserDetails.setPassword("password");
-
LdapUserDetails ldapUserDetails = mutableLdapUserDetails.createUserDetails();
assertThat(ldapUserDetails).isInstanceOf(CredentialsContainer.class);
ldapUserDetails.eraseCredentials();
diff --git a/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsMapperTests.java b/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsMapperTests.java
index 40dfe14fc9..e0205051e3 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsMapperTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsMapperTests.java
@@ -40,17 +40,12 @@ public class LdapUserDetailsMapperTests {
LdapUserDetailsMapper mapper = new LdapUserDetailsMapper();
mapper.setConvertToUpperCase(false);
mapper.setRolePrefix("");
-
mapper.setRoleAttributes(new String[] { "userRole" });
-
DirContextAdapter ctx = new DirContextAdapter();
-
ctx.setAttributeValues("userRole", new String[] { "X", "Y", "Z" });
ctx.setAttributeValue("uid", "ani");
-
LdapUserDetailsImpl user = (LdapUserDetailsImpl) mapper.mapUserFromContext(ctx, "ani",
AuthorityUtils.NO_AUTHORITIES);
-
assertThat(user.getAuthorities()).hasSize(3);
}
@@ -60,18 +55,13 @@ public class LdapUserDetailsMapperTests {
@Test
public void testNonRetrievedRoleAttributeIsIgnored() {
LdapUserDetailsMapper mapper = new LdapUserDetailsMapper();
-
mapper.setRoleAttributes(new String[] { "userRole", "nonRetrievedAttribute" });
-
BasicAttributes attrs = new BasicAttributes();
attrs.put(new BasicAttribute("userRole", "x"));
-
DirContextAdapter ctx = new DirContextAdapter(attrs, new DistinguishedName("cn=someName"));
ctx.setAttributeValue("uid", "ani");
-
LdapUserDetailsImpl user = (LdapUserDetailsImpl) mapper.mapUserFromContext(ctx, "ani",
AuthorityUtils.NO_AUTHORITIES);
-
assertThat(user.getAuthorities()).hasSize(1);
assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())).contains("ROLE_X");
}
@@ -79,17 +69,13 @@ public class LdapUserDetailsMapperTests {
@Test
public void testPasswordAttributeIsMappedCorrectly() {
LdapUserDetailsMapper mapper = new LdapUserDetailsMapper();
-
mapper.setPasswordAttributeName("myappsPassword");
BasicAttributes attrs = new BasicAttributes();
attrs.put(new BasicAttribute("myappsPassword", "mypassword".getBytes()));
-
DirContextAdapter ctx = new DirContextAdapter(attrs, new DistinguishedName("cn=someName"));
ctx.setAttributeValue("uid", "ani");
-
LdapUserDetails user = (LdapUserDetailsImpl) mapper.mapUserFromContext(ctx, "ani",
AuthorityUtils.NO_AUTHORITIES);
-
assertThat(user.getPassword()).isEqualTo("mypassword");
}
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 5ef160ca9a..3dfd7c53dd 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
@@ -52,13 +52,10 @@ public class LdapUserDetailsServiceTests {
@Test
public void correctAuthoritiesAreReturned() {
DirContextAdapter userData = new DirContextAdapter(new DistinguishedName("uid=joe"));
-
LdapUserDetailsService service = new LdapUserDetailsService(new MockUserSearch(userData),
new MockAuthoritiesPopulator());
service.setUserDetailsMapper(new LdapUserDetailsMapper());
-
UserDetails user = service.loadUserByUsername("doesntmatterwegetjoeanyway");
-
Set authorities = AuthorityUtils.authorityListToSet(user.getAuthorities());
assertThat(authorities).hasSize(1);
assertThat(authorities.contains("ROLE_FROM_POPULATOR")).isTrue();
@@ -67,7 +64,6 @@ public class LdapUserDetailsServiceTests {
@Test
public void nullPopulatorConstructorReturnsEmptyAuthoritiesList() {
DirContextAdapter userData = new DirContextAdapter(new DistinguishedName("uid=joe"));
-
LdapUserDetailsService service = new LdapUserDetailsService(new MockUserSearch(userData));
UserDetails user = service.loadUserByUsername("doesntmatterwegetjoeanyway");
assertThat(user.getAuthorities()).isEmpty();
diff --git a/ldap/src/test/java/org/springframework/security/ldap/userdetails/UserDetailsServiceLdapAuthoritiesPopulatorTests.java b/ldap/src/test/java/org/springframework/security/ldap/userdetails/UserDetailsServiceLdapAuthoritiesPopulatorTests.java
index cfdb2267c4..09ea5382e6 100644
--- a/ldap/src/test/java/org/springframework/security/ldap/userdetails/UserDetailsServiceLdapAuthoritiesPopulatorTests.java
+++ b/ldap/src/test/java/org/springframework/security/ldap/userdetails/UserDetailsServiceLdapAuthoritiesPopulatorTests.java
@@ -44,10 +44,8 @@ public class UserDetailsServiceLdapAuthoritiesPopulatorTests {
given(uds.loadUserByUsername("joe")).willReturn(user);
List authorities = AuthorityUtils.createAuthorityList("ROLE_USER");
given(user.getAuthorities()).willReturn(authorities);
-
UserDetailsServiceLdapAuthoritiesPopulator populator = new UserDetailsServiceLdapAuthoritiesPopulator(uds);
Collection extends GrantedAuthority> auths = populator.getGrantedAuthorities(new DirContextAdapter(), "joe");
-
assertThat(auths).hasSize(1);
assertThat(AuthorityUtils.authorityListToSet(auths).contains("ROLE_USER")).isTrue();
}
diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/expression/DefaultMessageSecurityExpressionHandlerTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/expression/DefaultMessageSecurityExpressionHandlerTests.java
index 3a23553cca..13277bc737 100644
--- a/messaging/src/test/java/org/springframework/security/messaging/access/expression/DefaultMessageSecurityExpressionHandlerTests.java
+++ b/messaging/src/test/java/org/springframework/security/messaging/access/expression/DefaultMessageSecurityExpressionHandlerTests.java
@@ -56,7 +56,6 @@ public class DefaultMessageSecurityExpressionHandlerTests {
@Before
public void setup() {
this.handler = new DefaultMessageSecurityExpressionHandler<>();
-
this.message = new GenericMessage<>("");
this.authentication = new AnonymousAuthenticationToken("key", "anonymous",
AuthorityUtils.createAuthorityList("ROLE_ANONYMOUS"));
@@ -67,7 +66,6 @@ public class DefaultMessageSecurityExpressionHandlerTests {
public void trustResolverPopulated() {
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.message);
Expression expression = this.handler.getExpressionParser().parseExpression("authenticated");
-
assertThat(ExpressionUtils.evaluateAsBoolean(expression, context)).isFalse();
}
@@ -82,7 +80,6 @@ public class DefaultMessageSecurityExpressionHandlerTests {
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.message);
Expression expression = this.handler.getExpressionParser().parseExpression("authenticated");
given(this.trustResolver.isAnonymous(this.authentication)).willReturn(false);
-
assertThat(ExpressionUtils.evaluateAsBoolean(expression, context)).isTrue();
}
@@ -94,7 +91,6 @@ public class DefaultMessageSecurityExpressionHandlerTests {
this.handler.setRoleHierarchy(roleHierarchy);
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.message);
Expression expression = this.handler.getExpressionParser().parseExpression("hasRole('ROLE_USER')");
-
assertThat(ExpressionUtils.evaluateAsBoolean(expression, context)).isTrue();
}
@@ -104,7 +100,6 @@ public class DefaultMessageSecurityExpressionHandlerTests {
EvaluationContext context = this.handler.createEvaluationContext(this.authentication, this.message);
Expression expression = this.handler.getExpressionParser().parseExpression("hasPermission(message, 'read')");
given(this.permissionEvaluator.hasPermission(this.authentication, this.message, "read")).willReturn(true);
-
assertThat(ExpressionUtils.evaluateAsBoolean(expression, context)).isTrue();
}
diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/expression/ExpressionBasedMessageSecurityMetadataSourceFactoryTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/expression/ExpressionBasedMessageSecurityMetadataSourceFactoryTests.java
index 98a01be6b5..f4a66f8761 100644
--- a/messaging/src/test/java/org/springframework/security/messaging/access/expression/ExpressionBasedMessageSecurityMetadataSourceFactoryTests.java
+++ b/messaging/src/test/java/org/springframework/security/messaging/access/expression/ExpressionBasedMessageSecurityMetadataSourceFactoryTests.java
@@ -66,7 +66,6 @@ public class ExpressionBasedMessageSecurityMetadataSourceFactoryTests {
this.matcherToExpression = new LinkedHashMap<>();
this.matcherToExpression.put(this.matcher1, this.expression1);
this.matcherToExpression.put(this.matcher2, this.expression2);
-
this.source = ExpressionBasedMessageSecurityMetadataSourceFactory
.createExpressionMessageMetadataSource(this.matcherToExpression);
this.rootObject = new MessageSecurityExpressionRoot(this.authentication, this.message);
@@ -74,18 +73,14 @@ public class ExpressionBasedMessageSecurityMetadataSourceFactoryTests {
@Test
public void createExpressionMessageMetadataSourceNoMatch() {
-
Collection attrs = this.source.getAttributes(this.message);
-
assertThat(attrs).isNull();
}
@Test
public void createExpressionMessageMetadataSourceMatchFirst() {
given(this.matcher1.matches(this.message)).willReturn(true);
-
Collection attrs = this.source.getAttributes(this.message);
-
assertThat(attrs).hasSize(1);
ConfigAttribute attr = attrs.iterator().next();
assertThat(attr).isInstanceOf(MessageExpressionConfigAttribute.class);
@@ -96,9 +91,7 @@ public class ExpressionBasedMessageSecurityMetadataSourceFactoryTests {
@Test
public void createExpressionMessageMetadataSourceMatchSecond() {
given(this.matcher2.matches(this.message)).willReturn(true);
-
Collection attrs = this.source.getAttributes(this.message);
-
assertThat(attrs).hasSize(1);
ConfigAttribute attr = attrs.iterator().next();
assertThat(attr).isInstanceOf(MessageExpressionConfigAttribute.class);
diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java
index 0add3f1d23..27918fa51a 100644
--- a/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java
+++ b/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java
@@ -74,7 +74,6 @@ public class MessageExpressionConfigAttributeTests {
@Test
public void toStringUsesExpressionString() {
given(this.expression.getExpressionString()).willReturn("toString");
-
assertThat(this.attribute.toString()).isEqualTo(this.expression.getExpressionString());
}
@@ -84,10 +83,8 @@ public class MessageExpressionConfigAttributeTests {
Message> message = MessageBuilder.withPayload("M")
.setHeader(SimpMessageHeaderAccessor.DESTINATION_HEADER, "/topics/someTopic/sub1").build();
EvaluationContext context = mock(EvaluationContext.class);
-
this.attribute = new MessageExpressionConfigAttribute(this.expression, matcher);
this.attribute.postProcess(context, message);
-
verify(context).setVariable("topic", "someTopic");
}
diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionVoterTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionVoterTests.java
index fcd38b0553..700e2714cb 100644
--- a/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionVoterTests.java
+++ b/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionVoterTests.java
@@ -71,7 +71,6 @@ public class MessageExpressionVoterTests {
public void setup() {
this.attributes = Arrays
.asList(new MessageExpressionConfigAttribute(this.expression, this.matcher));
-
this.voter = new MessageExpressionVoter();
}
@@ -127,10 +126,8 @@ public class MessageExpressionVoterTests {
given(this.expressionHandler.createEvaluationContext(this.authentication, this.message))
.willReturn(this.evaluationContext);
given(this.expression.getValue(this.evaluationContext, Boolean.class)).willReturn(true);
-
assertThat(this.voter.vote(this.authentication, this.message, this.attributes))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
-
verify(this.expressionHandler).createEvaluationContext(this.authentication, this.message);
}
@@ -144,7 +141,6 @@ public class MessageExpressionVoterTests {
this.attributes = Arrays.asList(configAttribute);
given(configAttribute.postProcess(this.evaluationContext, this.message)).willReturn(this.evaluationContext);
given(this.expression.getValue(any(EvaluationContext.class), eq(Boolean.class))).willReturn(true);
-
assertThat(this.voter.vote(this.authentication, this.message, this.attributes))
.isEqualTo(AccessDecisionVoter.ACCESS_GRANTED);
verify(configAttribute).postProcess(this.evaluationContext, this.message);
diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptorTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptorTests.java
index 43da6ad2f6..94d546c32e 100644
--- a/messaging/src/test/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptorTests.java
+++ b/messaging/src/test/java/org/springframework/security/messaging/access/intercept/ChannelSecurityInterceptorTests.java
@@ -77,7 +77,6 @@ public class ChannelSecurityInterceptorTests {
this.interceptor = new ChannelSecurityInterceptor(this.source);
this.interceptor.setAccessDecisionManager(this.accessDecisionManager);
this.interceptor.setRunAsManager(this.runAsManager);
-
this.originalAuth = new TestingAuthenticationToken("user", "pass", "ROLE_USER");
SecurityContextHolder.getContext().setAuthentication(this.originalAuth);
}
@@ -110,9 +109,7 @@ public class ChannelSecurityInterceptorTests {
@Test
public void preSendGrant() {
given(this.source.getAttributes(this.message)).willReturn(this.attrs);
-
Message> result = this.interceptor.preSend(this.message, this.channel);
-
assertThat(result).isSameAs(this.message);
}
@@ -121,7 +118,6 @@ public class ChannelSecurityInterceptorTests {
given(this.source.getAttributes(this.message)).willReturn(this.attrs);
willThrow(new AccessDeniedException("")).given(this.accessDecisionManager).decide(any(Authentication.class),
eq(this.message), eq(this.attrs));
-
this.interceptor.preSend(this.message, this.channel);
}
@@ -131,13 +127,9 @@ public class ChannelSecurityInterceptorTests {
given(this.source.getAttributes(this.message)).willReturn(this.attrs);
given(this.runAsManager.buildRunAs(any(Authentication.class), any(), any(Collection.class)))
.willReturn(this.runAs);
-
Message> preSend = this.interceptor.preSend(this.message, this.channel);
-
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.runAs);
-
this.interceptor.postSend(preSend, this.channel, true);
-
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.originalAuth);
}
@@ -152,13 +144,9 @@ public class ChannelSecurityInterceptorTests {
given(this.source.getAttributes(this.message)).willReturn(this.attrs);
given(this.runAsManager.buildRunAs(any(Authentication.class), any(), any(Collection.class)))
.willReturn(this.runAs);
-
Message> preSend = this.interceptor.preSend(this.message, this.channel);
-
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.runAs);
-
this.interceptor.afterSendCompletion(preSend, this.channel, true, new RuntimeException());
-
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.originalAuth);
}
diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSourceTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSourceTests.java
index 037958cb4d..4bf00db940 100644
--- a/messaging/src/test/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSourceTests.java
+++ b/messaging/src/test/java/org/springframework/security/messaging/access/intercept/DefaultMessageSecurityMetadataSourceTests.java
@@ -63,7 +63,6 @@ public class DefaultMessageSecurityMetadataSourceTests {
this.messageMap = new LinkedHashMap<>();
this.messageMap.put(this.matcher1, Arrays.