Java Code Examples for org.springframework.security.config.web.server.ServerHttpSecurity#addFilterAt()
The following examples show how to use
org.springframework.security.config.web.server.ServerHttpSecurity#addFilterAt() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ResourceServerConfiguration.java From microservices-platform with Apache License 2.0 | 5 votes |
@Bean SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { //认证处理器 ReactiveAuthenticationManager customAuthenticationManager = new CustomAuthenticationManager(tokenStore); JsonAuthenticationEntryPoint entryPoint = new JsonAuthenticationEntryPoint(); //token转换器 ServerBearerTokenAuthenticationConverter tokenAuthenticationConverter = new ServerBearerTokenAuthenticationConverter(); tokenAuthenticationConverter.setAllowUriQueryParameter(true); //oauth2认证过滤器 AuthenticationWebFilter oauth2Filter = new AuthenticationWebFilter(customAuthenticationManager); oauth2Filter.setServerAuthenticationConverter(tokenAuthenticationConverter); oauth2Filter.setAuthenticationFailureHandler(new ServerAuthenticationEntryPointFailureHandler(entryPoint)); oauth2Filter.setAuthenticationSuccessHandler(new Oauth2AuthSuccessHandler()); http.addFilterAt(oauth2Filter, SecurityWebFiltersOrder.AUTHENTICATION); ServerHttpSecurity.AuthorizeExchangeSpec authorizeExchange = http.authorizeExchange(); if (securityProperties.getAuth().getHttpUrls().length > 0) { authorizeExchange.pathMatchers(securityProperties.getAuth().getHttpUrls()).authenticated(); } if (securityProperties.getIgnore().getUrls().length > 0) { authorizeExchange.pathMatchers(securityProperties.getIgnore().getUrls()).permitAll(); } authorizeExchange .pathMatchers(HttpMethod.OPTIONS).permitAll() .anyExchange() .access(permissionAuthManager) .and() .exceptionHandling() .accessDeniedHandler(new JsonAccessDeniedHandler()) .authenticationEntryPoint(entryPoint) .and() .headers() .frameOptions() .disable() .and() .httpBasic().disable() .csrf().disable(); return http.build(); }
Example 2
Source File: OAuth2SecurityConfigUtils.java From syncope with Apache License 2.0 | 5 votes |
public static void forLogin( final ServerHttpSecurity http, final AMType amType, final ApplicationContext ctx) { ReactiveClientRegistrationRepository clientRegistrationRepository = ctx.getBean(ReactiveClientRegistrationRepository.class); ReactiveOAuth2AuthorizedClientService authorizedClientService = new InMemoryReactiveOAuth2AuthorizedClientService(clientRegistrationRepository); ServerOAuth2AuthorizedClientRepository authorizedClientRepository = new AuthenticatedPrincipalServerOAuth2AuthorizedClientRepository(authorizedClientService); OAuth2AuthorizationRequestRedirectWebFilter authRequestRedirectFilter = new OAuth2AuthorizationRequestRedirectWebFilter(clientRegistrationRepository); AuthenticationWebFilter authenticationFilter = new OAuth2LoginAuthenticationWebFilter(authenticationManager(amType), authorizedClientRepository); authenticationFilter.setRequiresAuthenticationMatcher( new PathPatternParserServerWebExchangeMatcher("/login/oauth2/code/{registrationId}")); authenticationFilter.setServerAuthenticationConverter( new ServerOAuth2AuthorizationCodeAuthenticationTokenConverter(clientRegistrationRepository)); authenticationFilter.setAuthenticationSuccessHandler(new RedirectServerAuthenticationSuccessHandler()); authenticationFilter.setAuthenticationFailureHandler((exchange, ex) -> Mono.error(ex)); authenticationFilter.setSecurityContextRepository(new WebSessionServerSecurityContextRepository()); MediaTypeServerWebExchangeMatcher htmlMatcher = new MediaTypeServerWebExchangeMatcher(MediaType.TEXT_HTML); htmlMatcher.setIgnoredMediaTypes(Collections.singleton(MediaType.ALL)); ServerAuthenticationEntryPoint entrypoint = new RedirectServerAuthenticationEntryPoint("/oauth2/authorization/" + amType.name()); http.exceptionHandling().authenticationEntryPoint(new DelegateEntry(htmlMatcher, entrypoint).getEntryPoint()); http.addFilterAt(authRequestRedirectFilter, SecurityWebFiltersOrder.HTTP_BASIC); http.addFilterAt(authenticationFilter, SecurityWebFiltersOrder.AUTHENTICATION); }