Dapatkan Peluang Menang Slot Online Lebih Besar Di Bandar Teraman Karena banyaknya pilihan situs judi di internet. Penting bagi seorang pemula khususnya untuk memilih sebuah bandar judi terpercaya. Karena berbagai…
概要 SpringBootで構築しているWebアプリケーションで、Controllerに対して共通処理を行いたい。 主に簡単な認証処理で、ログイン状態であればControllerでの処理、ログイン状態でなければログイン画面へ遷移させたい。 URLパスやパッケージベースでなく、Annotationで管理したい。 方法 HandlerInterceptor を使うことで実装が可能になる。 HandlerInterceptorをimplementしたクラスでは preHandle postHandle afterCompletion を実装する必要がある。 それぞれ、 preHandle → Controllerにリクエストが行く前に呼ばれる postHandle → ビューのレンダリング前に呼ばれる。RestControllerでは呼ばれない。 afterCompletion → ビューのレン
なんとなく結果が見えている気がするんですけど、確認という意味で試してみました的な。 SpringのBeanってデフォルトのスコープはSingletonですが、SingletonなBeanに対してそれより短いライフサイクル(例えば、RequestやSession)のものを放り込もうとするとどうなるか?という話。 簡単にSpring Boot、Spring MVCを使って試してみます。 準備 確認用のコードは、こんな感じ。 アプリケーションのエントリポイント。 src/main/java/org/littlewings/spring/scope/App.java package org.littlewings.spring.scope; import org.springframework.boot.SpringApplication; import org.springframework.b
実装したソースは https://github.com/huruyosiathatena/springboot/tree/8bb72d41f62d28039f5c7d0ccda8f4036ecea8ca にあります。 ログインを実装する spring security を利用してログイン画面を作ります。今回は認証を行うだけで権限に基づいた制御は次回( http://huruyosi.hatenablog.com/entry/2015/08/10/015844 )で行います。 認証に利用するユーザ情報 DBに保存されているテーブルを利用します。 create table users ( user_id int auto_increment, login_id varchar(256), password varchar(256), display_name varchar(255), ena
Spring BootとSpring Securityのユーザ認証について、忘れがちになるので、備忘録φ(..)メモメモ 認証の方法はいくつかあるけど、今回は、 暫定対応時のインメモリDBと 本格対応時の独自ユーザテーブル の2つをメモφ(..)メモメモ まずはbuild.gradleにDependencyに追加する Spring Securityを使うには、spring-boot-starter-securityを追加 ロール/権限によるthymeleafのテンプレートの制御のため、thymeleaf-extras-springsecurity4も追加 (この記事では登場しません。。。まだこんど。。。) dependencies { //SpringBootのDependency compile('org.springframework.boot:spring-boot-starter-
I'm working on a java spring mvc application. I have set a cookie in one of my controller's methods in this way: @RequestMapping(value = {"/news"}, method = RequestMethod.GET) public ModelAndView news(Locale locale, Model model, HttpServletResponse response, HttpServletRequest request) throws Exception { ... response.setHeader("Set-Cookie", "test=value; Path=/"); ... modelAndView.setViewName("path
4.2. セッション クッキーは1つ1つの通信が独立しているHTTPプロトコルに、セッションの概念を導入する際によく利用します。しかし最近はセキュリティのためにクッキーの利用を制限している場合がありますし、またi-modeのような携帯端末ではクッキーの機能そのものが使えない場合が多々あります。そこでサーブレットには、サーバサイドでクライアントのセッション情報を管理する仕組みが提供されています。 上図はサーブレットにおけるセッション管理の方法を説明した図です。サーブレットはHttpServletRequestの「getSession」メソッドにより、セッションを開始する事ができます。このメソッドは「javax.servlet.http.HttpSession」オブジェクトを作成する(または取得)メソッドで、これを用いてセッションにおける情報の管理を行います。 「HttpSession」オブジ
SpringBootで開発をするときに、実行→デバッグ→修正→再実行→…という繰り返しを行うのですが、再実行を行うときに毎回ログインし直すのが結構面倒です。そこで、セッション情報を永続化すれば楽になるのではと思い、とりあえず redis でセッション情報を保存するようにしてみました。 前提条件 redisはインストールして利用可能な状態とします。また、基本的な設定は以下の通り初期設定のままとします。 接続先:localhost ポート番号:6379 また、動作するアプリケーションは SpringSecurity を利用した認証を実行しています。セッション情報の保存確認はログイン前後の状態で確認しました。 設定方法 設定は以下の流れで行います。 pom.xml に spring-session-data-redis への依存を追加します。 Redisの接続設定を作成します。 詳細は以下の通り
Spring Bootで作った個人で使うアプリをVPSで動かそうとしたときの個人メモ。 Spring Bootのドキュメントに書いてあるのをなぞっただけです。 55. Installing Spring Boot applications Fully Executable Applicationの作成 最近の (自分が使っているのは1.3.1.RELEASE) Spring Bootでは、init.d向け起動スクリプトやsystemd .serviceファイルのExecStartで指定できるスクリプトも兼ねたjar( Fully Executable Application )を生成することができる。 maven で spring-boot-maven-plugin を使っている場合はpomに次のように記述すると、mvn packageでFully Executable Applicati
JUnitをより深く知っていこう。と言う事で本丸JUnitのクラスから幾つか機能を探訪していこうかと思います。 org.junit.Assertクラス Assert (JUnit API) 主なメソッドは以下の通り。 メソッド 説明 assertArrayEquals(arrays expected, arrays actual) 配列同士を比較、イコールである場合true assertEquals(Object expected, Object actual) オブジェクト同士を比較、イコールである場合true assertFalse(boolean condition) 条件がfalseである事を検証、falseの場合true assertNotNull(Object obj) オブジェクトがNullで無いことを検証、Nullでない場合true assertNotSame(Object
札幌は大荒れ、の予想だったのですが、今のところ大変穏やかな天候です。こんにちは。こむろです。 この記事はJava Advent Calendar 2014の17日目になります。 昨日16日は@zephiransasさんの「Lambda-behaveでテストを書こう」でした。 Java8の素晴らしき世界 Java8を使ってプログラミングしていると、新しい機能を色々と使うことで簡潔で読みやすいコードを記述することが出来ます。これが思いの外楽しくるんるん気分でコードを書くことが出来ます。今までのように型をいちいち書かなきゃとかネスト地獄みたいなところを、少しだけ、でも大胆に改善することが出来、久々にJavaでコードを書いていて楽しいと思った時間でした。AndroidはJavaではn(ry 特にここ数ヶ月、Play for JavaでJava8を利用した開発をしていたのですが、その中でStream
このエントリでは、Grzegorz Gajosによる記事、How Hibernate Almost Ruined My Careerを紹介する。 (Grzegorzから和訳と転載の許可は得た。) 以下はその全文の和訳だが、意訳超訳が混じっているので、もとのニュアンスを知りたければ元記事を読んでもいいし、読まなくてもいい。 想像してくれ。 君はJava開発者で、次のビッグプロジェクトを開始しようとしているところだ。 君は、そのプロジェクト全体に影響する根本的な決断をする必要がある。 君の柔軟なデータモデルをオブジェクト指向で抽象化するベストな方法を選択したい。生のSQLを扱いたくはないからね。 どんな種類のデータもサポートしたいし、理想では全種のデータベースをサポートしたい。 すぐに思いつくのは、単にHibernateを使うという解だ。そうだろ? Javaディベロッパの90%は君に同意するだ
書き尽くされている気がするけど、自分のメモとしてまとめておきます。 基本 String[] array = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF"}; Stream<String> stream = Arrays.stream(array);//配列をStreamに変換する //全ての要素がラムダの条件を満たしているか //全てが条件に当てはまればtrueが返る stream.allMatch(s -> s.length() == 3);//true stream.allMatch(s -> s.equals("AAA"));//false //いずれかの要素がラムダの条件を満たしているか //どれか1つが条件に当てはまればtrueが返る stream.anyMatch(s -> s.length() == 3);//true stream.an
Java 8 Stream API にテキストを流してみる(生成編)- Qiita Java 8 Stream API にテキストを流してみた(終端操作編)- Qiita Java 8 Stream API にテキストを流してみて(中間操作編)- Qiita 要するにだ Java 8 Stream は実行前も実行後もデータを保持しない。 Streamクラス自体はコレクションではなく、流れてくる個々の要素に対する操作のパイプラインを構成しているだけだ。従って Stream を通して加工された要素をデータとして扱うためには、最終的にまた何らかのデータ構造なり値なりに戻されなければならない。 そのためのメソッド群を「終端操作(Terminal operation)」と呼び、そのほかの「中間操作(Intermediate operation)」と区別する。 中間操作メソッドは要素に適用する関数をパ
自分で作ったクラスのオブジェクトをArrayListに入れて indexOfでそのオブジェクト内のString検索しかったので自分の作ったクラスでequalsメソッドをオーバーライドする。 悩んだところは、 Objectのequalsメソッドをオーバーライドしてる ArrayList.indexOf()のカッコの中の変数。 equalsメソッド これはJavaAPIを見ればわかるようにindexOfはObjectのequalsメソッドを使用しているので 書き代えてやればよい。 class Term{ public boolean equals(Object obj){ Test t = (Test)t; if(s.equals(t.s)) return true; else false; } } ArrayList.indexOfを実装してみたが 最初は ArrayList.indexOf
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く