PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
本日より、ワシントンD.Cにて開催されている、SpringOneカンファレンスに参加させて頂いています。 SpringOne 初日は、Keynoteのみの実施でしたが、聴きながら自分が感じたことを整理することも兼ねて、ブログにまとめさせて頂きます。 KeyNoteのテーマ 今年のSpringOneのテーマとして、 "Get Cloud Native" が掲げられていました。 皆さんは、Springのテーマとしてしっくりきましたか? これを見て、「やばい、これがテーマだとするとうちは結構ビハインドしてる、、」と思いました汗 KeyNoteセッションの中でも、下記のような表現で、 "Cloud Nativeになることの恩恵"についてアピールがされていました。 Transforming with Spring Cloud. Cloud native application(Pivotal Clo
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Pivotalは先週Spring IO Platform 1.0のファーストバージョンをリリースした。Spring IO Platformは依存物(とそのバージョン)のリストであり、すべての依存物が一緒に動作する。実装はMavenのPOMファイルであり、自分のプロジェクトにインポートして依存物にバージョンを設定できる。これらの依存物は、Springプロジェクト全体と多くのオープンソースプロジェクトで管理され、利用されている。例えば、次のオープンソースライブラリで使われている。Logback、 Jackson、Guava、JSF、JSTL、JUnit、Derby、Hadoop、Solr、Tomcat、Groovy、EclipseLink JPA、Neo4j、TestNGだ。 発表によれば、 Spring IOは究極的には単なるライブラリであり、アプリケーションのCLASSPATHに含まれてい
http://d.hatena.ne.jp/minokuba/20110501/1304265347の10.5.7.1 Requiredにある以下の記述が納得行かないんです。 PROPAGATION_REQUIREDの場合、内側のトランザクションがrollback-markを付与した場合はそれは外側のトランザクションに伝搬する。もし内側のトランザクションが指示かにrollback-markを付与したが、外側のトランザクションで明示的にロールバックしなかった場合は外側のトランザクションスコープに対するインターセプターでロールバックする際に、UnexpectedRollbackExceptionを送出する。よって外側のトランザクションを呼び出す人は、UnexpectedRollbackExceptionを必要に応じて適切に処理する必要がある*1。 ( ゚Д゚)ハァ? 俺の誤訳かと思ったけどたし
The Spring Framework re-invented enterprise Java in the last decade, becoming the dominant programming model in enterprise Java. Today we are releasing Spring Framework 4.0, a brand new major version of Spring that keeps Spring at the cutting edge of modern Java development. Together with the rest of the upcoming Spring IO Platform, Spring Framework 4.0 is positioned to empower the next decade of
この記事は下記の環境を前提に書かせていただきました。 NetBeans6.5.1 JDK1.6.0 Spring2.5 JSF1.2 Spring2.5からアノテーションによるAutowiringが可能になったようです。 前回の構成ファイルでの『autowire』属性によるAutowiringとなにが違うのかな? と思ったわけですが。 マニュアルには 「アノテーションによるAutowiringのほうが、より細かく制御でき、幅広く適用可能になりました」 ということです。 まだよく使っていないので 「ま、かゆいところに手が届くようになったんだろうな~」程度にしか理解していません。 できません(・_・)エッ....?。すみません。 どんなアノテーションがあるの?
元ネタ Grailsではgrails-app/serviceディレクトリ配下などにクラスを置くと自動的にSpringのbeanとして認識されますが、src/groovyやsrc/javaといったディレクトリでは自動的にはbeanとして登録されません。 src/groovy、src/java配下のクラスをbeanとして登録したい場合はSpring Bean DSLを使用して登録することができますが、もう一つの方法としてSpringのcomponent-scanを使用する方法がGrailsでも提供されています。 component-scanを使用すると指定したパッケージ配下のクラスに対してアノテーションベースでbean登録ができるようになります。 設定の準備 Grailsでcomponent-scanを使用するにはConfig.groovyでgrails.spring.bean.package
The release notes for Grails 1.2 (http://www.grails.org/1.2+Release+Notes) say that you should be able to mix Grails-style controllers and Spring MVC-style controllers in a Grails app, but I can't get this to work. I started by creating a new Grails app with all the defaults and adding one Grails controller that looks like this: package com.example.test class GrailsController { def test = { return
Reactor - a foundation for asynchronous applications on the JVM We’re pleased to announce that, after a long period of internal incubation, we’re releasing a foundational framework for asynchronous applications on the JVM which we’re calling Reactor. It provides abstractions for Java, Groovy and other JVM languages to make building event and data-driven applications easier. It’s also really fast.
あくまで2012年の第四半期頃に触ったCDIとの比較なので、今の最新版はいろんなものが解消されてる・・・といいな〜 DIとしての機能 CDIはclassのスキャンを基本にしてアノテーションだけで済まそうとしてる ただし、空っぽのxmlファイルは一つ絶対に必要 SpringはXMLでの定義が基本 Scopeの違い CDIはSeamから継承してるスコープがある(conversation scope) Springは昔から変わってない 両方とも独自スコープを追加できるのであんまり絶対的な比較にならない気がする(Seasarは出来ないんだよなぁ〜) AOPの違い CDIはアノテーションでAOPを使う事を宣言して実際に適用するものはbean.xmlに書く SpringはXMLに書く必要がある。困ったことにいろんな書き方、種類があるので迷う。 ぶっちゃけSpringって駄目じゃんって思うのはいつもここ
火曜日。今日は朝から調子が良かったb休日明けの月曜日は特異日だね(涙) 昨日の続き。LogicBean#executeと、HogeAccessObject#executeは、 // 本来するべき処理のみとなる。これは使える!みたいなんだけど・・・推定無罪なSpringのAOPの悲しいお知らせ。 SpringのAOPで共通的な処理を織り込もうとすると、プロキシなクラスを介す。 絵に描くとこんな感じか。 +-------------------------+ |proxy | (*)----->|----->LogicBean#execute | | | +-------------------------+ (*):織り込みたい共通処理織り込みたい共通的な処理は、よくWebで紹介さえているメソッド開始/終了のトレースログ出力処理とか。Google先生に聞いてみるだけでも、こんなにも、 goo
Spring MVC 3.0/3.1/3.2の日本語の実用レベルのまとまった情報が少ないので、ドキュメントとして、クックブック的なレシピ集としてまとめたものとして公開します。 まだ、書きかけのところもありますが、Spring MVCの大体の機能は説明できていると思います。 基本的に、自分が使っている機能をまとめています。 Spring MVCに直接関係しないものも多々あります。書いていたら、いつの間にか増えてました(JAXBやRELAX NGとか)。 今後も主にこの方針で更新していきますが、ページ数が多くなった場合、分割するかもしれません。 目指すところ Webアプリケーションを作成するときに、フレームワークの選定する際の候補としてSpring MVCも入れてほしいので、その参考資料としても使えるようにする。また、目次をみれば、Spring MVCで何ができるのかできるだけわかるようにする
元ネタ: http://www.intelligrape.com/blog/2012/05/12/overriding-properties-in-a-spring-bean-with-beanfactorypostprocessor/ BeanPostProcessorの実装クラスを登録すると、SpringBeanの初期化時に処理をフック出来るみたいです。結構簡単。 BeanPostProcessorの実装クラスを作る。 class CustomBeanProcessor implements BeanPostProcessor { @Override Object postProcessBeforeInitialization(Object bean, String name) { println "post process ${name}" // beanに対してゴニョゴニョ bea
Oracle Blogsの主としてテクノロジー製品のエントリを日本語でご紹介します(オリジナルのエントリを投稿することもあります)。厳密性をご所望の方は原文をどうぞ。よい内容でしたら原文に対し、"Good Entry, thanks!"でもいいので、是非コメントお願いします(Typoや誤訳はコメント欄からどうぞ)。なお、このエントリは個人の見解であり、所属する会社の公式見解ではありません。また、エントリ内でご紹介している製品・サービスは国内導入時期が未定の場合もありますのでご了承下さい。 Good entries on Oracle Blogs are put into Japanese. Mainly this blog covers technology products. Opinions expressed in this blog is my personal one and d
HibernateをSpringで動かすと、Hibernateで発生したExceptionをSpringが変換して投げてくれる。 Hibernate PK検索でデータが存在しなかった場合 org.hibernate.ObjectNotFoundException 登録、更新時に一意制約違反がおきた場合 org.hibernate.exception.ConstraintViolationException 更新、削除時に楽観的ロック例外が発生した場合、または対象データが存在しなかった場合 org.hibernate.StaleObjectStateException 上記のExceptionが以下のExceptionに変換される。 Spring PK検索でデータが存在しなかった場合 org.springframework.orm.hibernate3.HibernateObjectRetr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く