RSS

日々のメモ書き

Debian Developerが綴るメモ

kerberos+pam

PAMを使ってKerberos認証を行うには。

README.Debianを読めというだけ。/etc/pam.d/common-*にKerberosのモジュールを使う設定を加えるだけ。

ただし、Active Directoryでは認証しかできない。アカウントが必要なら/etc/passwdに追加するか、LDAPで持ってくるかしないといけない。SFUという手もあるらしい。

apt.confメモ

testing(stable)環境からunstableを一部インストールする方法。

なんだっけと、すでに設定してあるPCから設定を探すことがあるのでメモ。

apt-lineにsidを追加する。それだけではsidが無分別に入るので、/etc/apt/apt.confにこう書く。

APT::Default-Release "testing";

2007-04-19修正

コードネーム(etch)では駄目。

Debian Etch installer

Debian Etch Installer rc2をテストしてみた。

expertguiでブートさせる。DebianでもGUIモードのインストーラが使えるなんて…。もうすぐ10年Debianを使い続けてきて、最初のころのひどいインストーラーから比べるとついにここまで来たかと思う。ほとんどインスーラーの言うとおりにまかせて適当にやっていくだけで日本語のgdmが起動するところまで進行。素晴らしい。

Xnest + gdm

Xnestを使ってgdmを使いたいとき。

$ gdmflexiserver --xnest
気付かなかったよ。ああ、これで楽になる。

PerlでKerberos5

続き。

/etc/krb5.confに次のように書く。

[realms]
SAMPLE.REALM = {
  kdc = 192.168.0.1
}

で、プログラム側でREALMをSAMPLE.REALMに指定すればいい。Authen::Krb5::Simple(3pm)をもとにして書くとこうなる。

use Authen::Krb5::Simple;
my $krb = Authen::Krb5::Simple->new();
$krb->realm("SAMPLE.REALM");
my $authen = $krb->authenticate("username", "password");
unless($authen) {
my $errmsg = $krb->errstr();
dir "User: authentication failed: $errmsg\n";
}

認証されたあとどうすればいいんだろう、と思ったらこのモジュールでは認証以外のことは何にもできないのね。

PerlでKerberos5

Authen::Krb5::Simpleを使ってみようと思った。

/etc/krb5.confを書かなきゃいけなかったのね。どこでKDCを指定するんだろうって悩んでいたが。単純な話でした。

JasperReportsで日本語を使う

次は日本語だね、って適当にやってみるとエラーが出る。

さっき作ったJasperReportsのサンプルコードのデータソースに日本語を与えてみようと挑戦。次の段階として当たり前だね。jrxmlをiReportで編集。Textのプロパティを見ていけばPDF FontとPDF Encodingという欄がある。HeiseiMin-W3・UniJIS-UCS2-Hにそれぞれ設定。PDFのフォント設定として普通の設定ですね。

次にJavaのコードの変更。コード中に適当に日本語のデータを埋め込む。よし、これで実行…、あれ?

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 
pdfFontName : HeiseiMin-W3
pdfEncoding : UniJIS-UCS2-H
isPdfEmbedded : false
at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:1465)
at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1368)
at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1351)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:1708)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:590)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:554)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:519)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:306)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:126)
at MapArrayDSReport.main(MapArrayDSReport.java:68)

というようなエラーが。調べてみるとiTextがデフォルトでCJKに対応してないからということが原因だった。iTextAsian.jarをダウンロードしてきてCLASSPATHに追加すると見事表示された。ここはまるので注意。

JasperReportに挑戦

やっとこさJasperReportを使ったプログラムを書けた。

一から頑張るなんてことはやらないで、JasperForgeにあるサンプルをもとに改造した。サンプルのjasperbook_chapter_5のソース(JasperCompileManager.java)を改造する。もともとのコードはサーブレットになっている。そんなことされてはめんどくさいのでその場でPDFを生成するように改造した。そのあたりはThinkITの記事を参考に。ずらずらとソースを並べても仕方がないのでmainのところだけ書く。

	public static void main(String[] args) {
String templatePath = "./template/AircraftReport.jrxml";
String destPath = "./JasperSample1.pdf";
try {
JasperReport jasperReport = JasperCompileManager
.compileReport(templatePath);

JRDataSource dataSource = createReportDataSource();

JasperPrint print = JasperFillManager.fillReport(jasperReport,
new HashMap(), dataSource);
JasperExportManager.exportReportToPdfFile(print, destPath);
System.out.println("done");
} catch (Exception e) {
e.printStackTrace();
}
}

てな具合です。

ThinkITの記事はデータソースがデータベースとの接続を前提とした記事になっていたので別のコードを見なきゃデータソース変更の方法がわからなかっただけです。一回書いてみると別にデータソースの変更に面倒な話は何もない。Eclipseを使ったから勝手に補完にヘルプで楽だった。

練習開始

2ヶ月以上ほうりだしてあったロードバイクに乗る。

距離は50kmぐらい。気合の入ってない格好で気合の入ってない格好で走る。

久しぶりに乗ってみたらハンドルが遠かった。いかんな、体がMTBに慣れすぎている。
しばらく走ってみたら体が思い出したようで、きちんと乗れるようになってきた。だけど、まだまだ本気の練習ではない。来週こそ本格的に走りたいものだ。

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 >