Spring oauth2:访问没有身份验证的任何资源服务器端点

时间:2017-08-10 16:03:07

标签: spring-boot spring-security spring-oauth2

我有一个场景,我希望允许用户从客户端应用程序(运行在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 / **不安全。所以用户无需身份验证即可访问它。

1 个答案:

答案 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()


        }
}