2017-01-01から1年間の記事一覧
JJUG CCC 2017 Fall に行って、1セッション・1LT をしゃべってきたので、その報告というか裏話というか。 Spring Security にできること・できないこと qiita.com こちらは半年前のKANJAVA PARTY で一度話したやつでした。 もともと 2017 Spring でも何か…
とりあえず最小構成の Hello World を書いて動かした。 問題なさそうなので Hello World として記事に書き始めた。
ACL がだいたい分かってきたので、記事の内容をあらためて考えてる。 しかし、分かりやすくするにはどういう順番で説明していくのがいいか結構悩む。
AclService LookupStrategy AclCache AclAuthorizationStrategy PermissionGrantingStratgy このあたりの関係をクラス図に起こしてみて、クラス間の関係を整理した。 だいたい役割とかが見えてきた。 どーん
KANJAVA PARTY 用の資料をひとまず作った。 まだ通してみてないので、来週の土日に脳内リハーサルして最中チェック。 あと LT 用の資料も作った。 どちらかというとこっちが本番感。
溜まってるやつそろそろ投稿していこうと思うので、最終見直し。 メソッドセキュリティ CORS Run-As は投稿できそう。
ACL を実現するときに Bean を大量に登録しなければならないが、それぞれの役割が謎すぎてコンストラクタ引数とかで何を指定する必要があるのかとかが分からなさ過ぎた。 最低限動かすのに必要になった以下の Bean 達について、それぞれの役割についていろい…
ObjectIdentityImpl oi = new ObjectIdentityImpl(Foo.class, 44L); MutableAcl acl = this.aclService.createAcl(oi); とか ObjectIdentityImpl oi = new ObjectIdentityImpl(Foo.class, 44L); MutableAcl acl = this.aclService.createAcl(oi); System.out…
Spring Security ACL Plugin - Reference Documentation The plugin uses domain classes to manage database state. プラグインはドメインクラスをデータベースの状態を管理するために使用します。 Ordinarily the database structure isn’t all that impor…
Spring Security ACL Plugin - Reference Documentation There are two primary use cases for ACL security: determining whether a user is allowed to perform an action on an instance before the action is invoked, and restricting access to single…
Spring Security ACL Plugin - Reference Documentation 1. Introduction to the Spring Security ACL Plugin The ACL plugin adds Domain Object Security support to a Grails application that uses Spring Security. ACL プラグインは、 Spring Security…
土曜日はデモアプリのリファクタリングと草案の見直し。 日曜日は、 Qiita で下書きを書き始めた。 既に 40 ページ超えてて、普通にやったら 50 分に納まる気がしないけど、まぁ、とりあえず全部書いてリハーサルしてから考えよう。 あと LT の準備もせなあ…
KANJAVA PARTY 2017 で発表予定の内容について、ざっくり概要を少し進めた。 ひとまずざっくり概要は一通りできたので、次は全体を見直しながら内容の取捨選択をしていく。
JJUG CCC 2017 Spring 見たのは次のセッション 非機能要件と Spring Boot (梅澤雄一郎さん) Vue.js + Spring Boot で楽しくフルスタック開発やってみた (うらがみさん) データ履歴管理のためのテンポラルデータモデルと Reladomo の紹介 (伊藤博志さん) 文型…
たぶんドメインオブジェクト(特定のデータ)単位でアクセス制御をできるようにするための仕組みなんだけど、リファレンスに載ってるサンプルの情報が不足しすぎてて苦戦中。 なんとか必要そうな Bean を定義したが、トランザクション管理が必要と言われたと…
Spring Security の CORS についていろいろ動作確認した。 わりとすっきりしてて分かりやすい印象。 設定書くだけで preflight request とか勝手にやってくれるのは便利でいいなぁって思った。
よく考えたら記事に書いてなかったなぁと仕事中に思い出したので調べた。 <csrf> タグの属性とかで指定できるのかなぁと思ったら、 IntelliJ の補完で属性が3つしか表示されない。 しかたないので実装(CookieCsrfTokenRepository)を見に行ったら、↓のようになっ</csrf>…
Spring Framework provides first class support for CORS. Spring Framework は CORS をサポートするクラスを提供します。 CORS must be processed before Spring Security because the pre-flight request will not contain any cookies (i.e. the JSESSIO…
Remember-Me 認証でログインするときに、フォームには <input type="checkbox" name="remember-me" /> を追加しておけばいい。 けど、 value 属性を省略した場合って、なんの値が渡っているのだろう? 実際に動かしたら、 on という値が渡っていた。 <input type="checkbox"> - HTML | MDN value (略)省略された場合は、要素の …
Run-As について Hello World から気になる点までを一通り調べた。 ただ、結局 RunAsImplAuthenticationProvider の価値については分からなかった。 そもそも、この機能を使う機会はあるのかもあやしいが。
34. Run-As Authentication Replacement 34.1 Overview The AbstractSecurityInterceptor is able to temporarily replace the Authentication object in the SecurityContext and SecurityContextHolder during the secure object callback phase. Abstract…
HttpServletRequest や HttpServletResponse をラップして、危険な操作を未然に防ぐ機能。 結構いろんなことやってるのかなぁとか思ってたけど、意外とやってることは少なくて、書くこともあまりなかった。
ログインURL の変更とか、そういうのをこまごま検証中。 assertjGen にバグ報告があったりとか、 JDT2017 の登録とか、ぴあの情報流出問題の確認とか、明日の関Java の準備とか色々別作業で手を取られたのであまり進んでない。
<concurrency-control> の error-if-maximum-exceeded を true にした場合で、 Remember-Me を組み合わせた場合にうまくエラー制御ができない問題を色々試した。 結局、回避方法は分からなかった。 実装見る限り、回避は無理っぽい気がするが、、、</concurrency-control>
Detecting Timeouts You can configure Spring Security to detect the submission of an invalid session ID and redirect the user to an appropriate URL. あなたは、無効なセッションIDが渡されたことを検出し、適切な URL にリダイレクトするために Spr…
Session Management について勉強開始。 翻訳は以前していた。 SessionManagementFilter セッション管理するフィルター。 SecurityContextRepository に SecurityContext が無かったら何もしない あったら Authentication を取り出す Authenticaiton が匿名…
HPKP (HTTP Public Key Pinning) について調べてたが、あきらめた。 pin の設定がよくわからんし、上手くブロックされたところを調べるための環境を用意するのが面倒そう。 それに 自堕落な技術者の日記 : HPKP(HTTP Public Key Pinning)公開鍵ピニングにつ…
Spring Security のメモが自分でも引くほど長くなってきたので、いくつかの記事に分割した。 スクロールバーが現実的な長さになった気がする。 Qiita はとくに文字数制限とかはないっぽいが、あまりにも長くなってくるとプレビューがまともに動かなくなって…
<%@page contentType="text/html" pageEncoding="UTF-8"%> <html> <head> <meta charset="utf-8" /> <title>Reflected XSS</title> </head> <body> <h1>Reflected XSS</h1> ${param["q"]} </body> </html> こんな感じの JSP を作って、 “?q=alert("Hey”);“ みたいなクエリパラメータを乗せたリクエストを送る。 X-XSS-Protection ヘッダーが設定され…
HTTP Strict-Transport-Security の動作について実際に動かして試した。 HTTPS 通信の検証については、 Payara (GlassFish) を使っていればデフォルトで 8181 ポートにアクセスすれば HTTPS で通信できるので、それを利用(証明書の作成とかインポートとか面…