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

Spring OAuth筛选器链&Java配置

诸葛茂勋
2023-03-14

我正在尝试将spring-security-oauth添加到一个带有spring-security的现有应用程序中。我正在使用Java配置。

我有一个已修改的筛选器链(添加了一些自定义筛选器),但是对'/oauth/token'的请求没有使用它,而是使用了'default'筛选器链。如何访问保护oauthendpoint的筛选器链,以便也可以在那里使用自定义筛选器,或者将oauthendpoint连接到现有设置中?

共有1个答案

夏侯兴学
2023-03-14

使用authorizationServerConfigureer接口确实有一种稍微平滑一些的方法。您可以坚持注释@enableauthorizationServer并在配置文件中实现上述接口。这将使您能够通过执行如下操作来更改oauth2-filter-chain:

@Configuration
@EnableWebSecurity
@EnableAuthorizationServer
public class SecurityConfig extends WebSecurityConfigurerAdapter 
implements AuthorizationServerConfigurer
    // some configuration ...

    public void configure(AuthorizationServerSecurityConfigurer oauthSecurity) throws Exception {
        oauthSecurity.addTokenEndpointAuthenticationFilter(new YourFilter());
    }

    // more configuration ...
}

HttpSecurityAddFilterXyx方法相比,在这里筛选器将位于筛选器链中的位置,您没有细粒度的影响。由AddTokenEndpointAuthenticationFilter添加的任何筛选器都将插入到BasicAuthenticationFilter之前。

如果需要以更详细的方式控制过滤器的位置,可以创建扩展authorizationServerConfigurerAdapter的bean,而不是使用注释@enableauthorizationServer。我没有尝试过,但我想您可以像systemfreund建议的那样扩展AuthorizationServerSecurityConfiguration,而不必指定@order(-1),因为只有您的自定义配置才会被导入。您可能还需要@importauthorizationServerEndpointsConfiguration,就像方便注释@enableauthorizationServer中所做的那样。

 类似资料:
  • 我们与实体1和实体2有多对多的关系。 现在,当我们删除Entity2的一个元素时,实际上并不是从数据库中删除它,而是简单地将字段“isactive”设置为false。 在SQL中,这将转换为entity1表、entity2表和entity1TOentity2表。在SQL中,我们可以简单地进行一次更新, 在JPA中,我们可以将Entity1的所有元素作为对象加载,并对关系进行连接提取,然后在Java

  • 如何过滤

  • 有什么建议吗?

  • 筛选器。 Usage 全部引入 import { Picker } from 'beeshell'; 按需引入 import Picker from 'beeshell/dist/components/Picker'; Examples Code import { Picker } from 'beeshell'; <Picker ref={(c) => { this._pick

  • 我正在尝试使用文本字段筛选表视图,我需要一个文本字段(txtSearch)来搜索“nhs编号”、“名字”、“姓氏”和“分类类别”。我曾尝试在网上实施各种解决方案,但没有成功,我对这一切还是新手,所以如果问得不好,我深表歉意。任何帮助都将不胜感激,我的代码如下。 公共类QueueTabPageController实现可初始化{ 此处出现错误(步骤4): 和(步骤5) 说明:无法从类型TableVie

  • 我试图从管理各种Tomcat实例的应用程序生命周期的第三方工具的正常应用程序日志中筛选出启动(/关闭)事件。基础是(2.12.1),中使用,用于简单的追加器(下面的示例进行了大量简化,包括硬编码值): 相应的记录器如下所示: 当我启动实例时,将创建两个日志文件。但是,只有应用程序日志文件(application appender)包含条目,其中包括我感兴趣的要过滤掉的条目: 有什么想法,如何调试,