jettyTiddlywiki

English page here.
jettyTiddlywiki
/file/jettyTiddlywiki/jtw.png
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を利用したログイン管理で十分ネットに公開していても通用すると思う)

利用方法

/file/jettyTiddlywiki/ccc.png
ソフトを起動した図

起動し

https://localhost:8443

をブラウザで開く

起動と初期設定(windows)

Download windows jettyTiddlywiki_win.zip (5.6Mb, sqlite edition)
jettyTiddlywiki_win.zip (3.3Mb, h2-database edition)

win4.png
解凍するとexeがあるのでこれを起動する
sslkey.png

本ソフトはコマンドプロンプト付きで起動する。

初回起動時、更にSSL通信のため公開鍵・秘密鍵生成で別プロンプトが開く。
通信証明書組み込みのため自身の姓名、所属、都市、国を問われるがこの証明書は俺々で公開鍵・秘密鍵さえ使えるようにならどうでもいい全て空欄でエンターでいい。
最後にはいいいえで答えないとならないところがあるので適当にどこかではいの文字を右クリックでコピーしてコマンドプロンプト上で右クリック貼り付けしてエンター。
その後秘密鍵生成のパスワードを問われるのでパスワードを入力する。公開鍵はkeystoreファイルに保存される

元のコマンドプロンプトに戻って先ほど入力した秘密鍵生成のパスワードを入力しエンター。秘密鍵はdecryption.key中にハッシュ化して保管される。
その後jettyTiddlywikiサーバが起動する

idpass.png
ブラウザでhttps://localhost:8443に接続すると、ウェブサイト名, 権限ユーザid, 権限ユーザpasswordの設定画面となるので設定し終えるとトップページへ飛ぶ。
なお、権限ユーザid, 権限ユーザpasswordは暗号ハッシュ化する関数に不足があるようで不具合を起こすので半角英数記号の組み合わせで全角文字の使用は控えて下さい

win3.jpg
javascriptの効きが悪いため、ieではないブラウザの利用をおすすめします。
サーバを落とすときはコマンドプロンプトを落とします。

起動と初期設定(Linux)

Download linux jettyTiddlywiki_jar.zip (5.6Mb, sqlite edition)
jettyTiddlywiki_jar.zip (3.3Mb, h2-database edition)
linux.jpg
linux上でjava -jar jettyTiddlywiki-0.0.1-SNAPSHOT-jar-with-dependencies.jarコマンドを実行した図

zipをダウンロードするとjettyTiddlywiki-0.0.1-SNAPSHOT-jar-with-dependencies.jarがあるためこれを起動する。

java -jar jettyTiddlywiki-0.0.1-SNAPSHOT-jar-with-dependencies.jar

コマンドを実行。以降windowsの方の内容と変わりありません。

利用方法

/file/jettyTiddlywiki/mmm.png
上部黒いバーのMainMenuを開き、View Codeリンクでエディタを開いた図

上部の黒いバーにあるMainMenuを開く。これを編集することで上部の黒いバーの項目を編集できる。
右上にあるView Codeリンクをクリックするとエディタが開く。ここで内容を書き換えて右下commitボタンで内容を更新する。左下Previewでプレビューすることもできる。

タグはタグに書きました。

検索

/file/jettyTiddlywiki/hs.png
検索を行った図

下茶色のバー左項目Searchをクリックすると検索テキストフィールドが出る。ここに検索項目を打ってEnterキーを押す

ページ更新履歴

/file/jettyTiddlywiki/mdf.png
履歴表示を行った図

下茶色のバー右項目Differenceをクリックするとページの更新履歴が表示される

ファイル添付

/file/jettyTiddlywiki/mat.png
ファイル添付を行った図

下茶色のバー右項目Attachmentをクリックするとページに添付されたファイル一覧とアップロードフォームが表示される

最近の更新

/file/jettyTiddlywiki/mre.png
最近の更新の表示を行った図

下茶色のバー右項目Recentをクリックすると最近更新されたページが列挙される

セキュリティーについて

1. 通信情報の暗号・復号化
keys.png

本ソフトは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);

https://www.dropbox.com/s/4f7olvqe7ilma7z/jettyTiddlywiki-0.0.1-SNAPSHOT-jar-with-dependencies.jar?dl=0

    last modified: 28 April 2016 [ View wiki source Close ]
     
SEARCH DIFFERENCE ATTACHMENT RECENT POST