home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

311 - 320 / 1320    [|<]  [|<]  [<]  31  32  33  34  35  36  37  38  39  40   [>]  [>|][>|]
タイトル/名前 更新者 更新日
日記/2013/04/06/本日の調査メモ : Yoxos msakamoto-sf 2013-04-06 18:23:56
Groovy/Gradleで活用されているJavaライブラリ msakamoto-sf 2013-04-06 16:14:43
Groovy/Gradle msakamoto-sf 2013-04-06 16:13:59
日記/2013/03/31/本日の調査メモ2 : JavaのPager系ライブラリ, Mustache テンプレートエンジン補足リンク msakamoto-sf 2013-03-31 17:49:54
Groovy/Gradle/Customizing Jar or War filename msakamoto-sf 2013-03-31 17:18:16
日記/2013/03/31/本日の調査メモ : JSP系式言語(EL), OGNL, MVEL msakamoto-sf 2013-03-31 17:08:45
日記/2013/03/30/本日の調査メモその3 : CRaSHの紹介 msakamoto-sf 2013-03-30 23:18:14
日記/2013/03/30/本日の調査メモその2 : zencoding-vim, surround.vim, READ_EXTERNAL_STORAGE msakamoto-sf 2013-03-30 22:08:16
日記/2013/03/30/本日の調査メモ : ClickJacking, OAuth 1.0周り msakamoto-sf 2013-03-30 11:13:00
Groovy/続・お手軽Web開発 (GroovyServlet, Hogan.groovy, Gradle, Tomcat) msakamoto-sf 2013-03-24 22:14:15
ソート項目 / ソート順     1ページ 件ずつ表示

日記/2013/04/06/本日の調査メモ : Yoxos  

所有者: msakamoto-sf    作成日: 2013-04-06 18:23:41
カテゴリ: Eclipse 

予め、Eclipseのディストリビューション+お気に入りのプラグインをプロファイルとして作成しておきクラウド上に保存、好きなときにDLして展開できるらしい。

ちょっと試してみたが、プラグインとして追加できるのはYoxos側でリストアップしたもののみらしい。GGTS(Groovy/Grails Tool Suite)など、Yoxos側にリストアップされてないのは追加できない。マイナーなプラグインとかYoxos側でリストアップされてないプラグインを使うケースだと少し不便かも。後になって手動でEclipse MarketplaceなどからインストールしたものなどはYoxos側のprofileには反映されないみたい。
無料だとpublicなprofileしか作成できない。enterprise版でお金を払うと、closedで例えば特定のプロダクト開発チーム専用のprofileを登録して、Eclipse環境を統一、というようなことも可能らしい。enterprise版だとどこまでの機能が使えるのか、不明点が多そう。

理想的には、現在インストールしたPluginの一覧をベースにdropinsとかにexportしてくれて、で、またそれを新しいEclipse環境にごっそりimportしてくれるような機能があると嬉しいのだけれど・・・。

他、Eclipseにインストールしたプラグインのバックアップ関連の話題を適当にググったの:

正直、良くわからない・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-04-06 18:23:56
md5:e409bab233be17ad05a36741d37b291b
sha1:028a335b4c206aa0380a88b7b3324cc0b108a81c

Groovy/Gradleで活用されているJavaライブラリ  

所有者: msakamoto-sf    作成日: 2013-04-06 16:14:10
カテゴリ: Groovy 

Gradle 1.4 - 1.5で使われているJavaライブラリの中から、「へ~、こんなのあったんだ~」というのを駆け足で紹介していきます。自分たちのJava開発でも活用出来そうです。(Gradleのlib/およびlib/pluginsの中からjarファイル名を頼りに調べたもので、具体的にGradleのどの機能で使われているかまでは調べてないです。)

JVMの外へのアクセス(C/C++コードの呼び出し, SSH2実装, CIFSアクセスライブラリ)

Java Native Access (JNA)

Pythonのctypesのように、JNIよりもシームレスにネイティブライブラリ(.dll, .so)のコードを呼び出せるライブラリ。

  • twall/jna - GitHub
  • JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT
    • JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT

adammurdoch/native-platform

予めよく使われるプラットフォーム依存のネイティブAPIを、Javaでラップしてくれるように調整済みのライブラリのようです。

JSch - Java Secure Channel

SSH2のJava実装。

JCIFS

JavaによるCIFS/SMBプロトコル処理系

