相关疑难解决方法(0)

Spring Security 多个 UserDetailsS​​ervice

我有 3 个不同的表,每个表都有用户信息。(可能相同的用户名但不同的密码)

此外,有 3 个不同的 URL 进行授权。是否可以在UserDetailsService一个配置中使用多个并在授权控制期间使用哪个表?

这是我的配置代码,但我无法控制在授权期间使用哪个表:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@Import(SecurityProblemSupport.class)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    private final AuthenticationManagerBuilder authenticationManagerBuilder;

    @Qualifier("userDetailsService")
    private final UserDetailsService userDetailsService;

    @Qualifier("customerDetailsService")
    private final UserDetailsService customerDetailsService;

    private final TokenProvider tokenProvider;

    private final CorsFilter corsFilter;

    private final SecurityProblemSupport problemSupport;

    public SecurityConfiguration(AuthenticationManagerBuilder authenticationManagerBuilder, UserDetailsService userDetailsService, UserDetailsService customerDetailsService, TokenProvider tokenProvider, CorsFilter corsFilter, SecurityProblemSupport problemSupport) {
        this.authenticationManagerBuilder = authenticationManagerBuilder;
        this.userDetailsService = userDetailsService;
        this.customerDetailsService = customerDetailsService;
        this.tokenProvider = tokenProvider;
        this.corsFilter = …
Run Code Online (Sandbox Code Playgroud)

spring spring-security jhipster

5
推荐指数
1
解决办法
4216
查看次数

不同端点的多个用户详细信息服务

我正在使用 Spring 构建 REST API,并且目前正在使用自定义用户详细信息服务和以下配置代码对我的所有请求进行身份验证:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
Run Code Online (Sandbox Code Playgroud)

我还设置了一个DaoAuthenticationProvider使用我的用户详细信息服务并使用它来配置全局安全性。

现在,我想提供一个端点(虽然仍然使用 HTTP 基本身份验证进行保护)使用不同的用户详细信息服务来检查是否允许用户访问给定资源。

如何为不同的端点使用两种不同的用户详细信息服务?

spring spring-security basic-authentication spring-boot

4
推荐指数
1
解决办法
2994
查看次数