默认情况下使用安全注释和安全

时间:2016-02-04 16:44:52

标签: java spring-security spring-boot

我在Spring-boot应用程序中使用Spring-security。默认情况下,由于此配置,所有方法都仅限于经过身份验证的用户:

@Override
public void configure(HttpSecurity http) throws Exception {
  http
      .authorizeRequests()
        .anyRequest().authenticated()

现在,我想将一些网址标记为公开。我可以用蚂蚁匹配器做到这一点,但我更希望能够用注释直接标记相关方法。

我看到存在一些@PreAuthorize注释,但只有当我从配置中删除这些行时才能使它工作:

      .authorizeRequests()
        .anyRequest().authenticated()

这迫使我手动注释我想用这个注释保护的每个方法:

@PreAuthorize("isAuthenticated()")

这非常危险,因为默认情况下,每个被遗忘的网址都可以公开访问。有没有办法让默认情况下对经过身份验证的用户访问每个网址,并使用

打开一些网址
@PreAuthorize("permitAll()")

另外,我在another post中看到OP得到了回答:

  

但是在控制器上使用预发布注释确实是一个坏主意,因为可以直接在HttpSecurity配置中完成。它强迫您使用proxyTargetClass = true

这有什么问题? (另外,我不需要使用proxyTargetClass = true

0 个答案:

没有答案