gpt4 book ai didi

java - Http 基本身份验证在 Spring Security 中不起作用

转载 作者:行者123 更新时间:2023-12-02 09:36:19 24 4
gpt4 key购买 nike

我试图了解如何使用 Spring Security 保护 SOAP Web 服务。我看到 DefaultSecurityFilterChain 是使用 antMatcher() 创建的,但我的 Web 服务仍然不需要任何凭据。如何保证其安全?

我猜测我没有清楚地理解模式并且我只是做了错误的配置,但我找不到哪里。

Web 服务 URL:http://localhost:8080/services/customer

我的配置:

@Configuration
@EnableWebSecurity(debug = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private MyBasicAuthenticationEntryPoint authenticationEntryPoint;

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user1").password(passwordEncoder().encode("user1Pass"))
.authorities("ROLE_USER");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.antMatcher("/services/**")
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic()
.authenticationEntryPoint(authenticationEntryPoint);


http.addFilterAfter(new CustomFilter(),
BasicAuthenticationFilter.class);
}
}

UPD:我昨天没有注意到这一点,我只是查看了应用程序和网络服务 URL,它们是不同的。这是因为 Apache CXF Web 服务单独启动。

@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), customerWebService );
endpoint.publish("http://localhost:8080/services/customer");
return endpoint;
}

而且我还没有找到任何可能的方法来启动 Web 服务并在应用程序内发布端点。看来这就是重点。

应用程序:http://localhost:8082/AppName/...

网络服务:http://localhost:8080/services/customer

最佳答案

你能尝试一下这个配置吗?如果您对每个用户有特定的权限,那么您必须在给定路径上要求它。

@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/services/**").hasAuthority("ROLE_USER")
.anyRequest().authenticated()
.and()
.httpBasic()
.authenticationEntryPoint(authenticationEntryPoint).and()
.csrf().disable();


http.addFilterAfter(new CustomFilter(),
BasicAuthenticationFilter.class);
}

关于java - Http 基本身份验证在 Spring Security 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57480483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com