jettyTiddlywiki
English page here. |
jettyTiddlywiki | |
---|---|
![]() |
|
Repository | launchpad |
Download | windows jettyTiddlywiki_win.zip |
linux jettyTiddlywiki_jar.zip | |
Revision | 31 (2014.01.25) |
jettyTiddlywikiは組み込みサーバを利用してスタンドアロンで動くウィキソフトです。
このgoogle app engine上で動いているウィキソフトのクローンになります。
認証機能は無い。
→本ブランチgaeTiddlywikiにセッション認証を実装したためこちらの機能を統合予定 2013.7.7
→通信ssl(ただしこの場合秘密鍵がダウンロードできるもので絶対に複合できないものではない(下記))に加えDigest認証ssl公開鍵・秘密鍵をインストール時に再生成してもらうことにした。またDigest認証はやめハッシュ暗号化された格納ユーザID,passwordを使ってsessionを介してログインを保持することにした 2013.7.14
学内や社内でのイントラネットでの利用でなら使えるかと思います。
(2013.7.14 sslとsessionを利用したログイン管理で十分ネットに公開していても通用すると思う)
利用方法
![]() |
起動し
https://localhost:8443
をブラウザで開く
起動と初期設定(windows)
Download | windows | jettyTiddlywiki_win.zip (5.6Mb, sqlite edition) |
jettyTiddlywiki_win.zip (3.3Mb, h2-database edition) |
解凍するとexeがあるのでこれを起動する
本ソフトはコマンドプロンプト付きで起動する。
初回起動時、更にSSL通信のため公開鍵・秘密鍵生成で別プロンプトが開く。
通信証明書組み込みのため自身の姓名、所属、都市、国を問われるがこの証明書は俺々で公開鍵・秘密鍵さえ使えるようにならどうでもいい全て空欄でエンターでいい。
最後にはい
、いいえ
で答えないとならないところがあるので適当にどこかではい
の文字を右クリックでコピーしてコマンドプロンプト上で右クリック貼り付けしてエンター。
その後秘密鍵生成のパスワードを問われるのでパスワードを入力する。公開鍵はkeystore
ファイルに保存される
元のコマンドプロンプトに戻って先ほど入力した秘密鍵生成のパスワードを入力しエンター。秘密鍵は
decryption.key
中にハッシュ化して保管される。
その後jettyTiddlywikiサーバが起動する
ブラウザでhttps://localhost:8443に接続すると、ウェブサイト名, 権限ユーザid, 権限ユーザpasswordの設定画面となるので設定し終えるとトップページへ飛ぶ。
なお、権限ユーザid, 権限ユーザpasswordは暗号ハッシュ化する関数に不足があるようで不具合を起こすので半角英数記号の組み合わせで全角文字の使用は控えて下さい
javascriptの効きが悪いため、ieではないブラウザの利用をおすすめします。
サーバを落とすときはコマンドプロンプトを落とします。
起動と初期設定(Linux)
Download | linux | jettyTiddlywiki_jar.zip (5.6Mb, sqlite edition) |
jettyTiddlywiki_jar.zip (3.3Mb, h2-database edition) |
![]() |
zipをダウンロードするとjettyTiddlywiki-0.0.1-SNAPSHOT-jar-with-dependencies.jar
があるためこれを起動する。
java -jar jettyTiddlywiki-0.0.1-SNAPSHOT-jar-with-dependencies.jar
コマンドを実行。以降windowsの方の内容と変わりありません。
利用方法
![]() |
上部の黒いバーにあるMainMenu
を開く。これを編集することで上部の黒いバーの項目を編集できる。
右上にあるView Code
リンクをクリックするとエディタが開く。ここで内容を書き換えて右下commit
ボタンで内容を更新する。左下Preview
でプレビューすることもできる。
タグはタグに書きました。
検索
![]() |
下茶色のバー左項目Search
をクリックすると検索テキストフィールドが出る。ここに検索項目を打ってEnterキーを押す
ページ更新履歴
![]() |
下茶色のバー右項目Difference
をクリックするとページの更新履歴が表示される
ファイル添付
![]() |
下茶色のバー右項目Attachment
をクリックするとページに添付されたファイル一覧とアップロードフォームが表示される
最近の更新
![]() |
下茶色のバー右項目Recent
をクリックすると最近更新されたページが列挙される
セキュリティーについて
1. 通信情報の暗号・復号化
本ソフトはSSL機能を利用しており、公開鍵と秘密鍵の組み合わせで暗号と復号が行えるようになっています。
よって、仮に公開鍵と秘密鍵の両方が流出した場合には復号が可能になります。
それぞれ下記のファイルに収納されているため、sqlインジェクションやhttpsの通信では到達しないかと思いますが、ftpやユーザ乗っ取り等でコピーされないようご注意下さい
公開鍵 keystore 復号鍵 decryption.key また、本来その上で公開鍵格納ファイル
keystore
にパスワード付きzipと同じ感覚でpasswordを施すのですが、本ソフトではそれを行なっていないためjettyと呼ばれるソフトウェアデフォルトのパスワードでkeystoreの情報、すなわち公開鍵が読めるため公開鍵がコピーされるとこさら問題となります
2. パスワードのハッシュ化
gaeTiddlywikiパスワード管理について
本ソフトでもデータベース内にパスワードを保管しているわけですが、salt,keystrechingと呼ばれるハッシュ暗号化の手続きを全て行ったかなり厳重な方法で格納しており、仮にその格納パスワードの情報を全て得ても元の有効なユーザid,ユーザpasswordの組み合わせを得ることは現実的には難しくなっています。
開発
jettyTiddlywiki pom
このソフトにHTML出力機能つけたところで、FTPソフトは別個にインストールして起動しなきゃならないし、使う人いるの?
jetty ssl, digest auth
gaeTiddlywikiパスワード管理について
jetty 静的ファイルとサーブレットとルートディレクトリ
jetty-core-6.1.14をclasspathに入れるのが面倒なので自分でm2に入れる
session id authorization確認
sqlite, h2の記法の違いと共通点
tiddlywiki Java 1.7.25 tiddlysaver.jar doesn't work problem
jettyTiddlywiki構成,placement
20160427
sslcPort, connectionPort
int sslcPort = 8443; int connectorPort = 8080; for (String string : args) { if (string.equals("--help")){ System.out.println("java -jar jettyTiddlywiki.jar [--help] [--connectorPort=1234] [--sslcPort=1234]"); System.exit(0); }else if(string.startsWith("--connectorPort=")){ connectorPort = Integer.parseInt(string.split("=")[1]); }else if(string.startsWith("--sslcPort=")){ sslcPort = Integer.parseInt(string.split("=")[1]); } } org.eclipse.jetty.server.Server server = new Server(); ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); SocketConnector connector = new SocketConnector(); connector.setPort(connectorPort); server.setConnectors(new Connector[]{connector}); org.eclipse.jetty.server.ssl.SslSelectChannelConnector sslc = new org.eclipse.jetty.server.ssl.SslSelectChannelConnector(); sslc.setPort(sslcPort);