以编程方式添加过滤器和初始化参数

2024-01-12

我需要将 web.xml 的内容复制到 WebAppInitializer.class(Java 配置类)。我已经从 web.xml 复制了 YahooFilter 类(请参阅代码),但我不确定如何实用地添加 init-params。

我已在下面粘贴了 Java 配置类的 web.xml 和片段。有人可以看一下并提供一些反馈吗?

<web-app> 
     <display-name>sample</display-Aname> 
     <filter> 
         <filter-name>YOSFilter</filter-name> 
         <filter-class>com.yahoo.yos.YahooFilter</filter-class> 


         <!--  
         optional param - 
         underlying oauth client class 
         possible values: 
             net.oauth.client.URLConnectionClient (default) 
             net.oauth.client.httpclient3.HttpClient3 
             net.oauth.client.httpclient4.HttpClient4 
         --> 
         <init-param> 
             <param-name>oauthConnectionClass</param-name> 
             <param-value>net.oauth.client.httpclient4.HttpClient4</param-value> 
         </init-param> 
         <!--  
         optional param - 
         redirect end-user if an access token is not found, set to false if you  
         are only making two-legged oauth calls e.g. oauth calls without an  
         access token to retrieve public information 
         defauts to true 
         --> 
         <init-param> 
             <param-name>redirect</param-name> 
             <param-value>true</param-value> 
         </init-param> 
     </filter> 


     <!-- 
     The URL where the filter is mapped to will redirect the user to Yahoo for 
     authorization if an OAuth authorization token has not been obtained for the 
     user.  Should correspond to your callback url 
     --> 


     <filter-mapping> 
         <filter-name>YOSFilter</filter-name> 
         <url-pattern>/login.jsp</url-pattern> 
     </filter-mapping> 
 </web-app> 

Java配置类

    public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
     ...

            @Override
        protected void registerDispatcherServlet(ServletContext servletContext) {
                    super.registerDispatcherServlet(servletContext);
            servletContext.addListener(new HttpSessionEventPublisher());

           // servletContext.addListener(new RequestContextListener());      
        }

             @Override
            protected Filter[] getServletFilters() {
                     DelegatingFilterProxy delegatingFilterProxy =  new DelegatingFilterProxy();
                    delegatingFilterProxy.setTargetBeanName("springSecurityFilterChain");
                    // FilterConfig filterConfig = delegatingFilterProxy.getFilterConfig();

                     YahooFilter yosFilter = new YahooFilter();


                    return  new Filter[] {delegatingFilterProxy,yosFilter};
            }
    }

尝试覆盖onStartup()方法并以编程方式注册您的过滤器ServletContext像这样:

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    FilterRegistration yahooFilter = servletContext.addFilter("yahooFilter", new YahooFilter());
    yahooFilter.setInitParameter("oauthConnectionClass", "net.oauth.client.httpclient4.HttpClient4");
    yahooFilter.setInitParameter("redirect", "true");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式添加过滤器和初始化参数 的相关文章

