使用@CrossOrigin时,Spring引导安全性无法进行身份验证

时间:2017-05-10 09:47:32

标签: javascript java spring-boot spring-security cors

我一直在努力解决如何让Spring安全性工作并允许所有源自我的REST-full应用程序。我已经查找了问题并尝试了大多数建议,但似乎没有任何工作可以独立工作,但它们工作得很好但不能一起工作。

我的控制器非常简单,因为我只是在做一些测试

@RestController
@CrossOrigin
public class TestController
{

    @RequestMapping(path="/test/{name}", method= RequestMethod.GET)
    public String test(@PathVariable final String name)
    {
        return "Welcome " + name + "!";
    }

    @RequestMapping(path="/private/{name}", method= RequestMethod.GET)
    public String privateTest(@PathVariable final String name)
    {
        return "Welcome private " + name + "!";
    }
}

我的securityconfig如下所示:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
    @Override
    public void configure(HttpSecurity httpSecurity) throws Exception
    {
        httpSecurity.cors().and().authorizeRequests()
                .antMatchers("/*").hasRole("USER")
                .and()
                .formLogin();
    }
}

有人有什么建议吗?另外,如果默认情况下不允许javascript执行REST-full http请求,您通常如何创建安全的restfull服务?

1 个答案:

答案 0 :(得分:0)

.antMatchers("/**").hasRole("USER")
// or anyRequest().hasRole("USER")

有关蚂蚁匹配的更多信息,请参阅here