リフレクション、シリアライズ関連

kryo - Fast, efficient Java serialization and cloning - Google Project Hosting

グラフ構造のオブジェクトを効率的に、素早くシリアライズするためのJavaライブラリ。

Objenesis

割りと他のプロダクトでも見かけたことがありますが、serializationやaop/mockライブラリなどで使われている、動的にJavaのインスタンスを生成する処理をサポートしてくれるライブラリのようです。コンテナフレームワークでも使われているようです。

reflectasm - High performance Java reflection - Google Project Hosting

Javaのリフレクション処理によるフィールド・メソッド・コンストラクタへのアクセスを、動的にコード生成することで高速化しているようです(何を言ってるのか自分も理解できてませんが・・・)。

テキスト処理系(HTML/XML/XPath/XSLT/JSON/YAML)

NekoHTML

JavaによるHTMLパーサ

jatl - JATL : Java Anti-Template Language - Google Project Hosting

DSLスタイルでXHTML/XMLを生成するツールキット

dom4j - Introduction

JavaでのXPath/XSLT処理のライブラリ。

jaxen

これもJavaでのXPath処理ライブラリみたいです。dom4jと組み合わせても使えるみたいです。

google-gson - A Java library to convert JSON to Java objects and vice-versa - Google Project Hosting

Java実装のJSON処理系

snakeyaml - YAML parser and emitter for Java - Google Project Hosting

Java実装のYAML処理系

その他

BeanShell

JavaのBeanShellスクリプト言語の実装。

JCommander

コマンドライン引数を処理するためのライブラリ。"-xx"とか"--yy=xxxxx"などを、アノテーションを活用してJavaBeanに自動マッピングしてくれる機能などがある。

Jansi

ANSIエスケープシーケンスの出力をサポートしてくれるライブラリ。公式Webサイトのデモ画像を見れば分かる通り、エスケープシーケンスの出力による多彩なコンソール出力が可能になりそう。

bndlib : Bnd

OSGiフレームワークで、外部ライブラリの依存関係やインポート・エクスポートするパッケージなどをメタ情報で柔軟に設定するためのフレームワーク・・・っぽいです。多分。

jarjar - Embedding Java libraries since 2004 - Google Project Hosting

依存jarを集約して、一本のjarにまとめ上げるためのライブラリ。fatjarとかその系列かも。

stephenc/jcip-annotations

日本語で読まれた人もいると思いますが、"Java Concurrency in Practice"(邦題「Java並行処理プログラミング ―その「基盤」と「最新API」を究める―」)を略してJCIPと呼んでいるらしく、その書籍中で、メソッドやクラスにおけるマルチスレッドプログラミング上の特性をアノテーションで表現する例が載っています。それを実際に実装してみたライブラリのようです。

minlog

Java実装の超シンプル・効率的なロギングライブラリのようです。slf4jなど外部ログ仕様と連携するわけではなく、完全に独自インターフェイスでコンパクト・高速・効率化を目指したようです。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-04-06 16:14:43
md5:8c4ee7f43b6d06db2d7930d0a8fe2471
sha1:104e94e994030285c664bad8440480cc9e1049f4

Groovy/Gradle  

所有者: msakamoto-sf    作成日: 2012-09-30 20:25:36
カテゴリ: Groovy 

Gradle周りの参考メモ集

本家ドキュメント:


本サイト内:


参考サイト:



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2013-04-06 16:13:59
md5:6b20b46c2bbeced0c728762390715b85
sha1:1a4830acb7e3650530fe05c04428587a8c64c219

日記/2013/03/31/本日の調査メモ2 : JavaのPager系ライブラリ, Mustache テンプレートエンジン補足リンク  

所有者: msakamoto-sf    作成日: 2013-03-31 17:48:40
カテゴリ: Groovy Java 

JavaのPager系ライブラリ:

一覧を作るときのPagination(Pager)ライブラリ、最近のJavaってどうなってるんだろうと調べてみました。JSPやJSTL, JSFに強く結び付けられてるのはスルーして、どちらかと言うと単に文字列で生成するだけとか、小回りがきいてJSPなどの仕様から距離を置いているライブラリを中心に漁った時のリンクメモです。DBのマッパー系との連携が必須なのもスルーしてます。
個人的にはPHP時代にPEARのPagerというのを多用していて、あれの、特定のFWやDBと結びつかず、単独での使い回しの良さが好きでしたので、似たようなのはJavaで無いかなと。

  • DataTables (table plug-in for jQuery)
    • http://www.datatables.net/
      • jQuery Pluginとして、クライアントサイドでPaginationの処理を一部肩代わりしてくれてるようです。これはこれで良さげ。

