2013-07-09 4 views
9

Mein aktueller Java-Sicherheits Config sieht wie folgt zeigt:brauchen Federsicherheits java Config Beispiel Grund Auth nur

@Configuration 
@EnableWebSecurity 
public class RootConfig extends WebSecurityConfigurerAdapter { 

@Override 
protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception 
{ 
auth.inMemoryAuthentication() 
    .withUser("tester").password("passwd").roles("USER"); 
} 

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http 
    .authorizeUrls() 
     .anyRequest().authenticated() 
     .and() 
    .httpBasic();  
    } 
} 

Wenn ich eine GET-Anforderung mit einem Browser ausführen, werde ich einen Fehler 403. würde ich Ich erwarte ein Browser-Popup und frage nach einem Benutzernamen/Passwort. Was könnte das Problem sein?

Antwort

13

UPDATE: Diese in Spring Security festgelegt ist 3.2.0.RC1 +

Dies ist ein Fehler in der Sicherheits Java-Konfiguration, die für die nächste Version behoben werden. Ich habe SEC-2198 erstellt, um es zu verfolgen. Denn jetzt ist eine Arbeit um etwa wie folgt zu verwenden:

@Bean 
public BasicAuthenticationEntryPoint entryPoint() { 
    BasicAuthenticationEntryPoint basicAuthEntryPoint = new BasicAuthenticationEntryPoint(); 
    basicAuthEntryPoint.setRealmName("My Realm"); 
    return basicAuthEntryPoint; 
} 

@Override 
protected void configure(HttpSecurity http) throws Exception { 

    http 
     .exceptionHandling() 
      .authenticationEntryPoint(entryPoint()) 
      .and() 
     .authorizeUrls() 
      .anyRequest().authenticated() 
      .and() 
     .httpBasic();  
} 

PS: Danke für Spring Security Java-Konfiguration einen Versuch geben! Halten Sie das Feedback-up :)

0

Mit Spring Security 4.2.3 und wahrscheinlich, bevor Sie einfach diese Konfiguration verwenden können:

@Configuration 
@EnableWebSecurity 
public class CommonWebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(final HttpSecurity http) throws Exception { 
    http 
     .authorizeRequests() 
      .anyRequest().authenticated() 
      .and() 
     .httpBasic(); 
    } 
    @Autowired 
    public void dlcmlUserDetails(final AuthenticationManagerBuilder auth) throws Exception { 
     auth.inMemoryAuthentication() 
      .withUser("tom").password("111").roles("USER"); 
    } 
}