我是springboot 3.1 + webflux + kotlin的新手。
在看了官方文档和各种博客之后,我正在研究Spring Security ,但是原理还没有出来,而且有很多关于如何使用它的文章,所以我问你一个问题。
我想知道spring是如何执行"strangeNaming"函数的。
- 我没有继承并重写它,但我想知道即使我按照自己的意愿编写函数名,它是如何工作的。**
求你救救我
@Configuration
@EnableWebFluxSecurity
@EnableReactiveMethodSecurity
class SecurityConfiguration {
@Bean
fun strangeNaming(http: ServerHttpSecurity): SecurityWebFilterChain {
return http.authorizeExchange {
it.anyExchange().permitAll()
}.exceptionHandling {
// Configures what to do when the application request authentication
it.authenticationEntryPoint { exchange, ex ->
Mono.fromRunnable {
exchange.response.statusCode = HttpStatus.UNAUTHORIZED
}
}
// Configures what to do when an authenticated user does not hold a required authority
it.accessDeniedHandler { exchange, denied ->
Mono.fromRunnable {
exchange.response.statusCode = HttpStatus.FORBIDDEN
}
}
}.build()
}
}
2条答案
按热度按时间jutyujz01#
Spring将每个标记为
@Configuration
的类视为一个配置文件。特别是Spring处理所有@Bean
注解的方法。如果一个方法被注解为@Bean
,那么无论方法的名称是什么,它都将在上下文创建期间执行。方法不应该被你直接调用,也不应该在任何地方指定它的名字。@Bean
就足够了。该方法返回对象将是一个Springbean,并将出现在Spring应用程序上下文中。然后由Spring Security来应用和使用该bean。
Here是
@Bean
的官方文档。Here是Spring WebFlux安全指南,简要介绍了SecurityWebFilterChain
。lymgl2op2#
一篇关于SecurityWebFilterChain的好文章,你会发现为什么适配器在spring-security中被弃用以及在移除之后:Spring Security without the WebSecurityConfigurerAdapter