jQueryやExt4JSなど、JavaScriptでインターフェイスを組み立てたりする場合も多くなってきてますので、それを使ったケースも増えてるんでしょうか。PagerといってもPEARのPagerがまさにそうだったのですが、結局「全件数 + 現在OFFSET + 一度に表示する件数」が揃えば構築できるので、JavaScript側で処理させるという考え方もありですね。

Mustache テンプレートエンジン補足リンク:


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-31 17:49:54
md5:e125bbfadb7b0146d482e58748eba8c6
sha1:b1dfea7b11ea5002921f2f794ed230b65bb4e1ce

Groovy/Gradle/Customizing Jar or War filename  

所有者: msakamoto-sf    作成日: 2013-03-31 17:10:39
カテゴリ: Groovy 

Graldeにおけるjarファイル/warファイルのファイル名設定について

ドキュメント上は・・・

Jarファイル名について

デフォルトのJarファイル名の構成:

archiveName : [baseName]-[appendix]-[version]-[classifier].[extension]
baseName : デフォルトは project.name
version : デフォルトは project.version

Warファイル名について

デフォルトのWarファイル名の構成:

archiveName : [baseName]-[appendix]-[version]-[classifier].[extension]

基本的には [baseName]-[version].war ([appendix], [classifier]はデフォルトnull)

baseName : デフォルトは project.archivesBaseName
version : デフォルトは project.version

実際は・・・

ただし、特にJarについての上の記述はあくまでも一般的なアーカイブの動作みたい。

→JarもZipも、baseNameのデフォルトは project.archivesBaseName になってる。
実際に試してみると、以下の設定でjarもwarも"gsst-0.0.1-SNAPSHOT"で生成できます。

archivesBaseName = 'gsst'
version = '0.0.1-SNAPSHOT'

調べてみると"project.name"をカスタマイズする方法(デフォルトはReadOnlyの模様?)も出てきたりするはするのですが、archivesBaseNameで特に問題はなさげです。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-31 17:18:16
md5:30243694d11de7fef40c41d5bcc0e71f
sha1:86d8f2f3e02ca7f6ceac7f6d9402df910cb6518e

日記/2013/03/31/本日の調査メモ : JSP系式言語(EL), OGNL, MVEL  

所有者: msakamoto-sf    作成日: 2013-03-31 17:06:40
カテゴリ: Java 

PHPだと  foo.php?a[]=10&a[]=20...   $_GET['a']   array(10, 20)  として取り出せますし、
 foo.php?a[k1]=10&a[k2]=20...  $_GET['a']  array('k1' => 10, 'k2' => 20)  として取り出せます。
Servletで同等の事出来ないかなと思って調べてみたのですが、どうしてもStrutsやSpringなど、一定規模のフレームワークを導入した上で、Beanなどのクラスにマッピングするなどの手間をかけないと出来ない?っぽい?です。

リクエストパラメータに限ったことではなくて、JSPとかの一種のテンプレートエンジンでもよくあるニーズとして「動的にプロパティ参照やメソッド呼び出しを実行したい」というのがあって、割りとメジャーどころがライブラリを揃えてくれてます。文字列で表現された式(Expression)を動的に評価する一種のミニプログラミング言語(Language)なので、「式言語(Expression Language)」として、JSP周辺技術を調べているとよく目にします。

今回はMVELをGroovyで試してみました。

@Grapes([
@Grab('org.mvel:mvel2:2.1.4.Final')
])

import org.mvel2.PropertyAccessor

def data = [
    'k1' : 'abc',
    'k2' : 10,
    'k3' : [10, 20, 30],
    'k4' : [
        'k4_1' : 'def',
        'k4_2' : 200,
        'k4_3' : ['ABC', 'DEF', 'GHI'],
    ],
    'k5' : 'xyz',
    'k6' : [
        ['id' : 1, 'name' : 'bob', 'age' : 10, 'hobby' : ['cooking'] ],
        ['id' : 2, 'name' : 'jon', 'age' : 20, 'hobby' : ['cooking', 'sports'] ],
        ['id' : 3, 'name' : 'eve', 'age' : 30, 'hobby' : ['programming'] ],
    ],
]

