snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

backlinks マクロは DNS を参照する

SnipSnap の backlinks マクロを利用しようとしたら、 www.google.com を resolve しようとして Tomcat のセキュリティ・マネージャに 引っかかった続き。

backlinks マクロのソース org.snipsnap.render.filter.links.BackLinks を見ると、 どうやら Referer のホスト名を DNS 参照している。 なんでかと言うと、Referer が www.google.com を指す場合 "www.google.com" + q リクエスト・パラメータの値を表示するためらしい。 これはこれでカッコ良い機能だが、他の検索エンジンから来た場合はそのまま 表示されるだけなので中途半端な感じだ。

という事で catalina.policy を以下に修正。

permission java.net.SocketPermission "*", "resolve";

スポンサーサイト

SnipSnap の backlinks マクロ

SnipSnap の backlinks マクロは外部サイトから参照された リンク元 URL を表示するマクロで、 リンク元の URL とそこからのアクセスカウントがリスト表示される。 SnipSnap にはトラックバック機能が無いけど、 このマクロでページが何処からリンクされているのか解るので使ってみた。

利用方法は 2 通りあり、一つ目は通常のマクロを利用する時と同じく、 スニップ内に {backlinks} と書く方法。 こうするとそのページのその位置にリストが表示される。 二つ目は、SnipSnap/config スニップの app.feature.referrer.show を true にする方法で、全ページの sniplinks の下に表示される。

さっそく利用しようと思ったら、Tomcat のセキュリティ・マネージャに引っかかって 以下の例外が発生し、以後すべてのリクエストを受け付けなくなってしまった。

java.security.AccessControlException: access denied (java.net.SocketPermission www.google.com resolve)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
        at java.security.AccessController.checkPermission(AccessController.java:401)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
        at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023)
        at java.net.InetAddress.getAllByName0(InetAddress.java:1000)
        at java.net.InetAddress.getAllByName0(InetAddress.java:981)
        at java.net.InetAddress.getAllByName(InetAddress.java:975)
        at java.net.InetAddress.getByName(InetAddress.java:889)
        at org.snipsnap.render.filter.links.BackLinks.(BackLinks.java:56)
なぜ www.google.com にアクセスしようとしているのか解らないが、 とりあえず catalina.policy に以下を追加して再起動した。
permission java.net.SocketPermission "*", "connect";

SnipSnap の RSS

SnipSnap における RSS のリクエスト URL は /exec/rss だ。 この URL には org.snipsnap.net.RssServlet サーブレットがマッピングされていて、 以下のリクエスト・パラメータを指定できる様だ。

snip
配信を要求するブログのスニップ名を指定する。 未指定の場合はスタートページが対象となる。 ブログで無いスニップを指定すると、同じくスタートページが対象になる。

type
よく解らないが、"recentlychanged" を指定すると配信対象がブログではなく 更新したページになる様だ。 この場合 snip パラメータは無意味となる。

version
配信するフォーマットを指定する。 未指定か無効な値を指定すると RSS 2.0 フォーマットで出力する。 "1.0" か "0.92" を指定すると RSS のそれぞれのバージョンで出力する。 それぞれ rdf.jsp, rss.jsp にディスパッチされるのだが、 良く解らないがちゃんと出力できていない様な感じ。 "plain" というのも指定できるが、ディスパッチ先の plain.jsp が無いので不明。

snip パラメータが示す通りブログを複数作成できるのだが、 HTML のヘッダに含まれる RSS の為のリンクにはこのパラメータは指定されないため、 Firefox の右下のオレンジ・マークからはスタートページのブログしか ブックマーク出来ない。 スタートページ以外のブログの RSS の URL を得たい場合は、 右列の下の XML アイコンで可能。

Top

HOME

snbhsmt

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。