Spring Security 是否尝试向客户授权公共端点?

问题描述 投票:0回答:1

假设我有一个只能由经过身份验证的用户访问的端点,

现在我也想向非授权用户授予访问权限。

我是否需要期望

Spring Security
即使在用户尝试访问公共端点时也会尝试授权用户?

我的意思是,我是否能够确定到底谁正在到达公共端点 - 授权用户还是非授权用户?

spring spring-security
1个回答
0
投票

它100%基于您为Spring Security所做的配置,您可以配置哪些用户可以访问哪些端点。 示例:

    public SecurityFilterChain securityFilterChain(HttpSecurity http, UserAuthProvider userAuthProvider) throws Exception {

    http
            .csrf(AbstractHttpConfigurer::disable)
            .addFilterBefore(new JwtAuthFilter(userAuthProvider), BasicAuthenticationFilter.class)
            .sessionManagement(customizer -> customizer.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .authorizeHttpRequests((requests) ->
                    requests.requestMatchers(HttpMethod.POST, "/login", "/register").permitAll()
                            .anyRequest().authenticated());
    return http.build();
}

在这种情况下,端点 /login 、 /register 允许未经授权的用户使用, 所有其他端点都需要身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.