2016-07-04 9 views
0

Hallo Ich versuche, ein Front-End in den Ordner/Ressourcen meiner Anwendung aufzunehmen. Meine Verzeichnisstruktur ist wie folgt:Spring Security kann nicht auf Dateien zugreifen unter/resources

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

Ich verwende oauth für die Sicherheit des 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/"); 
    } 
} 

Jedes Mal, wenn ich versuche, http://localhost:8082/style.css Oder http://localhost:8082/resources/style.css zu gehen Ich erhalte

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

Hilfe wäre sehr willkommen.

+0

Sie Maven verwenden ?? – Keshav

+0

ja mein Backend verwendet maven –

Antwort

1

Ändern Sie die Verzeichnisstruktur wie folgt:

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) 
+0

Sieht so aus, als ob er es jetzt findet, aber ich bekomme immer noch eine nicht autorisierte. Ich aktualisierte meine Frage –

+0

Werfen Sie einen Blick auf diese http://stackoverflow.com/questions/26881296/spring-security-oauth2-full-authentication-is-required-to-access-this-resource. – Keshav