assert 'abc' == PropertyAccessor.get('k1', data)
assert 10 == PropertyAccessor.get('k2', data)
assert [10, 20, 30] == PropertyAccessor.get('k3', data)
assert 10 == PropertyAccessor.get('k3[0]', data)
assert 20 == PropertyAccessor.get('k3[1]', data)
assert 30 == PropertyAccessor.get('k3[2]', data)
try {
    def r = PropertyAccessor.get('k3[3]', data)
    assert 'failed' == ''
} catch (StringIndexOutOfBoundsException e) {
    /* expected */
}
assert 'def' == PropertyAccessor.get('k4.k4_1', data)
assert 200 == PropertyAccessor.get('k4.k4_2', data)
assert ['ABC', 'DEF', 'GHI'] == PropertyAccessor.get('k4.k4_3', data)
assert 'DEF' == PropertyAccessor.get('k4.k4_3[1]', data)
assert 'bob' == PropertyAccessor.get('k6[0].name', data)
assert 'jon' == PropertyAccessor.get('k6[1].name', data)
assert 'eve' == PropertyAccessor.get('k6[2].name', data)
assert ['cooking', 'sports'] == PropertyAccessor.get('k6[1].hobby', data)

こんな感じで、参照についてはかなり直感的に記述できます。

では肝心の、値の設定についてはどうかというと・・・

@Grapes([
@Grab('org.mvel:mvel2:2.1.4.Final')
])

import org.mvel2.PropertyAccessor

def data = [:]

PropertyAccessor.set(data, 'k1', 'abc')


Caught: [Error: could not access/write property (k1) in: Foo]
[Near : {... k1 ....}]
               ^
[Line: 1, Column: 3]
[Error: could not access/write property (k1) in: Foo]
[Near : {... k1 ....}]
               ^
[Line: 1, Column: 3]
        at org.mvel2.PropertyAccessor.set(PropertyAccessor.java:374)
        at org.mvel2.PropertyAccessor.set(PropertyAccessor.java:135)
        at org.mvel2.PropertyAccessor$set.call(Unknown Source)
...

となってしまい、プロパティが無いのでassignが出来ずエラーになってしまいました・・・。

他、実際にStrutsでリクエストパラメータのマッピングに使われているOGNLも有力候補に考えてはいたのですが、"Object-Graph"とあるくらい、やっぱりBean構造と表裏一体で使われるものっぽいですね。なんというか、何が来るか分からないごった煮を乱暴にListやMapに変換する用途には全く向いてなさそうだなぁという感じでした。

「何が来るかわからないごった煮を乱暴にListやMapに変換する」手法は、どちらかというとJSONのパース処理系が近いことしてるんですよね。そうか、リクエストパラメータを一個のJSONパラメータとしてやりとりすれば良いのか・・・ってそんな乱暴な・・・とも言えないか。アリか?でも受け付ける側は楽ですが、HTMLのformとか生成する側が手間になりそうですね。Formのsubmitでもフォーム要素をJSONにまとめる必要が出てくるので、JavaScript必須ですね。

ただ、今日一日このテーマで午前中から「あーでもないこーでもない、このライブラリはどうだ?あのライブラリはどうだ?」と漁ってるんですが、じゃぁ実際、自分がPHPでオレオレフレームワーク作った時に、PHPが自動で処理してくれる連想配列の値をそのままビジネスロジックに渡したかというとそんなこたーないんですわ。必ずビジネスロジックにとって受け入れやすい形式に変換してから渡します。これは入力値チェックがどうのこうのという話ではなく、単純にURLクエリやPOSTパラメータって究極的には文字列なので、ビジネスロジックにまるごと渡すわけには行かず、やっぱり変換のために1レイヤー挟んだほうが圧倒的に構造が理解しやすいしプログラミングも安全になるわけです。もし入力値チェックやビジネスロジック側に渡すときの表現形式が変わっても、変更箇所を限定しやすくなります。そういう観点ではStrutsがOGNL使ってBeanに変換するのもその一環であって、Strutsの世界観に限定すれば全く何の異論もありません。

・・・なので、仮に、PHPライクな連想配列に変換するレイヤーを一枚挟んだとしても、結局、もう一枚ビジネスロジック向けの表現にvalidationと合わせて変換してあげるレイヤーが必要になってくることは確実です。それだったら、もうPHPライクな変換レイヤーなんか放り捨てた方が良いかなと。んなマイナーな中間レイヤー入れても、利用者が混乱するだけですし。

そんな感じで、この調査メモはクローズです。丸一日潰して何やってんだ感はありますが、まぁELとかOGNLの動向を復習できたのでそれはそれでいっか。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-31 17:08:45
md5:c7a9cfce494cd79781a2e06c76506ed2
sha1:8d7a899dfff53490f417757f629ad5031e240615

日記/2013/03/30/本日の調査メモその3 : CRaSHの紹介  

所有者: msakamoto-sf    作成日: 2013-03-30 23:15:00
カテゴリ: Groovy Java 

Twitterで見かけたのですが、JVMのモニタリング・・・というかJMX + 便利コマンド各種をSSHとかTelnet経由で使えるようにlistenしてくれる面白いツールがありました。

ソースコードはGitHubで、リリースファイルのダウンロードはGoogleCode使ってるようです。

公式の"Demo"からWeb上で試せるんですが、スレッドの一覧とか、スレッドにinterrupt送れたりと、スレッドが固まってしまった場合にインタラクティブに制御出来ます。実運用環境で利用できる代物かどうかは未知数ですが、アイデアとしては非常に面白いです。VisualVMのPluginとしても利用できるようです。Groovyでカスタムコマンドを作成出来るというのも面白そうですね。

今日は crash-1.2.0-war.tar.gz をDLして、Win上のTomcat6にデプロイしてみました。
tarボールを解凍すると crash.war が出てきますので、Tomcat6の /webapps/ 以下に配置してTomcatを起動します。
こんな感じで配備ログが出て来ました。

情報: Webアプリケーションディレクトリ crash を配備します
3 30, 2013 10:55:15 午後 org.crsh.plugin.PluginLifeCycle configureProperty
情報: Configuring property vfs.refresh_period=1 from properties
...
3 30, 2013 10:55:15 午後 org.crsh.plugin.PluginLifeCycle configureProperty
情報: Configuring property ssh.port=2000 from properties
...
3 30, 2013 10:55:15 午後 org.crsh.ssh.SSHPlugin init
情報: Booting SSHD
....
3 30, 2013 10:55:15 午後 org.crsh.ssh.term.SSHLifeCycle doInit
情報: About to start CRaSSHD
3 30, 2013 10:55:16 午後 org.crsh.ssh.term.SSHLifeCycle doInit
情報: CRaSSHD started on port 2000
...

どうやらポート2000でSSHで接続できるようです。TomcatのJVMにSSHで接続できるなんて、新鮮ですね。
ログインするときのユーザ名とパスワードですが、warが展開されたあとの "/WEB-INF/crash/crash.properties" ファイルで指定します。1.2.0-warでのデフォルトは以下のようになっていて、"admin"ユーザ、パスワード"admin"でログインできます。

crash/WEB-INF/crash/crash.properties:

# SSH configuration
crash.ssh.port=2000
#crash.ssh.keypath=/path/to/the/key/file

# Telnet configuration
crash.telnet.port=5000

# Authentication configuration
crash.auth=simple
crash.auth.simple.username=admin
crash.auth.simple.password=admin

実際にSSHクライアントを起動し、接続してみます。

[user@LB-L400B-120908 ~]$ ssh -p 2000 admin@localhost
admin@localhost's password:
   ______
 .~      ~. |`````````,       .'.                   ..'''' |         |
|           |'''|'''''      .''```.              .''       |_________|
|           |    `.       .'       `.         ..'          |         |
 `.______.' |      `.   .'           `. ....''             |         | 1.2.0

Follow and support the project on http://www.crashub.org
Welcome to LB-L400B-120908 + !
It is Sat Mar 30 22:55:23 JST 2013 now
%

"help"と入力するとコマンドのヘルプが見れます。

% help
Try one of these commands with the -h or --help switch:

NAME      DESCRIPTION
dashboard
env       display the term env
filter    A filter for a stream of map
help      provides basic help
java      various java language commands
jdbc      JDBC connection
jmx       Java Management Extensions
jndi      Java Naming and Directory Interface
jpa       Java persistance API
jvm       JVM informations
log       logging commands
man       format and display the on-line manual pages
shell     shell related command
sleep     sleep for some time
sort      Sort a map
system    vm system properties commands
thread    JVM thread commands

