1

同様のスレッドが開かれているのに、簡単に思える問題があるようですが、解決策が見つかりません。さて、pdfを含むURLへのアクセスを拒否したい: attica.unipi.gr:8080/xmlui/bitstream/handle/123456789/5/a3iologisi%20genika.pdf?sequence=1

これはしっかりした URL ではありませんが、その一部 --> /123456789/5/a3iologisi%20genika.pdf?sequence=1 は、ユーザーがクリックして表示する PDF に応じて動的に生成されることに注意してください。

だから、これに基づいて: http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter、私はこれを試しました:

<filter>
  <filter-name>Remote Address Filter</filter-name>
  <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
  <init-param>
    <param-name>deny</param-name>
    <param-value>127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>Remote Address Filter</filter-name>
  <url-pattern>/xmlui/bitstream/handle/*/*/*</url-pattern>
</filter-mapping>

しかし、まだ機能しません。これはURLパターンの問題だと思うので、パターンを次のように変更してみました

/xmlui/bitstream/handle/*/*/*pdf

また

/attica.unipi.gr:8080/xmlui/bitstream/handle/*/*/*

しかし、まだ運がありません。サイト全体へのアクセスを制限するか、まったく何もしません。

助言がありますか?

ありがとうございました !!

4

1 に答える 1

2

有効な URL パターンを構成するものについては、サーブレットの仕様を読む必要があります。短いバージョンでは、ワイルドカードで終わる (例: <url-pattern>/foo/bar/*</url-pattern>) か、ワイルドカードで始まる ( <url-pattern>*.jsp</url-pattern>)必要があります。

任意のファイルを pdf 拡張子と一致させたいだけなら、それ<url-pattern>*.pdf</url-pattern>が必要です。Tomcat (またはその他のサーブレット コンテナー) は、URL パターン マッチングを行うときにクエリ パラメーターを無視します。

余談ですが、プロトコル、ホスト名、ポート、コンテキスト パスのいずれも URL パターンに含めるべきではありません。

于 2013-10-02T16:33:31.273 に答える