org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity类的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(9.0k)|赞(0)|评价(0)|浏览(153)

本文整理了Java中org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity类的一些代码示例,展示了EnableWebFluxSecurity类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。EnableWebFluxSecurity类的具体详情如下:
包路径:org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity
类名称:EnableWebFluxSecurity

EnableWebFluxSecurity介绍

暂无

代码示例

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
static class MapReactiveUserDetailsServiceConfig {
  @Bean
  public MapReactiveUserDetailsService userDetailsService() {
    return new MapReactiveUserDetailsService(User.withUsername("user")
        .password("{noop}password")
        .roles("USER")
        .build()
    );
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
static class OAuth2LoginWithMultipleClientRegistrations {
  @Bean
  InMemoryReactiveClientRegistrationRepository clientRegistrationRepository() {
    return new InMemoryReactiveClientRegistrationRepository(github, google);
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
static class OAuth2LoginWithSingleClientRegistrations {
  @Bean
  InMemoryReactiveClientRegistrationRepository clientRegistrationRepository() {
    return new InMemoryReactiveClientRegistrationRepository(github);
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
static class CustomPasswordEncoderConfig {
  @Bean
  public ReactiveUserDetailsService userDetailsService(PasswordEncoder encoder) {
    return new MapReactiveUserDetailsService(User.withUsername("user")
      .password(encoder.encode("password"))
      .roles("USER")
      .build()
    );
  }
  @Bean
  public static PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
@Import(ReactiveAuthenticationTestConfiguration.class)
static class Config {
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
@Import(ReactiveAuthenticationTestConfiguration.class)
static class MultiSecurityHttpConfig {
  @Order(Ordered.HIGHEST_PRECEDENCE)
  @Bean
  public SecurityWebFilterChain apiHttpSecurity(
    ServerHttpSecurity http) {
    http.securityMatcher(new PathPatternParserServerWebExchangeMatcher("/api/**"))
      .authorizeExchange().anyExchange().denyAll();
    return http.build();
  }
  @Bean
  public SecurityWebFilterChain httpSecurity(ServerHttpSecurity http) {
    return http.build();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class RedirectToHttpConfig {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
    // @formatter:off
    http
      .redirectToHttps();
    // @formatter:on
    return http.build();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class ClientRegistrationConfig {
  private ClientRegistration clientRegistration = TestClientRegistrations.clientRegistration()
      .build();
  @Bean
  InMemoryReactiveClientRegistrationRepository clientRegistrationRepository() {
    return new InMemoryReactiveClientRegistrationRepository(this.clientRegistration);
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class SometimesRedirectToHttpsConfig {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
    // @formatter:off
    http
      .redirectToHttps()
        .httpsRedirectWhen(new PathPatternParserServerWebExchangeMatcher("/secure"));
    // @formatter:on
    return http.build();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class DenyAllConfig {
  @Bean
  SecurityWebFilterChain authorization(ServerHttpSecurity http) throws Exception {
    // @formatter:off
    http
      .authorizeExchange()
        .anyExchange().denyAll()
        .and()
      .oauth2ResourceServer()
        .jwt()
          .publicKey(publicKey());
    // @formatter:on
    return http.build();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class PublicKeyConfig {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) throws Exception {
    // @formatter:off
    http
      .authorizeExchange()
        .anyExchange().hasAuthority("SCOPE_message:read")
        .and()
      .oauth2ResourceServer()
        .jwt()
          .publicKey(publicKey());
    // @formatter:on
    return http.build();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
  @EnableWebFluxSecurity
  static class RedirectToHttpsViaCustomPortsConfig {
    @Bean
    SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
      // @formatter:off
      http
        .redirectToHttps()
          .portMapper(portMapper());
      // @formatter:on

      return http.build();
    }

    @Bean
    public PortMapper portMapper() {
      return mock(PortMapper.class);
    }
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class CustomDecoderConfig {
  ReactiveJwtDecoder jwtDecoder = mock(ReactiveJwtDecoder.class);
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
    // @formatter:off
    http
      .oauth2ResourceServer()
        .jwt();
    // @formatter:on
    return http.build();
  }
  @Bean
  ReactiveJwtDecoder jwtDecoder() {
    return this.jwtDecoder;
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class Config {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
    http
      .oauth2Client();
    return http.build();
  }
  @Bean
  ReactiveClientRegistrationRepository clientRegistrationRepository() {
    return mock(ReactiveClientRegistrationRepository.class);
  }
  @Bean
  ServerOAuth2AuthorizedClientRepository authorizedClientRepository() {
    return mock(ServerOAuth2AuthorizedClientRepository.class);
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class CustomAuthenticationManagerConfig {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) {
    // @formatter:off
    http
      .oauth2ResourceServer()
        .jwt()
          .authenticationManager(authenticationManager());
    // @formatter:on
    return http.build();
  }
  @Bean
  ReactiveAuthenticationManager authenticationManager() {
    return mock(ReactiveAuthenticationManager.class);
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class CustomErrorHandlingConfig {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) throws Exception {
    // @formatter:off
    http
      .authorizeExchange()
        .pathMatchers("/authenticated").authenticated()
        .pathMatchers("/unobtainable").hasAuthority("unobtainable")
        .and()
      .oauth2ResourceServer()
        .accessDeniedHandler(new HttpStatusServerAccessDeniedHandler(HttpStatus.BANDWIDTH_LIMIT_EXCEEDED))
        .authenticationEntryPoint(new HttpStatusServerEntryPoint(HttpStatus.I_AM_A_TEAPOT))
        .jwt()
          .publicKey(publicKey());
    // @formatter:on
    return http.build();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFluxSecurity
@EnableWebFlux
@Import(ReactiveAuthenticationTestConfiguration.class)
static class AuthenticationPrincipalConfig {
  @Bean
  public PrincipalBean principalBean() {
    return new PrincipalBean();
  }
  static class PrincipalBean {
    public String username(UserDetails user) {
      return user.getUsername();
    }
  }
  @RestController
  public static class AuthenticationPrincipalResolver {
    @GetMapping("/spel")
    String username(@AuthenticationPrincipal(expression = "@principalBean.username(#this)") String username) {
      return  username;
    }
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class CustomBearerTokenServerAuthenticationConverter {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) throws Exception {
    // @formatter:off
    http
      .authorizeExchange()
        .anyExchange().hasAuthority("SCOPE_message:read")
        .and()
      .oauth2ResourceServer()
        .bearerTokenConverter(bearerTokenAuthenticationConverter())
        .jwt()
          .publicKey(publicKey());
    // @formatter:on
    return http.build();
  }
  @Bean
  ServerAuthenticationConverter bearerTokenAuthenticationConverter() {
    return exchange -> Mono.justOrEmpty(exchange.getRequest().getCookies().getFirst("TOKEN").getValue())
        .map(BearerTokenAuthenticationToken::new);
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class JwkSetUriConfig {
  private MockWebServer mockWebServer = new MockWebServer();
  @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();
  }
  @Bean
  MockWebServer mockWebServer() {
    return this.mockWebServer;
  }
  @PreDestroy
  void shutdown() throws IOException {
    this.mockWebServer.shutdown();
  }
}

代码示例来源:origin: spring-projects/spring-security

@EnableWebFlux
@EnableWebFluxSecurity
static class CustomJwtAuthenticationConverterConfig {
  @Bean
  SecurityWebFilterChain springSecurity(ServerHttpSecurity http) throws Exception {
    // @formatter:off
    http
      .authorizeExchange()
        .anyExchange().hasAuthority("message:read")
        .and()
      .oauth2ResourceServer()
        .jwt()
          .jwtAuthenticationConverter(jwtAuthenticationConverter())
          .publicKey(publicKey());
    // @formatter:on
    return http.build();
  }
  @Bean
  Converter<Jwt, Mono<AbstractAuthenticationToken>> jwtAuthenticationConverter() {
    JwtAuthenticationConverter converter = new JwtAuthenticationConverter() {
      @Override
      protected Collection<GrantedAuthority> extractAuthorities(Jwt jwt) {
        String[] claims = ((String) jwt.getClaims().get("scope")).split(" ");
        return Stream.of(claims).map(SimpleGrantedAuthority::new).collect(Collectors.toList());
      }
    };
    return new ReactiveJwtAuthenticationConverterAdapter(converter);
  }
}

相关文章

微信公众号

最新文章

更多

EnableWebFluxSecurity类方法