随机推荐

  • React JS 在另一个组件中引用函数

    我试图获取通过另一个组件呈现的按钮来引用和 或影响不同组件的状态 var Inputs React createClass getInitialState function return count 1 add function this
  • 将 Facebook 登录添加到 ionic 应用程序

    我也是 Angular 和 Ionic 的新手 尝试了以下教程 https www sitepoint com how to integrate facebook login into a cordova based app https w
  • 调用静态方法的实例

    再会 我有点困惑 我想使用日历 所以我在互联网上搜索它并遇到以下代码 Ca1endar c Calendar getlnstance c set 2011 2 5 1 25 但我了解到这是一个静态方法 Calendar getlnstanc
  • NPOI 数据格式

    我正在使用 NPOI v1 2 3 导出网格 但在使单元格格式正常工作时遇到问题 我有一个类将对象列表导出到 XLS 文件 为每个对象创建一行 并为每个配置的属性添加一个单元格 可以在每个属性级别设置单元格数据格式 我读过您不应该为每个单元
  • Clojure 环包装重新加载不起作用

    这是我的 core clj 文件 ns lein app core require compojure core refer all compojure route as route ring middleware reload refer
  • 在 mac osx leopard/snow leopard 中获取鼠标光标下的文本

    有什么想法可以让文本位于鼠标光标下吗 我正在尝试构建一个字典应用程序 当鼠标悬停在单词上时会弹出一个翻译面板 我查看了可访问性API 它只能找到当前的ui元素 但不能找到当前的单词 我最后的选择是经常截图 然后进行ocr 这会消耗CPU 我
  • 如何设置内存存储库

    我有以下课程 public class InMemoryRepository IRepository public void Add object entity throw new NotImplementedException publi
  • 使用 GitHub 页面,空白屏幕

    我正在尝试使用 username github io 在 github 页面上创建一个 React 项目 但是当我打开链接时 它只返回一个白屏 没有任何错误消息 当我使用自定义域名时也会发生这种情况 但是 当我在本地运行它以及使用 gh p
  • iOS:我可以检测设备屏幕是否打开/关闭吗?

    如何在 iOS 中检查屏幕是打开还是关闭 我想知道屏幕当前是否打开 即使我的应用程序在后台 我想要一个事件侦听器 谢谢 In Swift 3你可以做 override func viewDidLoad super viewDidLoad O
  • 使用 Core Data 时如何正确设置 NSPredicate 来实现一对多关系?

    我有一个核心数据模型 其中任务实体包含与 ExcludedDay 实体的可选对多关系 ExcludedDays ExcludedDay 的属性之一是 day 它是一个 NSDate 对象 ExcludedDay 实体与 Task 实体具有反
  • JDBC 和 SQL Server 连接问题

    我对 Java 很陌生 我是一个纯粹的 net 人 我正在尝试进行 SQL Server 2008 数据库连接 现在我正在使用 jTDS 驱动程序来完成我的工作 db dbConnect jdbc jtds sqlserver XXXXXX
  • 原因及解决方法如何-[__NSCFConstantString trim]? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我用j2objc 从 爪哇 到obj
  • 消息正文上的 Azure 服务总线订阅筛选器

    我想根据消息的内容创建订阅 这可能吗 我试图摆脱添加自定义属性的麻烦 谢谢 这是不可能的 订阅只能根据标准 系统 和自定义 用户 属性进行过滤 如果正文 有效负载中有需要参与过滤的数据 则需要将其提升到标头
  • 如何使用非交互式身份验证连接到 Power BI API?

    用 C 编码 我正在遵循本指南 https azure microsoft com en us documentation articles resource group authenticate service principal aut
  • webpack dev server 的惰性模式有什么作用?

    我正在运行我的 webpack dev server webpack dev server lazy inline progress colors port 8082 但是 当我的浏览器尝试访问时 会显示 404 错误bundle js 其
  • 编译器构建的语义分析阶段有哪些工具?

    编译器构建可以分为词法分析 语法分析 语义分析等几个阶段 词法分析有Lex Flex等工具 语法分析有Yacc Bison等工具 我只是好奇语义分析阶段有哪些可用的工具 据我所知 没有与语言无关的工具来执行类型检查 如果有的话 它们肯定不会
  • Windows:Numpy mkl_intel_thread.dll

    经过几个小时的尝试和调查 我已经成功解决了这个问题Numpys mkl intel thread dll文件错误 以下内容可能无法解决所有情况 但我会尝试解释我的特定案例的详细信息 以帮助其他遇到相同问题的人 我的问题 当尝试启动 Anac
  • GRUB 是否切换到保护模式?

    我想问一下 启动时将CPU切换到保护模式是GRUB还是Linux内核 我还想问 内核本身 vmlinuz 是 ELF 还是纯二进制格式 谢谢 GRUB does让你进入保护模式 GRUB多重引导规范 版本 0 6 96 第 3 2 节 ht
  • Django 中的静态文件和媒体文件有什么区别?

    我正在转向 Django 1 3 发现媒体和静态文件的这种分离有点令人困惑 这是默认的方式settings py好像 Absolute filesystem path to the directory that will hold user
  • 以编程方式添加过滤器和初始化参数

    我需要将 web xml 的内容复制到 WebAppInitializer class Java 配置类 我已经从 web xml 复制了 YahooFilter 类 请参阅代码 但我不确定如何实用地添加 init params 我已在下面