简体   繁体   中英

Spring security can't access files under /resources

Hi I am trying to include a front-end in the /resources folder of my application. My directory structure is as follows:

src
  main
    java // backend located here
  webapp
     resource //my html/css/js

I am using oauth for security of the backend:

MethodSecurityConfig.java

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {

    @Override
    protected MethodSecurityExpressionHandler createExpressionHandler() {
        return new OAuth2MethodSecurityExpressionHandler();
    }

}

ResourceServerConfigurerAdapter.java

@Configuration

    @EnableResourceServer
    public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {

        @Override
        public void configure(final HttpSecurity http) throws Exception {

            http.authorizeRequests()
                    .antMatchers("/resources/**").permitAll().and()
                    .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
                    .and().authorizeRequests().anyRequest().authenticated();

        }
    }

ResourceWebConfig.java

@Configuration
@EnableWebMvc
@ComponentScan({"eu.emif.resource.web"})
public class ResourceWebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
                .addResourceHandler("/resources/**")
                .addResourceLocations("(/resources/");
    }
}

Whenever I try to go to http://localhost:8082/style.css Or http://localhost:8082/resources/style.css I am getting

 <oauth>
<error_description>
Full authentication is required to access this resource
</error_description>
<error>unauthorized</error>
</oauth>

Help would be much appreciated.

Change you directory structure to as follows:

src
  main
    java // backend located here
    resources(By default these files are not added in deployment assembly and mostly used for loading java resources like xml file,properies file etc.)  
  webapp
    resource(create new folder here and put your frontend(html/js/css) files here)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM