Spring Security是如何工作的?

xxhby3vn  于 2023-06-22  发布在  Spring
关注(0)|答案(2)|浏览(124)

我是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()
    }
}
jutyujz0

jutyujz01#

Spring将每个标记为@Configuration的类视为一个配置文件。特别是Spring处理所有@Bean注解的方法。如果一个方法被注解为@Bean,那么无论方法的名称是什么,它都将在上下文创建期间执行。方法不应该被你直接调用,也不应该在任何地方指定它的名字。@Bean就足够了。
该方法返回对象将是一个Springbean,并将出现在Spring应用程序上下文中。然后由Spring Security来应用和使用该bean。
Here@Bean的官方文档。Here是Spring WebFlux安全指南,简要介绍了SecurityWebFilterChain

lymgl2op

lymgl2op2#

一篇关于SecurityWebFilterChain的好文章,你会发现为什么适配器在spring-security中被弃用以及在移除之后:Spring Security without the WebSecurityConfigurerAdapter

相关问题