当前位置: 首页 > 知识库问答 >
问题:

使用oAuth2ResourceServer配置antMatcher

谈秦斩
2023-03-14

我的目标是通过以下方式配置Spring Security:

  • 任何以private开头的路由都应该通过Spring Boot oauth2ResourceServer进行身份验证

我已经尝试了下面的代码,但这给我的问题是它也试图验证私有路由以外的其他路由。

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

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

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and()
                .authorizeRequests()
                .antMatchers("/private/**").authenticated()
                .antMatchers("/**").permitAll()
                .and()
                .oauth2ResourceServer().jwt();

      }

}

我的依赖项是:

  • 组织。springframework。启动:spring-boot-starter-oauth2-resource-server:2.6.2
  • 组织。springframework。启动:Spring启动启动安全:2.6.2
  • 组织。springframework。启动:spring boot starter web:2.6.2

有什么想法吗?

共有1个答案

童化
2023-03-14

结果是被csrf保护阻止,该保护在spring security中默认打开。

以下内容对我来说很有效:

@Override
public void configure(HttpSecurity http) throws Exception {
    http
            .cors().and()
            .csrf().disable()
            .authorizeRequests()
            .mvcMatchers("/private/**").authenticated()
            .mvcMatchers("/**").permitAll()
            .and()
            .oauth2ResourceServer().jwt();
}

请注意,要使其工作,您需要在应用程序中指定以下内容。属性。

spring.security.oauth2.resourceserver.jwt.jwk-set-uri

例如,在google oauth2的情况下,这是:

spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://www.googleapis.com/oauth2/v3/certs

这指向用于验证您的令牌的JSON Web密钥(JWK)。您的令牌应以以下形式作为授权标头发送到您的Spring服务器:

bearer {{your token here}}
 类似资料:
  • 引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>${shardingsphere.version}</version> </dependency> <!-- 使用

  • 引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>${shardingsphere.version}</version> </dependency> 规则配置 Sha

  • 我目前正在寻找一种动态组装config-keys(回退处理)的方法,然后在我们的microprofile-config.properties文件中查找这些。这样的文件可能如下所示: 因此,当存在客户和子客户时,使用on 我得到这个问题的原因是我想使用注释,所以没有ConfigProvider.getConfig()。这意味着我必须在自定义的中组装动态配置键。 我知道ConfigSources是在服

  • 问题内容: 我似乎在尝试将Jenkins(Ubuntu的EC2 AWS实例)与Bitbucket链接时陷入困境。 每当我尝试构建项目时(我在Jenkins上安装了git插件),我都会得到… 很好- 看起来它正在尝试通过ssh,但是找不到密钥。所以我试图生成密钥,在我有文件的情况下,但是根据这里的文档… https://confluence.atlassian.com/display/BITBUCK

  • 主要内容:下载Hadoop,从命令提示符下载Hadoop,安装Hadoop,验证Hadoop安装,在Hadoop上安装SolrSolr可以和Hadoop一起使用。 由于Hadoop是用于处理大量数据,Solr帮助我们从这么大数据源中找到所需的信息。在本节中,我们将了解如何在系统上安装Hadoop。 下载Hadoop 下面给出了如何将Hadoop下载到系统中的步骤。 第1步 - 打开Hadoop主页 - www.hadoop.apache.org/。 单击链接版本,如下面的屏幕截图中突出显示。 它

  • 主要内容:用户信息,文本编辑器,检查配置信息,获取帮助,以下是纠正/补充内容:假设经过上一篇文章的学习,你已经在系统上安装了 Git,那么现在要做几件事来配置/定制 Git 环境。每台计算机上只需要配置一次,程序升级时会保留配置信息。可以在任何时候再次通过运行命令来修改它们。 注: 如果还没有安装 Git,请参考:http://www.yiibai.com/git/git_environment.html Git 自带一个 的工具来帮助设置控制 Git 外观和行为的配置变量