Spring Basic Web服务与BasicAuth没有xml配置

时间:2015-05-15 13:20:49

标签: java spring rest spring-security

我想知道是否可以使用BasicAuth创建Spring Webservice而无需创建web.xml或任何基于xml的配置。

我看到很多教程都是用xml来完成的,但是我想在课堂配置方式中这样做。

1 个答案:

答案 0 :(得分:0)

对不起,这可能不太准确,因为我不再使用这个实现,我用基于EE的模型替换了......在这里和我一起工作。 :)

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
        .passwordEncoder(passwordEncoder())
            .withUser("fooserviceuser").password("$2a$10$9DvfxB.Sj2B/QznFRw85FenDvhUGglWWgOR7mmal/jNImhdHQRJgi").roles("USER");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .csrf().disable()
        .authorizeRequests()
        .antMatchers("/**").hasRole("USER")
    .and()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}

@Bean
public BCryptPasswordEncoder passwordEncoder(){
    BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
    return encoder;
}
}

您还需要一个初始化程序来挂钩容器,如 -

public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
}

这使用bcrypt进行密码散列。对不起,这不是正常工作的代码,但我认为这里有足够的东西让你走上正轨!谷歌周围有类似的代码片段,他们就在那里。