NAKAMURA Minoru の日記 (2019年4月)

先月の日記(2019年03月) 今月の日記(2019年04月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | Google+
slideshare | github | Qiita



4/26 (金)

アベンジャーズ エンド・ゲーム

チネチッタで『アベンジャーズ エンド・ゲーム』の字幕版を観る。 『インフィニティ・ウォー』の終わり方からして、今回はタイムトラベルものになるとみんな想像していたがやっぱりそうだった。 タイムトラベルは劇薬なので、それを取り扱う作品はいろいろ工夫をするものだが、エンド・ゲームは割と直球だった。 大作で登場人物が多いとそうなるよね…


4/21 (日)

シャザム!

TOHO シネマズ川崎で『シャザム!』(原題: Shazam!)の吹き替え版を観る。 主役のビリーの吹き替えが緒方恵美なので、シンジ君感半端ない。


4/19 (金)

PowerDNS

Web から登録・変更が可能な DNS サーバーが欲しくて PowerDNS をインストールしたのだが、かなり手こずったのでメモしておく。

PowerDNS は Authoritative という権威サーバーと Recursor というキャッシュサーバーの 2 種類があり、別々に運用することを想定している。 PowerDNS Authoritative は example.com のようなドメインを公開するための DNS サーバーだが、それでも自分が持っていないドメインは設定ファイルの recursor というパラメータで指定した別の DNS サーバーに聞きに行くことができた。 ところが、権威サーバーでありながら他へ DNS サーバーへクエリーを回送できる機能は脆弱性につながると バージョン 4.1.0 から recursor パラメータを廃止してしまった。 そのため自分でドメインを運用しようと思った場合、PowerDNS Authoritative とは別にキャッシュサーバーとなるもう一台(PowerDNS Recursor を想定)が必ず必要となるとのこと。 Web 上の

とりあえず参考1のCentOS 7 x86_64に PowerDNS Authoritative Server 4.0.4 をインストール の記事を参考に PowerDSN をインストールする。 昔の Solaris 2.x の頃を思い出せる。

その後に PowreDNS Recursor をインストールする。 CentOS 7 の場合は yum instal pdns-recursor でインストールができる。

その後に、PowerDNS Authoritative はポート番号を 53 から別の番号に変更する。

/etc/pdns/pdns.conf:
daemon=no
guardian=no
launch=gmysql
setgid=pdns
setuid=pdns
gmysql-host=127.0.0.1
gmysql-user=username
gmysql-password=password
gmysql-dbname=pdns

local-port=5300

次に PowerDNS Recursor は forward-zones というパラメータでドメイン名と検索したい DNS サーバーを指定する。 forward-zonesforward-zones=(ドメイン名)=(DNSサーバー名) と記述し、すべてのドメインに一致させたければ . と書けばよい。 これは一般の DNS サーバーと接続する。 ここでは Google の DNS サーバー(8.8.8.8)を指定している。

一方、PowerDNS Authoritative が example.com を公開していれば forward-zones=example.com=127.0.0.1:5300 と書ける。

注意が必要なのは設定ファイルの記述順で、一般的には上から順番にパターンマッチングして行くように思えるが、どうも逆順のようだ。 一般的なものを上に書き、特殊なものを下に書く。

/etc/pdns-recursor/recursor.conf:
forward-zones=.=8.8.8.8
forward-zones=example.com=127.0.0.1:5300

allow-from=127.0.0.0/8, 10.0.0.0/8
local-address=0.0.0.0

参考

  1. Qiita | CentOS 7 x86_64に PowerDNS Authoritative Server 4.0.4 をインストール

追記: 5/13

PowerDNS であってもドメインに NS フィールドを設定しないとセカンダリー DNS サーバーがゾーンを処理できないのを忘れていた。


4/18 (木)

Windows で使える WebDAV クライアントソフト

この内容は独立したページに移動。

Windows で使える WebDAV クライアントソフトを作る方法

Windows で WebDAV をクライアントソフトを作る方法。


4/16 (火)

Dropbox の同期デバイス制限

Dropbox が無料プランで同期できるデバイスを3 台に制限したけど、「これ以上 Dropbox にデバイスをリンクできません」という警告メールが来た。 現在使っているデバイスは 5 台(Android 2 台、Windows に 3 台)なので、今後新しいデバイスを購入しても利用できないことになる。 Microsoft Office 365 Solo をサブスクリプションしていると OneDrive 1TB の利用権が付いてくるので、これからはそちらを中心に使うしかないのか?


4/14 (日)

[Java] JAXB を一部

JAX-RS は JAXB を使って JSON データを Java のオブジェクトにマッピングするが、その際に JSON ドキュメントの一部分をデコードせずに文字列のままで受け取りたいということがある。

例えば JSON の一部分がうまくマッピングできない場合である。

{
    "name":"nminoru",
    "password":"PASSWORD",  
    "options":{
        "opt":"OPT",
        "etc":"ETC"
    }
}

Java のオブジェクトにマッピングした場合には、以下のようになることを期待している。

class Input {
    public String name;     // nminoru
    public String password; // PASSWORD
    public String options;  // {"opt":"OPT", "etc":"ETC"}
}

これをやる方法をいろいろ探してたが、1. の Stack Overflow の回答にある @XmlJavaTypeAdapterXmlAdapter を使えば可能だと分る。 2. のように JSON データの文字列(String) と JSON-P の JsonObject をマッピングできる。 具体的には以下のようなクラスを作成する。

public class JsonObjectAdapter extends XmlAdapter<String, JsonObject> {
    @Override
    public String marshal(JsonObject v) throws Exception {
        return v.toString();
    }

    @Override
    public JsonObject unmarshal(String v) throws Exception {
        JsonReader jsonReader = Json.createReader(new StringReader(v));
        return jsonReader.readObject();
    }
}

JsonObject 型の options赤字のように @XmlJavaTypeAdapter のアノテーションを設定する。 @XmlJavaTypeAdapter を付けると Java のフィールド名がそのまま JSON のフィールド名と認識できなくなるようなので、青字のように @XmlElement で名前も一緒に指定する必要があるようだ。

class Input {
    public String name;
    public String password;

    @XmlElement(name="options")
    @XmlJavaTypeAdapter(JsonObjectAdapter.class)
    public JsonObject options;
}

XmlAdapterunmarshal メソッドの引数 v には、JSON 構文的に v の最初の文字と構文上つりあう終了位置までが入力されるので、そのまま文字列として記録するもよし、JsonObject のようなデータ構造にマップするもよし。

  1. Stack Overflow | How to write a JsonStructure (JSR-353) XmlAdaptor for JAXB MOXy?
  2. https://github.com/nminoru/misc/blob/master/java/jaxb_test/src/main/java/nminoru/jaxb_test.java

4/12 (金)

Nexus Repository Manager をバージョンアップ

運用していた Nexus Repository Manager の 3.14.0-14 は脆弱性の警告が出ていたので、3.16.0-01 にバージョンアップした。


先月の日記(2019年03月) 今月の日記(2019年04月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | Google+
slideshare | github | Qiita


Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp