Spring Boot 安全性的基本 URI

Posted

技术标签:

【中文标题】Spring Boot 安全性的基本 URI【英文标题】:Base URI for spring boot security 【发布时间】:2017-11-24 00:10:19 【问题描述】:

在旧春天(春季启动之前)我在 web.xml 中定义

<filter-mapping> 
    <filter-name>myFilter</filter-name> 
    <url-pattern>/rest/*</url-pattern> 
</filter-mapping>

通过这种方式,安全性仅应用于“/rest/”下的 URI,并且从根提供的静态资源不受保护(我的 html/Angular2 内容)。但是我在 Spring Boot 中找不到任何做同样事情的参考,有没有人已经解决了这个问题?

【问题讨论】:

【参考方案1】:

在spring boot中你可以处理如下:

@SpringBootApplication
public class SpringDemoApplication 


@Bean
public FilterRegistrationBean someFilterRegistration() 

    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(someFilter());
    registration.addUrlPatterns("/rest/*");
    registration.setName("myFilter");
    return registration;


@Bean(name = "myFilter")
public Filter myFilter() 
    return new MyFilter();


【讨论】:

【参考方案2】:

从您的 web.xml 中,我找不到任何安全配置。

但正如您所描述的,您可以通过以下方式通过 spring 安全性配置它以允许“/”但需要对“/rest/”路径进行身份验证。

@Configuration
@EnableGlobalAuthentication
public class ResourceSecurityConfiguration extends WebSecurityConfigurerAdapter 

    @Override
    protected void configure(HttpSecurity http) throws Exception 
        http.authorizeRequests()
            .antMatchers("/").permitAll()
            .antMatchers("/rest/**").authenticated()

            ......
    

这是一个很好的 https://spring.io/guides/tutorials/spring-security-and-angular-js/ 教程系列。

【讨论】:

以上是关于Spring Boot 安全性的基本 URI的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring-Boot 2 中禁用安全性? [复制]

在 Spring Boot 安全性中,无法跳过登录 url 的 OncePerRequestFilter 过滤器(基本上是在初始登录期间获取 JWT 令牌)

在spring boot starter安全项目中看不到默认密码

独立休息服务的Spring Boot安全性[重复]

带有用户和角色的 Kotlin 中的 Spring Boot 安全性

基于命名空间或 URI 的 spring 安全性