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

如何创建JSF过滤器/url模式来保护Java脚本

夏飞跃
2023-03-14

我已经编写了一个Java web过滤器来处理JSF应用程序的安全性。我得到了如下过滤器的映射:

<filter-mapping>
    <filter-name>authFilter</filter-name>
    <url-pattern>/secure/*</url-pattern>
    <url-pattern>/login.jsf</url-pattern>
    <url-pattern>/*.js.jsf</url-pattern>    <--- invalid pattern
</filter-mapping>

现在我想创建一个url模式来过滤所有javascript文件。我使用Primeface,所以. js文件在URL中检索,如下所示:

http://localhost:8080/MyProject/javax.faces.resource/MyJavascriptFile.js.jsf?ln=MyLibrary

我无法过滤整个javax。面孔。资源,因为它还保存CSS文件。有没有一种方法可以创建一个只匹配javascripts的URL模式?

共有2个答案

澹台华翰
2023-03-14

*通配符功能在JSF中受到限制,因为只允许使用一个*,并且必须位于“表单视图id”字符串的末尾。例如,(任何xml)它都可以工作。

<from-view-id>/customer/*</from-view-id>

它永远不会匹配…

<from-view-id>/cus*mer/</from-view-id>
<from-view-id>/c*sto*er/*</from-view-id>
<from-view-id>*/customer</from-view-id>

看看这个页面

任宾鸿
2023-03-14
<url-pattern>/*.js.jsf</url-pattern>    <--- invalid pattern

这确实是一种无效的URL模式。通配符*只能位于URL模式的开头或结尾。在您的特定情况下,您根本不需要/前缀。

<url-pattern>*.js.jsf</url-pattern>    <--- valid pattern

请注意,这个问题与JSF无关。Servlet过滤器是基本Servlet API的一部分。

  • 映射servlet以满足我的请求
 类似资料:
  • 假设我已经定义了这些RESTendpoint: 我定义了两个过滤器(日志记录和授权),在这些过滤器中,我想获得与当前请求匹配的url模式。使用上述示例: 如果请求是一个GET到 /variables,我需要"/变量" 如果请求是一个GET到 /variables/myfancyname,我需要"/变量/{name}" 如果请求是一个PUT到 /variables/myfancyname/myval

  • 主要内容:实现,Person.java,Criteria.java,CriteriaMale.java,CriteriaFemale.java,CriteriaSingle.java,AndCriteria.java,OrCriteria.java,CriteriaPatternDemo.java过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型

  • 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现 我们将创建一个 Person 对象、Criteria 接口和实现了该接口的实体类,来过滤 Person 对象的列表。CriteriaP

  • 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现 我们将创建一个 Person 对象、Criteria 接口和实现了该接口的实体类,来过滤 Person 对象的列表。CriteriaP

  • 还有,如果真的要给出另一个模式,“/restful/**”不是更好吗?因为“/**”将匹配与“/RESTFUL/**”不匹配的URL,因此不由此筛选器链处理。

  • 问题内容: 我需要实施 其中ptrn是命令提示符样式模式,例如“ * 2010 * .txt” 我熟悉FilenameFilter类,但 由于String.matches()不接受此类模式而无法实现 。 谢谢! 问题答案: 所述接受的正则表达式 模式。 “ layman’s”变体的regex变体为。 因此,以下应该工作: 双反斜杠只是用来表示实际的反斜杠,因为反斜杠本身是Java中的转义字符。 另