2017-06-03 3 views
1

Ich bin bei einem Problem hier stecken. Ich verwende einen Spring-Boot mit Primefaces für meine Anwendung. Ich benutze Frühling Sicherheit für die Authentifizierung. Irgendwie bekomme ich Zugriff verweigert. Hinzu kommt, dass sich die Nutzer bereits im Mongodb etabliert haben und wenn ich eine Spring-Umleitung verwende, funktioniert alles super.Feder Sicherheitsfeder Boot 4.x

http.csrf().csrfTokenRepository(csrfTokenRepository()).and().authorizeRequests().antMatchers("/login**").access("permitAll") 
      .antMatchers("/logout**").access("permitAll") 
      .antMatchers("/secure/homePage.xhtml").access("hasRole('ADMIN') or hasRole('USER')") 
      .anyRequest().authenticated().and().formLogin().loginPage("/login").defaultSuccessUrl("/secure/homePage.xhtml") 
      .failureUrl("/login.xhtml?error").usernameParameter("email").and().logout().logoutUrl("/logout.xhtml") 
      .logoutSuccessUrl("/login.xhtml").invalidateHttpSession(true).clearAuthentication(true).and() 
      .exceptionHandling().accessDeniedPage("/accessDenied.xhtml"); 

Btw, ich habe folgend in meiner Login-Seite:

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> 
+0

nehme an, Sie diese beziehen haben [Beispiel] (https://github.com/spring-projects/spring-boot/tree/master/spring -boot-samples/spring-boot-sample-web-method-security) auf github. Sie haben vielleicht eine Lösung. –

Antwort

0

Es ist etwas faul an Ihren Endpunkten.

Sie sind /secure/homePage.xhtml. Diese zeigen in der Regel auf eine Controller-Methode und im Controller liefern Sie den Pfad zur View. dann wird ein bestimmter View Resolver gehen und die Seite liefern.

@Bean 
ViewResolver viewResolver() { 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setViewClass(org.springframework.faces.mvc.JsfView.class); 
    resolver.setPrefix("/WEB-INF"); 
    resolver.setSuffix(".xhtml"); 
    return resolver; 

} 


@Controller 
public class HelloWorldController { 

    @RequestMapping("/helloWorld") 
    public String helloWorld(Model model) { 
     model.addAttribute("message", "Hello World!"); 
     return "helloWorld"; 
    } 
} 

In diesem Beispiel werden Sie ein helloWorld.xhtml in /WEB-INF/

Verwandte Themen