<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xml:lang="ja">
	<channel>
		<title>Glamenv-Septzen.net</title>
		<link>http://www.glamenv-septzen.net/index.php</link>
		<description>Glamenv-Septzen.net</description>
		<dc:creator>msakamoto-sf</dc:creator>
		<atom:link href="http://www.glamenv-septzen.net/index.php?mdl=rss&amp;mode=rss2&amp;c=&amp;s=&amp;ism=&amp;cs=&amp;ao=&amp;sb=&amp;ob=&amp;l=" rel="self" type="application/rss+xml" />
		<item>
			<title>SideBar</title>
			<link>http://www.glamenv-septzen.net/view/2</link>
			<description><![CDATA[
<ul><li> <a href="http://www.glamenv-septzen.net/view/8" >プロフィール</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/166" >YakiBiki</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/7" >TODO</a></li>
<li> <a href="http://www.glamenv-septzen.net/nifty/index.html" target="_blank" >Nifty時代</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/23" >技術</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/478" >C言語系</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/457" >Java</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/1079" >Scala</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/421" >ActionScript</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/410" >Assembler</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/409" >Erlang</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/25" >PHP</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/109" >Perl</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/184" >Python</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/474" >Ruby</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/162" >JavaScript</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/356" >Emacs</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/404" >読書</a></li>
<li> <a href="http://www.glamenv-septzen.net/index.php?mdl=help&amp;h=HelpTop">ヘルプ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/3" >SandBox</a></li>
<li> <a href="http://www.glamenv-septzen.net/index.php?mdl=new&amp;title=%E5%80%89%E5%BA%AB" >倉庫</a></li></ul>

<hr />
<div class="plugin_recent">
<span class="plugin_recent_date">2012-05-07</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/2">SideBar</a><br />
</div>
<span class="plugin_recent_date">2012-05-06</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1080">Scala/色々な実行方法</a><br />
<a href="http://www.glamenv-septzen.net/view/1079">Scala</a><br />
</div>
<span class="plugin_recent_date">2012-05-04</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1078">日記/2012/05/04/さすがに23時overはきついかも。</a><br />
</div>
<span class="plugin_recent_date">2012-05-02</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1077">日記/2012/05/02/JavaでHTTP(S)両対応のProxyを実験してみた。</a><br />
</div>
<span class="plugin_recent_date">2012-04-23</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1076">日記/2012/04/22/JavaでSSLSocketの勉強メモ2</a><br />
</div>
<span class="plugin_recent_date">2012-04-22</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1075">日記/2012/04/22/JavaでSSLSocketの勉強メモ1</a><br />
</div>
<span class="plugin_recent_date">2012-04-16</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1074">技術/Security/OAuth</a><br />
</div>
<span class="plugin_recent_date">2012-04-15</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/457">Java</a><br />
</div>
<span class="plugin_recent_date">2012-04-09</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1073">Java/Tomcat, Jetty と ServletContext.getRealPath() の末尾</a><br />
<a href="http://www.glamenv-septzen.net/view/1072">Java/com.sun.tools.javac.Main, Compiler API, tools.jar 今昔メモ</a><br />
<a href="http://www.glamenv-septzen.net/view/1068">日記/2012/03/18/MavenのwarプロジェクトをEclipse上からデバッグ</a><br />
<a href="http://www.glamenv-septzen.net/view/1071">Java/Maven3/Eclipse上でサクサクWeb開発 (例:tomcat-maven-plugin)</a><br />
<a href="http://www.glamenv-septzen.net/view/804">Java/Maven2メモ</a><br />
</div>
<span class="plugin_recent_date">2012-04-01</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1070">日記/2012/04/01/EGitでドハマリ中・・・</a><br />
<a href="http://www.glamenv-septzen.net/view/1069">技術/RCS/Git</a><br />
</div>
<span class="plugin_recent_date">2012-03-18</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1067">技術/MacOSX/テキストエディタ環境</a><br />
</div>
<span class="plugin_recent_date">2012-03-12</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1066">日記/2012/03/12/bouncycastleのX509V3CertificateGeneratorクラス</a><br />
</div>
<span class="plugin_recent_date">2012-03-11</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/1013">技術/RCS/Mercurial</a><br />
<a href="http://www.glamenv-septzen.net/view/1065">日記/2012/03/11/Eclipse3.7(Indigo)とm2eにMavenプロジェクトをインポートするメモ</a><br />
</div>
</div>

<hr />
<div class="plugin_newcomments">
<h6>最新コメント10件</h6>
<a href="http://www.glamenv-septzen.net/view/211#cf_1">2009-03-21</a>&nbsp;by&nbsp;msakamoto-sf<br />
</div>
<br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=2" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 06 May 2012 23:28:13 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/2</guid>

		</item>
		<item>
			<title>Scala/色々な実行方法</title>
			<link>http://www.glamenv-septzen.net/view/1080</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Scala</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
Scalaを実行する色々な(といっても2種類だけど)方法。
<br />
</p>

<h3 id="id075afc">対話型インタプリタから実行</h3>

<ol><li> 基本なので省略。</li>
<li><strong>但し対話型インタプリタ上(正確にはREPL:Read Eval Print Loop)からの場合、中でpackage宣言は出来ません。</strong>&quot;illegal start of definition&quot; が発生します。な、なんだってー！！</li></ol>

<h3 id="id57903c">スクリプトとして実行</h3>

<p class="paragraph">
シェバン行指定については調べてません。
<br />
</p>

<p class="paragraph">
(適当なディレクトリ1)/run_by_script.scala:
<br />
</p>
<pre>args.foreach(println)
</pre>

<p class="paragraph">
実行：(適当なディレクトリ2)に移動してscalaコマンドでファイル名指定。
<br />
</p>
<pre>&gt; scala (適当なディレクトリ1)/run_by_script.scala abc def
abc
def
</pre>

<p class="paragraph">
ポイント：
<br />
</p>
<ol><li> スクリプトファイル名と、中で宣言するクラスは無関係。いくらでもクラス宣言可能。</li>
<li><strong>但しスクリプトファイルの場合、中でpackage宣言は出来ません。</strong>&quot;illegal start of definition&quot; が発生します。な、なんだってー！！</li></ol>

<h3 id="id899ca2">コンパイルして実行</h3>

<p class="paragraph">
(適当なディレクトリ1)/hello.scala:
<br />
</p>
<pre>class c1
class c2
object main {
  def main(args:Array[String]) {
    for (i &lt;- 0 to args.length - 1) println(&quot;args(&quot; + i + &quot;) = &quot; + args(i))
  }
}
</pre>

<p class="paragraph">
&quot;適当なディレクトリ2&quot;に移動してコンパイル
<br />
</p>
<pre>&gt; scalac (適当なディレクトリ1)/hello.scala
</pre>
<p class="paragraph">
→ &quot;適当なディレクトリ2&quot; の下にクラスファイル(.class)が生成される。(&quot;-d&quot; で出力先ディレクトリを指定できます。)
<br />
</p>

<p class="paragraph">
&quot;適当なディレクトリ2&quot;に移動してコンパイルしたクラスファイルを実行
<br />
</p>
<pre>&gt; scala main abc def
args(0) = abc
args(1) = def
</pre>

<p class="paragraph">
ポイント：
<br />
</p>
<ol><li> ソースファイル名と中のクラス名を一致させる必要はありません。</li>
<li> ちなみに、あくまでもscalaはコンパイルして実行するタイプの言語ですので、Perl/Python/Ruby/PHPみたいにソースファイルを実行時に取り込んで実行する機能は多分ありません。importはありますがあくまでもコンパイル済みの.classファイルを参照するのみ。</li></ol>

<p class="paragraph">
こういう機能はない・・・多分。
<br />
</p>
<pre>foo.scala:
...
import &quot;abc/sub1.scala&quot;
...
</pre>

<h3 id="idc8033b">コンパイルして実行(package宣言有り)</h3>

<p class="paragraph">
(適当なディレクトリ1)/package1.scala:
<br />
</p>
<pre class="plugin_pre">
package foo {
  class c1
}

package foo.bar {
  class c2
}

package foo.bar.baz {
  object main {
    def main(args:Array[String]) {
      args.foreach(println)
    }
  }
}
</pre>


<p class="paragraph">
&quot;適当なディレクトリ2&quot;に移動してコンパイル
<br />
</p>
<pre>&gt; scalac (適当なディレクトリ1)/package1.scala
</pre>
<p class="paragraph">
→ &quot;適当なディレクトリ2&quot;の下に以下の構成でclassファイルが生成される。
<br />
</p>
<pre>foo/c1.class
foo/bar/c2.class
foo/bar/baz/main.class, main$.class, ...
</pre>

<p class="paragraph">
&quot;適当なディレクトリ2&quot;の外からコンパイルしたクラスファイルを実行
<br />
</p>
<pre>&gt; scala -cp 適当なディレクトリ2 foo.bar.baz.main abc def
abc
def
</pre>

<p class="paragraph">
ポイント：
<br />
</p>
<ol><li> ソースファイル・ソースのディレクトリ構成と、パッケージ名・クラス名は別々に付けられます。</li>
<li> 但し生成されるクラスファイルの構成は、パッケージ名とクラス名に従います。</li></ol>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Up</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Scala</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1080" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 06 May 2012 13:32:01 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1080</guid>
<category>Scala</category>
		</item>
		<item>
			<title>Scala</title>
			<link>http://www.glamenv-septzen.net/view/1079</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1080" title="Scala/色々な実行方法">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Scala</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
Scalaに関するエントリや、役立ちリンクなど。
<br />
</p>

<p class="paragraph">
言語および言語ドキュメント：
<br />
</p>
<ul><li> The Scala Programming Language<ul><li> <a class="externallink" href="http://www.scala-lang.org/" target="_blank">http://www.scala-lang.org/</a></li></ul></li>
<li> Scala Documentation - Scala Documentation<ul><li> <a class="externallink" href="http://docs.scala-lang.org/" target="_blank">http://docs.scala-lang.org/</a></li></ul></li>
<li> A Scala Tutorial for Java Programmers - Scala Documentation<ul><li> <a class="externallink" href="http://docs.scala-lang.org/tutorials/scala-for-java-programmers.html" target="_blank">http://docs.scala-lang.org/tutorials/scala-for-java-programmers.html</a></li></ul></li>
<li> Scalacheat - Scala Documentation<ul><li> <a class="externallink" href="http://docs.scala-lang.org/cheatsheets/" target="_blank">http://docs.scala-lang.org/cheatsheets/</a></li></ul></li></ul>

<p class="paragraph">
ライブラリ：
<br />
</p>
<ul><li> Akka (&quot;Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM.&quot;)<ul><li> <a class="externallink" href="http://akka.io/" target="_blank">http://akka.io/</a></li></ul></li></ul>

<hr />
<ul>
<li><a href="http://www.glamenv-septzen.net/view/1080">Scala/色々な実行方法</a></li>
</ul>

<hr />

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1080" title="Scala/色々な実行方法">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1079" title="Scala">Scala</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1079" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 06 May 2012 11:54:03 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1079</guid>
<category>Scala</category>
		</item>
		<item>
			<title>日記/2012/05/04/さすがに23時overはきついかも。</title>
			<link>http://www.glamenv-septzen.net/view/1078</link>
			<description><![CDATA[
<p class="paragraph">
昨日の真夜中あたりから下痢と吐き気で身動き取れない・・・。お昼すぎに正露丸買ってスポーツドリンク確保して、ようやく落ち着いてきた感じ。
<br />
</p>

<p class="paragraph">
1週間くらいのお休みで、後半位に発症してる。前回は年始・年末休みが開けて新年会終わった日の真夜中から発症。
<br />
</p>

<p class="paragraph">
2度も同じ症状なので、2回も同じ風邪とかインフルエンザに罹ったともな・・・。
<br />
</p>

<p class="paragraph">
去年末位からかなり帰りが遅くなる傾向で、ここ最近も週2-3日は日が変わってからオフィスを出たりする羽目になっている。
<br />
</p>

<p class="paragraph">
おかげで土曜日は頭痛と目眩で、午後いっぱいはだらだらとWeb見るだけが限界。
<br />
</p>

<p class="paragraph">
多分長めの休みを取ると、それまでのダメージが少し遅れて現れてくるのかも。
<br />
</p>

<p class="paragraph">
前回から4ヶ月の間が開いているので、次回は9月頃にまた1週間程度の休みを確保してみて、なおかつその前の月は遅くとも21:00頃にはオフィスを出るようにして調節してみて、比較実験をしてみようか。
<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1078" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Fri, 04 May 2012 06:31:10 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1078</guid>

		</item>
		<item>
			<title>日記/2012/05/02/JavaでHTTP(S)両対応のProxyを実験してみた。</title>
			<link>http://www.glamenv-septzen.net/view/1077</link>
			<description><![CDATA[
<p class="paragraph">
前回・前々回のエントリーとJavaでSSLSocket関連のお勉強をしてきましたが、そもそもの目的はBurpSuiteなどのHTTP/HTTPS両対応のJavaのProxyが、どうやってHTTPSのProxyを実現しているかの調査でした。基本的にはHTTPSプロキシを設定されたUser-Agentは、最初にCONNECTメソッドで本来のホスト名とポート番号をProxyに伝え、Proxyは以降、HTTPではなくTCPレベルでUser-Agentと実際のサーバとの間のパケットの中継のみを行います。したがってSSL/TLSのパケットの中身には触れません。一方で、BurpSuiteやDoormanなどはSSL/TLSのパケットの中身についても読み書きが出来ます。さらにBurpSuiteなどは接続先に応じて証明書をその場で生成することが可能で、共通のPortSwiggerのCA証明書で署名された証明書がUser-Agentには提示されます。
<br />
ProxyがSSL/TLSの内容について読み書きする方式は、少なくとも2種類の実装方式があるようです。
<br />
</p>
<ul><li> 内部でMITMのSSL/TLSサーバを立ち上げ、そこに中継するタイプ。(jumperz.netのDoormanがこのタイプ)</li>
<li> SSLEngine(JDK 1.5以降)を使ってProxy自身がハンドシェイクからSSL/TLSパケットのwrap()/unwrap()を行うタイプ。</li></ul>

<p class="paragraph">
今回はMITMのSSL/TLSサーバを立ち上げ、中継するタイプを作れるか実験してみました。HTTPサーバ・クライアントの実装やHTTPメッセージの処理については Apache HttpComponents の HttpCore を使って手抜きしました。さすがにソケット入出力の調整やHTTPメッセージの処理まで、ゼロからコーディングする体力は無いです・・・。
<br />
</p>

<ul><li> Apache HttpComponents<ul><li> <a class="externallink" href="http://hc.apache.org/" target="_blank">http://hc.apache.org/</a></li></ul></li>
<li> 前回・前々回のエントリー：<ul><li> <a href="http://www.glamenv-septzen.net/view/1075" >日記/2012/04/22/JavaでSSLSocketの勉強メモ1</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/1076" >日記/2012/04/22/JavaでSSLSocketの勉強メモ2</a></li></ul></li></ul>

<a href="http://www.glamenv-septzen.net/view/1077" class="readmore_link">(全て表示する)</a><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1077" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Wed, 02 May 2012 13:40:45 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1077</guid>
<category>Java</category>
<category>セキュリティ</category>
		</item>
		<item>
			<title>日記/2012/04/22/JavaでSSLSocketの勉強メモ2</title>
			<link>http://www.glamenv-septzen.net/view/1076</link>
			<description><![CDATA[
<p class="paragraph">
前回のエントリ <a href="http://www.glamenv-septzen.net/view/1075" >日記/2012/04/22/JavaでSSLSocketの勉強メモ1</a> に対してFacebook経由で早速HTTPのCONNECTメソッドでFA。
<br />
やばい、SNSでこんなに早くヒントとかFAもらえるのってあまりにも初体験すぎる。
<br />
</p>

<p class="paragraph">
さておき、ちょっとJavaのKeyManager触ってて疑問に思ったのが、「複数のKeyPairが格納されていた時、どれがクライアントに提示されるんだろう？」
<br />
→すでにStackOverflowに挙がってた。
<br />
</p>
<ul><li> How can I have multiple SSL certificates for a Java server - Stack Overflow<ul><li> <a class="externallink" href="http://stackoverflow.com/questions/1788031/how-can-i-have-multiple-ssl-certificates-for-a-java-server" target="_blank">http://stackoverflow.com/questions/1788031/how-can-i-have-multiple-ssl-certificates-for-a-java-server</a></li></ul></li>
<li> java - Can we load multiple Certificates &amp; Keys in a Key Store? - Stack Overflow<ul><li> <a class="externallink" href="http://stackoverflow.com/questions/6370745/can-we-load-multiple-certificates-keys-in-a-key-store" target="_blank">http://stackoverflow.com/questions/6370745/can-we-load-multiple-certificates-keys-in-a-key-store</a></li></ul></li>
<li> FixedServerAliasKeyManager.java - jsslutils - Java SSL utilities - Google Project Hosting<ul><li> <a class="externallink" href="http://code.google.com/p/jsslutils/source/browse/tags/release-1.0.5/jsslutils/src/main/java/org/jsslutils/sslcontext/keymanagers/FixedServerAliasKeyManager.java" target="_blank">http://code.google.com/p/jsslutils/source/browse/tags/release-1.0.5/jsslutils/src/main/java/org/jsslutils/sslcontext/keymanagers/FixedServerAliasKeyManager.java</a></li></ul></li></ul>

<p class="paragraph">
X509KeyManagerを実装して、chooseServerAlias()を調整すればよさげ。なるほどな〜。<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1076" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 22 Apr 2012 15:01:23 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1076</guid>
<category>Java</category>
<category>セキュリティ</category>
		</item>
		<item>
			<title>日記/2012/04/22/JavaでSSLSocketの勉強メモ1</title>
			<link>http://www.glamenv-septzen.net/view/1075</link>
			<description><![CDATA[
<p class="paragraph">
お仕事でBurpSuiteを使っているのだけど、暫く前から気になってしょうがない点がある。HTTPSの時に、なんでBurpは適切なCNでPortSwiggerによる証明書を生成できるのだろう？
<br />
</p>

<p class="paragraph">
というわけで、その辺のもやもやを解決するためにはまずSSLを学ばないと駄目かなと思い、資料漁ったり入り口としてJavaでSSLを使うにはどうするのか、とか手をつけてみました。
<br />
今回はそのお勉強メモで、SSLでechoサーバをJavaで作ってみようという、少しぐぐればサンプルがゴロゴロ転がってるやつです。ただ、そのサンプルが「なぜそれで正常に動作するのか？」を理解するだけで実に丸一日使い果たした・・・。
<br />
</p>

<a href="http://www.glamenv-septzen.net/view/1075" class="readmore_link">(全て表示する)</a><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1075" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 22 Apr 2012 10:20:38 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1075</guid>
<category>Java</category>
<category>セキュリティ</category>
		</item>
		<item>
			<title>技術/Security/OAuth</title>
			<link>http://www.glamenv-septzen.net/view/1074</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1031" title="技術/Security/GnuPG">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1058" title="技術/Security/PKI,SSL,TLS/メモ01_拡張子の迷宮(pem,der,crt,cer,csr,...)">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/23" title="技術">技術</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
OAuth勉強用リンクメモ。
<br />
</p>

<ul><li> OAuth Community Site<ul><li> <a class="externallink" href="http://oauth.net/" target="_blank">http://oauth.net/</a></li></ul></li>
<li> OAuth - Wikipedia, the free encyclopedia<ul><li> <a class="externallink" href="http://en.wikipedia.org/wiki/OAuth" target="_blank">http://en.wikipedia.org/wiki/OAuth</a></li></ul></li></ul>

<h3 id="id791e45">実装</h3>

<ul><li> 2-legged OAuthによるAPIアクセス &lt;&lt; mixi Developer Center (ミクシィ デベロッパーセンター)<ul><li> <a class="externallink" href="http://developer.mixi.co.jp/appli/ns/mob/2-legged-oauth/" target="_blank">http://developer.mixi.co.jp/appli/ns/mob/2-legged-oauth/</a></li></ul></li>
<li> Obtaining access tokens | Twitter Developers<ul><li> <a class="externallink" href="https://dev.twitter.com/docs/auth/obtaining-access-tokens" target="_blank">https://dev.twitter.com/docs/auth/obtaining-access-tokens</a></li></ul></li>
<li> OpenSocialのOAuthまとめ – Tender Surrender<ul><li> <a class="externallink" href="http://devlog.agektmr.com/ja/archives/79" target="_blank">http://devlog.agektmr.com/ja/archives/79</a></li></ul></li></ul>

<h3 id="id866e43">OAuth 1.0</h3>

<ul><li> RFC 5849 - The OAuth 1.0 Protocol<ul><li> <a class="externallink" href="http://tools.ietf.org/html/rfc5849" target="_blank">http://tools.ietf.org/html/rfc5849</a></li></ul></li>
<li> 2-legged vs. 3-legged OAuth - cakebaker<ul><li> <a class="externallink" href="http://cakebaker.42dh.com/2011/01/10/2-legged-vs-3-legged-oauth/" target="_blank">http://cakebaker.42dh.com/2011/01/10/2-legged-vs-3-legged-oauth/</a></li></ul></li></ul>

<h3 id="id871ada">OAuth 2.0</h3>

<ul><li> OAuth 2.0でWebサービスの利用方法はどう変わるか（1/3）- ＠IT<ul><li> <a class="externallink" href="http://www.atmarkit.co.jp/fsmart/articles/oauth2/01.html" target="_blank">http://www.atmarkit.co.jp/fsmart/articles/oauth2/01.html</a></li></ul></li>
<li> 単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる : .Nat Zone<ul><li> <a class="externallink" href="http://www.sakimura.org/2012/02/1487/" target="_blank">http://www.sakimura.org/2012/02/1487/</a></li></ul></li>
<li> OAuth 2.0 Implicit Flowをユーザー認証に利用する際のリスクと対策方法について #idcon - r-weblife<ul><li> <a class="externallink" href="http://d.hatena.ne.jp/ritou/20120206/1328484575" target="_blank">http://d.hatena.ne.jp/ritou/20120206/1328484575</a></li></ul></li>
<li> 「OAuth 2.0 (Implicit Flow) でログイン」の被害例 - OAuth.jp<ul><li> <a class="externallink" href="http://oauth.jp/oauth-20-implicit-flow" target="_blank">http://oauth.jp/oauth-20-implicit-flow</a></li></ul></li>
<li> OAuthにおける「クライアントサイドに対する認可」なのか「サーバーサイドに対する認可」なのか明確でない問題 - 金利0無利息キャッシング – キャッシングできます - subtech<ul><li> <a class="externallink" href="http://subtech.g.hatena.ne.jp/mala/20120214/1329199851" target="_blank">http://subtech.g.hatena.ne.jp/mala/20120214/1329199851</a></li></ul></li>
<li> OAuth 2.0でユーザーが認可をする&quot;アプリケーション&quot;とはサービス全体のことではない - r-weblife<ul><li> <a class="externallink" href="http://d.hatena.ne.jp/ritou/20120311/1331444771" target="_blank">http://d.hatena.ne.jp/ritou/20120311/1331444771</a></li></ul></li></ul>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1031" title="技術/Security/GnuPG">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/1058" title="技術/Security/PKI,SSL,TLS/メモ01_拡張子の迷宮(pem,der,crt,cer,csr,...)">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/23" title="技術">技術</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1074" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 15 Apr 2012 15:36:50 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1074</guid>
<category>OAuth</category>
<category>セキュリティ</category>
		</item>
		<item>
			<title>Java</title>
			<link>http://www.glamenv-septzen.net/view/457</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/800" title="Java/Apache MINA/Echo Server, Client 習作">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/457" title="Java">Java</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
Javaに関するエントリや、役立ちリンクなど。
<br />
</p>
<hr />

<ul>
<li><a href="http://www.glamenv-septzen.net/view/800">Java/Apache MINA/Echo Server, Client 習作</a></li>
<li><a href="http://www.glamenv-septzen.net/view/794">Java/Apache MINA/ProtocolDecoder周辺メモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/461">Java/BCEL/実験コード1</a></li>
<li><a href="http://www.glamenv-septzen.net/view/839">Java/ClassLoader周りの資料集(2010-Nov版)</a></li>
<li><a href="http://www.glamenv-septzen.net/view/802">Java/Collections/Setの同期化メモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/882">Java/IOストリームメモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/807">Java/JUnit</a></li>
<li><a href="http://www.glamenv-septzen.net/view/806">Java/JUnit/&quot;test&quot;接頭辞無しの&quot;@Test&quot;メソッドが認識されない</a></li>
<li><a href="http://www.glamenv-septzen.net/view/804">Java/Maven2メモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/1071">Java/Maven3/Eclipse上でサクサクWeb開発 (例:tomcat-maven-plugin)</a></li>
<li><a href="http://www.glamenv-septzen.net/view/803">Java/Property, ResourceBundleメモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/1073">Java/Tomcat, Jetty と ServletContext.getRealPath() の末尾</a></li>
<li><a href="http://www.glamenv-septzen.net/view/458">Java/clas3hift</a></li>
<li><a href="http://www.glamenv-septzen.net/view/459">Java/clas3hift/失敗談</a></li>
<li><a href="http://www.glamenv-septzen.net/view/1072">Java/com.sun.tools.javac.Main, Compiler API, tools.jar 今昔メモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/826">Java/「Javaデザインパターン徹底攻略」読書メモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/816">Java/サービス化, Daemon化メモ</a></li>
</ul>


<p class="paragraph">
&quot;Java/&quot;形式に整理する以前の記事：
<br />
</p>

<ul>
<li><a href="http://www.glamenv-septzen.net/view/967">技術/Java/BurpSuiteの起動batch参考メモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/81">技術/Java/PostgreSQLと文字コードメモ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/95">技術/Java/Solaris10のサービス管理とLog4j-syslogd</a></li>
<li><a href="http://www.glamenv-septzen.net/view/105">技術/Java/Tomcat上でJSPをJDBでデバッグとか。</a></li>
<li><a href="http://www.glamenv-septzen.net/view/289">技術/Java/URLConnectionとTimeoutによる自動リトライ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/290">技術/Java/static finalを使用する場合の注意点</a></li>
<li><a href="http://www.glamenv-septzen.net/view/86">技術/Java/文字コードメモ1</a></li>
<li><a href="http://www.glamenv-septzen.net/view/90">技術/Java/文字コードメモ2</a></li>
<li><a href="http://www.glamenv-septzen.net/view/1039">技術/Java/文字コードメモ3</a></li>
</ul>


<p class="paragraph">
日記などより：
<br />
</p>
<ul><li> <a href="http://www.glamenv-septzen.net/view/1068" >日記/2012/03/18/MavenのwarプロジェクトをEclipse上からデバッグ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/1065" >日記/2012/03/11/Eclipse3.7(Indigo)とm2eにMavenプロジェクトをインポートするメモ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/1064" >日記/2012/03/10/Eclipse3.7(Indigo)でMavenとSubversion環境セットアップメモ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/1063" >日記/2012/02/26/MavenでServletプログラミングを準備したメモ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/455" >日記/2009/10/11/JUnit-addonsもJUnitでprivateメソッドをテストできるようだ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/449" >技術/TDD/JavaでUnitTestでprivateメンバにアクセスしたい場合</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/448" >技術/TDD/JavaにおけるUnitTest時のMockオブジェクトの導入手法</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/300" >日記/2006/08/27/ArrayListのtoArray()で嵌った</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/298" >日記/2006/08/10/jstat, jps で&quot;process information unavailable&quot;</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/295" >日記/2006/11/02/JavaでPropertyファイルを好き勝手な位置から読み込ませるには</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/263" >日記/2007/05/13/JavaのClassLoader, クラスローディング関係の資料</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/261" >日記/2007/05/27/Understanding Class.forName()</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/150" >技術/TDD/HttpUnit解説リンク</a></li></ul>

<hr />
<h3 id="id629a8c">JDK Documents</h3>

<ul><li> Java SE API &amp; ドキュメント<ul><li> <a class="externallink" href="http://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html" target="_blank">http://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html</a></li></ul></li>
<li> Java SE Specifications<ul><li> <a class="externallink" href="http://docs.oracle.com/javase/specs/" target="_blank">http://docs.oracle.com/javase/specs/</a></li></ul></li>
<li> &quot;JSR 133: JavaTM Memory Model and Thread Specification Revision&quot;<ul><li> <a class="externallink" href="http://jcp.org/en/jsr/detail?id=133" target="_blank">http://jcp.org/en/jsr/detail?id=133</a></li></ul></li>
<li> Servlet 2.4 specification<ul><li> <a class="externallink" href="http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html" target="_blank">http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html</a></li></ul></li>
<li> Servlet 2.5 specification<ul><li> <a class="externallink" href="http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index.html" target="_blank">http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index.html</a></li></ul></li></ul>

<h3 id="idd8a4fd">usefull WWW pages</h3>

<ul><li>  Java examples (example source code)<ul><li> <a class="externallink" href="http://www.java2s.com/" target="_blank">http://www.java2s.com/</a></li></ul></li>
<li> TECHSCORE<ul><li> <a class="externallink" href="http://www.techscore.com/" target="_blank">http://www.techscore.com/</a></li></ul></li></ul>

<h4 id="idd516a7">for beginners, basics</h4>

<ul><li> 浅煎り珈琲 -Java アプリケーション入門<ul><li> <a class="externallink" href="http://nextindex.jp/java/index.html" target="_blank">http://nextindex.jp/java/index.html</a></li></ul></li>
<li> Javaの道（Java入門・リファレンス）<ul><li> <a class="externallink" href="http://www.javaroad.jp/" target="_blank">http://www.javaroad.jp/</a></li></ul></li>
<li> JavaでHello World<ul><li> <a class="externallink" href="http://www.hellohiro.com/" target="_blank">http://www.hellohiro.com/</a></li></ul></li></ul>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/800" title="Java/Apache MINA/Echo Server, Client 習作">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/457" title="Java">Java</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=457" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 15 Apr 2012 12:53:14 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/457</guid>
<category>Java</category>
		</item>
		<item>
			<title>Java/Tomcat, Jetty と ServletContext.getRealPath() の末尾</title>
			<link>http://www.glamenv-septzen.net/view/1073</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/803" title="Java/Property, ResourceBundleメモ">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/458" title="Java/clas3hift">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/457" title="Java">Java</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
<a href="http://www.glamenv-septzen.net/view/1071" >Java/Maven3/Eclipse上でサクサクWeb開発 (例:tomcat-maven-plugin)</a> にて tomcat-maven-plugin を選択した理由に、
<br />
「実働環境はTomcatなのに、開発をJettyとすることで不要な地雷を踏み抜きそうな悪寒がした。」
<br />
と書きましたが、今思い出しました。
<br />
</p>

<p class="paragraph">
<strong>実際に地雷を踏み抜いていたから、わざわざTomcatを選んだのでした。</strong>
<br />
</p>

<p class="paragraph">
その理由は簡単で、javax.servlet.ServletContext#getRealPath(&quot;/&quot;) が返す文字列が、<strong>Tomcatの場合末尾が &#039;/&#039; 付きで、Jettyの場合末尾の &#039;/&#039; が付いてこない。</strong>で、件のEclipseプロジェクトでは
<br />
</p>
<pre>getRealPath(&quot;/&quot;) + &quot;WEB-INF/foo/bar...&quot;;
</pre>
<p class="paragraph">
としていたものだから（他人から引き継いだ既存プロジェクト）、Jettyに載せ替えようと思っても載せ替えられない。
<br />
</p>

<p class="paragraph">
実例：/work/tmp/mvntest/servlet1/src/main/webapp/WEB-INF/web.xml をdeploy
<br />
</p>
<dl>
<dt> Tomcat上でのgetRealPath(&quot;/&quot;) </dt>
<dd>
<pre>/work/tmp/mvntest/servlet1/src/main/webapp/
</pre></dd>
<dt> Jetty上でのgetRealPath(&quot;/&quot;) </dt>
<dd>
<pre>/work/tmp/mvntest/servlet1/src/main/webapp
</pre></dd>
</dl>

<p class="paragraph">
まぁ他にも地雷が埋まってそうだったので、素直にTomcatで打てる手が無いか探していた結果、tomcat-maven-plugin を見つけた次第です。
<br />
これだと、
<br />
</p>
<pre>getRealPath(&quot;/&quot;) + &quot;WEB-INF/foo/bar...&quot; 
</pre>
<p class="paragraph">
がJettyだと
<br />
</p>
<pre>/work/tmp/mvntest/servlet1/src/main/webappWEB-INF/foo/bar...
</pre>
<p class="paragraph">
になってしまい、ファイル操作が失敗してしまうという罠・・・。
<br />
</p>

<p class="paragraph">
この辺、もしかして仕様が決まってないのかな？JavaDoc確認しても、J2EE 1.3 と Java EE 6 の双方で、ディレクトリを指定した場合の末尾のPATH SEPARATORについて明確な言及がない。
<br />
</p>
<ul><li> Java 2 Platform EE v1.3: Interface ServletContext<ul><li> <a class="externallink" href="http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletContext.html#getRealPath" target="_blank">http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletContext.html#getRealPath</a>(java.lang.String)</li></ul></li>
<li> ServletContext (Java EE 6 )<ul><li> <a class="externallink" href="http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath" target="_blank">http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath</a>(java.lang.String)</li></ul></li></ul>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/803" title="Java/Property, ResourceBundleメモ">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/458" title="Java/clas3hift">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/457" title="Java">Up</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/457" title="Java">Java</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=1073" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Mon, 09 Apr 2012 14:16:13 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/1073</guid>
<category>Java</category>
		</item>
	</channel>
</rss>
