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

Spring Security OAuth2从默认筛选器链禁用BasicAuthenticationFilter

白飞飙
2023-03-14
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) {
    ...
    ...
    String username = someDecoder(tokens[0]); // Kind of something
    ...
    ...
}
http.addFilterBefore(new CustomBasicAuthenticationFilter(authenticationManager(), authenticationEntryPoint()),
    BasicAuthenticationFilter.class);

共有1个答案

万俟均
2023-03-14

我想您可以使用另一个答案:https://stackoverflow.com/a/28428154/2648577

---->>>这是一个复制/粘贴(更改筛选器名称)。

默认情况下,Spring Boot会为应用程序上下文中不存在FilterRegistrationBean的每个FilterRegistrationBean创建一个FilterRegistrationBean。这允许您通过为过滤器声明您自己的filterregistrationbean来控制注册过程,包括禁用注册。对于BasicAuthenticationFilter,所需的配置如下所示:

@Bean
public FilterRegistrationBean registration(BasicAuthenticationFilter filter) {
  FilterRegistrationBean registration = new FilterRegistrationBean(filter);
  registration.setEnabled(false);
  return registration;
}
 类似资料:
  • 正如您所看到的,它有一个构造函数,它可以得到过滤器列表,所以我可以根据需要从链中删除一个过滤器,其余的都可以正常工作。但是我不能为这样的构造函数在安全配置中创建bean。如果我使用 当然,它使用默认构造函数构建对象。好的,我试着用一些过滤器的列表来制作bean: 但这无法编译,因为BasicUserApprovalFilter是未知bean。那么如何从默认筛选器堆栈中排除一个筛选器呢?如果我用自定

  • 的复制构造函数和赋值操作符的情况下,便编译器会为我们生成默认的复制构造函数和赋值操作符,以内存复制的形式完成对象的复制。虽然这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下,比如我们不希望对象被复制,这种机制却是多此一举。) 关于类的“禁止复制”,现在可以使用delete关键字完美地直接表达: class X { // … X& operator=(c

  • 对于Spring Integration FTP入站通道适配器,如果我没有显式设置,是否可以使用远程过滤器的值作为默认值? 例如,在我的用例中,远程目录包含、等,模式将让我成功下载所有这些文件。但是,如果我的本地目录包含附加文件,例如,则将生成、和s的所有3个文件。 我认为,如果本地筛选器默认情况下尊重远程筛选器(如果我没有显式设置),即只生成和两条消息,则更有意义。

  • 我在一个项目中使用Spring Boot和Data REST,我想禁用以下默认映射来调试映射问题: 我发现这个问题禁用了,这会导致这些映射不被映射。但是,我的控制器映射也不会被映射。 我可以在保留我定义的映射时禁用这些映射吗? 提前谢谢。

  • 我正在尝试将spring-security-oauth添加到一个带有spring-security的现有应用程序中。我正在使用Java配置。 我有一个已修改的筛选器链(添加了一些自定义筛选器),但是对'/oauth/token'的请求没有使用它,而是使用了'default'筛选器链。如何访问保护oauthendpoint的筛选器链,以便也可以在那里使用自定义筛选器,或者将oauthendpoint

  • 我的WPF应用程序中有一个ComboBox,我在其中显示项目列表。大多数情况下,第一个项目是项目资源列表中的正确选择,只有在个人请求时,才能更改项目。现在,“我的”组合框加载列表,但从不显示所选项目的第一个项目。有人能帮我吗。这是我的代码。 XAML: 代码隐藏: 我在 itemsSource 中有值,已选择的 itme 也有一个值,但永远不会显示在屏幕上。 感谢任何帮助。