各コマンドでも"-h"や"help"でコマンドごとのヘルプを表示できます。

% thread help
usage: thread[-h | --help] COMMAND [ARGS]

The most commonly used thread commands are:
   interrupt        interrupt vm threads
   stop             stop vm threads
   top              thread top
   ls               list the vm threads
   dump             dump vm threads
   produce          produces threads for pipe

"thread top"とかすると、TOPで3秒間隔くらいで更新されました。Ctrl-Cで戻れるとか、これがJavaで動いているのかとびっくりします。"thread dump"の使い方がちょっと分からない・・・。

Groovy読める人は、"/WEB-INF/crash/commands/base" の下に各コマンドのGroovyソースコードが置いてあるので、それ読むと良いかもしれません。

あと便利なことに、CRaSHのコマンドラインってTAB補完が効くんですよね。上下カーソルでコマンド履歴もアクセスできます。
まるでGNU readlineのようなのですが、依存ライブラリをチラ見したら "jline" とかいうjarが入ってました。

やっぱりreadlineみたいな機能をJavaで実現するためのライブラリのようですが、これもまた面白そうですね。

以上、CRaSHの紹介でした。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-30 23:18:14
md5:53d6ff1bb5c9951cb0ae65592c6e4c08
sha1:de9870710a132c2374acf32b70ed5c7fff5e987f

日記/2013/03/30/本日の調査メモその2 : zencoding-vim, surround.vim, READ_EXTERNAL_STORAGE  

所有者: msakamoto-sf    作成日: 2013-03-30 22:06:04
カテゴリ: Android 

しばらくぶりにHTMLをvimで書きそうなので、最近はどんな感じか調べてみました。

surround.vim

zencoding-vim

zencoding-vimの便利さに鼻血吹くかと。

他、

経由で

JellyBeanになって色々セキュリティ面でも強化されてるので気になります。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-30 22:08:16
md5:38d81334e182e2b99524e1b5cbaf683f
sha1:91344fa806e33f7dbfe552902808b27bf195f5dc

日記/2013/03/30/本日の調査メモ : ClickJacking, OAuth 1.0周り  

所有者: msakamoto-sf    作成日: 2013-03-30 11:11:52
カテゴリ: OAuth セキュリティ 

ClickJacking関連:後半は流し読みレベル。

OAuthのConsumerKey/ConsumerSecretの扱いについて:

OAuth 1.0aベース:

Application-only authentication : OAuth 2.0, Client Credentials Grant を実装

xAuthに関連して、OAuthでは3-leggedと2-leggedと呼ばれる二種類がある。

今現在ホットなConsumerKey/ConsumerSecretのモバイルやデスクトップアプリケーションでの取り扱い周り

TwitterのConsumerKeyガー、ConsumerSecretガー、と騒動になった件の、顛末らしきまとめ。

単純にConsumerKey/Secretが漏洩しただけでは危険とは断定できなくて、ServiceProvider側のcallbackの取り扱いであるとか、認可画面のClickJacking対策とかが絡みあって結果として脆弱な状態になってたみたいです。下手に状況を説明するとどこかで間違ってる可能性があるので詳しくは上のmalaさんとかritouさんのGist読む。

Twitterの件が関連してたのかどうか分かりませんが、ClickJackingの話もタイムリーにIPAから出て来ましたので、これを機会に色々と復習します。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-30 11:13:00
md5:0394ef82c6726ec42fc7458bd964917f
sha1:f28fd960e3abf4259a0f563a3f990ea16e08eb31

Groovy/続・お手軽Web開発 (GroovyServlet, Hogan.groovy, Gradle, Tomcat)  

所有者: msakamoto-sf    作成日: 2013-03-24 22:08:00
カテゴリ: Groovy Java 

GroovyServlet + Hogan.groovyでお手軽Web開発が出来るように、超簡単なMVC紛いのWebフレームワークっぽい作りが出来るように調整した、Gradleプロジェクトのテンプレートを作ってみました。

https://github.com/msakamoto-sf/groovyservlet-sample-template

demoサンプルを幾つか作ってありますので、それを見て適当に弄って、貴方好みのオレオレフレームワークに仕立ててください。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-03-24 22:14:15
md5:0d0bce6ab06f9ffab08861cfe378eb11
sha1:d75ab1c5d0395439b861886da73b64891a3840ce