我有一个场景,我希望允许用户从客户端应用程序(运行在8080)访问资源服务器(运行在8098)的特定端点,而无需身份验证。当我试图在没有客户端身份验证的情况下访问它时,它会拒绝错误访问。但是当我在用户登录后访问同一个端点时,它正在工作。
我在资源服务器上进行了以下配置:
@Configuration
@EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
@Autowired
private CustomUserDetailsService userDetailsService;
public ResourceServerConfiguration() {
super();
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.anonymous()
.and()
.authorizeRequests()
.antMatchers("/api/requestdetails/view-all-details/**").permitAll()
.anyRequest().authenticated()
}
}
基本上我想让这个端点" / api / requestdetails / view-all-details / **不安全。所以用户无需身份验证即可访问它。
答案 0 :(得分:2)
我在配置方法上做了一些更改,现在它正在工作。
@Configuration
@EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
@Autowired
private CustomUserDetailsService userDetailsService;
public ResourceServerConfiguration() {
super();
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/**")
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/api/requestdetails/view-all-details/**").permitAll()
.antMatchers("/api/**").authenticated()
}
}