タグ

ブックマーク / qiita.com (269)

  • モバイルアプリのユーザ認証方法についてまとめてみた - Qiita

    追記 (2018-10-08) 4年以上前に書いた記事ですが、Access Token として JWT を利用することは非推奨なようなので、お詫びして修正致します。 参考: どうしてリスクアセスメントせずに JWT をセッションに使っちゃうわけ? 概要 みんなやってるはずなんだけど、あまりまとまった情報がなかったので書いてみます。認証周りはセキュリティを気にして、みんな書きたがらないのかな?それとも私の調べ方が悪かっただけ?マサカリお待ちしてます。 認証の基方針 +--------+ +--------+ | | | | | |----(1) Credential ------------>| | | | | | | |<---(2) Access Token -----------| | | | | | | Client | | Server | | | | | | |----(3)

    モバイルアプリのユーザ認証方法についてまとめてみた - Qiita
  • 我が名は神龍……どんなテストもひとつだけ自動化してやろう - Qiita

    『我が名は神龍……どんなテストもひとつだけ自動化してやろう』 じゃ、じゃあ!このブラウザテストを自動化してください! Chromeで https://kids.yahoo.co.jp/ にアクセスして 検索ワードに ねこ と入力して さがすをクリックして 検索結果にネコ - Wikipedia が含まれていることを確認して 検索結果に 買い方 を追加して さがすをクリックして 探しているのは「の飼い方」?と表示されることを確認して クリックするとの飼い方で再検索されて 検索ボックスを不倫で上書きして さがすをクリックして このページは表示できませんと出ていることを確認 『よかろう……たやすい願いだ』 まずはライブラリのインストールと初期設定をしてやろう…… # [ライブラリのインストール] # CodeceptJSとPuppeteerをインストールします。nodeとnpmが必要ですので

    我が名は神龍……どんなテストもひとつだけ自動化してやろう - Qiita
  • Spring Bootで、ユーザ名とパスワードを指定した認証処理の実装方法 - Qiita

    【問題】 UserDetailsServiceではパスワードを指定できない 「Spring Boot 認証処理」でググると、UserDetailsService1のloadUserByUsernameを使ったサンプルがたくさん見つかります。 私も書いたことがあります。 → Spring BootでBasic認証を使用する しかし、以下のとおりloadUserByUsernameの引数はusernameのみとなっています。 このため、ユーザ名とパスワードを指定した認証処理が必要な場合には対応できません。 例えば以下のようなケースでは、loadUserByUsernameで対応することはできません。 パスワードのハッシュ化をDB側で実施2しており、SQLのパラメータ値にパスワードを含める必要がある 認証を外部ライブラリで実施しており、APIにユーザ名とパスワードのセットを渡す必要がある 【解決

    Spring Bootで、ユーザ名とパスワードを指定した認証処理の実装方法 - Qiita
  • 絶対分かるMyBatis!MyBatisで覚えるべきチェックルール25(中編) - Qiita

    チェックルール(つづき) 絶対分かるMyBatis!MyBatisで覚えるべきチェックルール25(前半) のつづきになります。来は残りのチェックルール(13~25)について説明するつもりでしたが、予想以上に長くなってしまったので3部構成に変更しました。今回はチェックルール(13~20)まで説明したいと思います。 13. Mapperファイル内で引数のJavaのデータを参照する場合、バインド変数#{...}を利用すること MyBatisのデフォルトではJavaのPreparedStatementを利用してSQLを実行します。実はバインド変数#{...}はPreparedStatementのパラメータとして設定されます。つまりパラメータが利用できる箇所でのみ、利用することができます。 SELECT文のWHERE句における値 INSERT文のVALUES句における値 UPDATE文のSET句に

    絶対分かるMyBatis!MyBatisで覚えるべきチェックルール25(中編) - Qiita
  • Spring Boot+Spring SessionでスケーラブルなステートフルWebアプリが簡単につくれるよ〜 - Qiita

    今回は、Spring BootとSpring Sessionを使用してスケーラブルなステートフルWebアプリ(HTTPセッションを使うWebアプリ)を作ってみるぞ〜 システム構成のイメージ 今回は・・・ Webサーバー兼ロードバランサーとしてNginx アプリケーションサーバーとしてSpring Boot(Embedded Tomcat) セッションストアとしてKVS(Key Value Store)の有名どころであるRedis を使用し、Nginx、Spring Boot(Embedded Tomcat)、RedisをそれぞれDockerコンテナ上で動かします。 なお、今回はRedisは1台構成にさせてもらいます。実際のシステムを1台構成で動かすことはあり得ませんが・・・ (Master/Slave構成によるクラスタ化は次回の宿題ということで・・・) フレームワーク構成 Spring B

    Spring Boot+Spring SessionでスケーラブルなステートフルWebアプリが簡単につくれるよ〜 - Qiita
  • Spring Security with Spring Boot 2.0で簡単なRest APIを実装する - Qiita

    概要 Spring SecurityとSpring Bootを利用して簡単なRest APIのデモアプリケーションを実装しました。 記事の前半はSpring Security周りの実装、後半がコントローラの実装とそのテストコードについて説明しています。 ソースコードはrubytomato/demo-security-spring2にあります。 環境 Windows 10 Professional Java 1.8.0_172 Spring Boot 2.0.2 Spring Security 5.0.5 参考 Spring Security Reference Hello Spring Security with Boot Spring Boot Reference Guide デモアプリケーションの要件 認証の仕方 このデモアプリケーションは、メールアドレス・パスワードで認証を行います。

    Spring Security with Spring Boot 2.0で簡単なRest APIを実装する - Qiita
  • 一番分かりやすい OpenID Connect の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OpenID Connect(オープンアイディー・コネクト)の説明を繰り返してきました※1。 その結果、OpenID Connect をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。 2017 年 10 月 23 日:『OpenID Connect 全フロー解説』という記事も公開したので、そちらもご参照ください。 説明手順 (1)「こんにちは! 鈴木一朗です!」 (2)「え!? 当ですか? 証明してください。」 (3)「はい! これが私の名刺です!

    一番分かりやすい OpenID Connect の説明 - Qiita
  • お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える - Qiita

    お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考えるmodelDDD設計 みなさんは、Modelと言われたときに何をイメージしますか? こんなアレを思い浮かべた方も多いかと思います。 マサカらせてください。やはりお前らのModelは間違っている。 アレをModelと呼ぶと何が不味いのか すみません、早速言い過ぎました。半分は正しいです。MVCの発明者、Trygve Reenskaug氏による1979年の説明によると、 Models represent knowledge. A model could be a single object (rather uninteresting), or it could be some structure of objects. 1 このように「Modelは単体のオブジェクトであっても

    お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える - Qiita
    mapserver2007
    mapserver2007 2019/02/14
    “DDDでいうエンティティは、先述したO/Rマッピングの対象となる(永続化という概念を含む)エンティティとは似て非なる概念です。”
  • Spring+mybatisを試してみた - Qiita

    mybatisを動かしてみた話 CRUD最小構成に適用してみる お決まりのPlayerのCRUDサンプルを作ってみる 共通部分 mybatisと関連の少ない部分 templateは省略 controller 典型的なCRUDのエンドポイント @Controller @RequestMapping("/players") public class PlayerController { @Autowired private PlayerService playerService; @GetMapping public String index(Model model) { model.addAttribute("players", playerService.findAll()); return "players/index"; } @GetMapping("new") public Stri

    Spring+mybatisを試してみた - Qiita
  • Spring Bootで実装するWebAPIのアーキテクチャを考える - Qiita

    Spring Boot + MySQLでシンプルなWeb REST APIサーバを実装する - Qiita Outline Spring bootを使ったWebAPIのアーキテクチャ、クラス設計を考える。 Springの思想?に則り、3層アーキテクチャを採用する。 3層アーキテクチャ 以下のような3層を定義する。 各層の役割 アプリケーション層 UI クライアントとの入出力とビジネスロジックをつなぐ ドメイン層 ビジネスロジック ドメインを表現するオブジェクト、手続きたち インフラ層 永続化の実装 他サービスとの通信等の実装 基的なルール 以下を定義する ドメイン層は、他の層に依存してはならない アプリケーション層、インフラ層はドメイン層に依存して良い このルールにより以下のような成果物となる ビジネスロジックが明確になる UIからロジックが独立する 永続化(ストア)の実装からロジックが

    Spring Bootで実装するWebAPIのアーキテクチャを考える - Qiita
  • Spring Boot + Intellij Ideaの環境セットアップ(備忘録) - Qiita

    はじめに Spring BootでRESTful APIを作ることになりそうなので、開発環境などのセットアップ手順を確認してみました。 最初はSTSを利用しようかと思いましたが、springのガイドに目を通していたらIntelliJ IDEAの手順も紹介されていたので方針変更しました。(Android Studioを利用する機会もあるので、脱Eclipseでいこうかと) maxOS Sierra(10.12.6) IntelliJ IDEA Community 2017.2.6 事前準備 JDK(Java SE Development Kit 8u152)のインストールを行いました。 $ /usr/libexec/java_home -V Matching Java Virtual Machines (2): 1.8.0_152, x86_64: "Java SE 8" /Library/

    Spring Boot + Intellij Ideaの環境セットアップ(備忘録) - Qiita
  • ネットワーク越しでパイプしたり、あらゆるデバイス間でデータ転送したい! - Qiita

    何を解決したいか? Mac, Windows, Linux, iPhoneAndroidのスマホ・タブレットとかのデバイス間でデータの転送したいことがあります。 SlackとかLineとかSkypeとかAirDropとかあっても 送りたい相手と共通して使っているサービスを探す必要とか、 GUIのソフトウェアのインストールが必要とか、 AirDropだとApple系OSである必要 があるなどの転送の障壁があって、GUIが使えないデバイスに送りたいときなどは困ってしまいます。 すでにたくさんのファイル共有系のサービスがありますが、コマンドを使ったCUIベースにあまり親切な設計なものはあまりないと思います。 そこで、上記の問題を解決するために、以下のようなファイル転送の仕組みを作りました。 他デバイス間でデータ転送ができ、 別途ソフトウェアのインストール不要で、 パイプにとても親和性が高くエン

    ネットワーク越しでパイプしたり、あらゆるデバイス間でデータ転送したい! - Qiita
  • Vue.js + Firebaseでポートフォリオを作ろう! - Qiita

    追記 この記事は公開から一ヶ月後くらいに、中身をだいぶ変えました。 前の記事が読みたい方はこちらからどうぞ。 今のコードの方が結構マシなはずなので、あまり需要は無いでしょうが...。 旧 https://qiita.com/sosumii/items/f097bf8b2209b9d75d1a/revisions/9 https://github.com/sosmii/hello-sosmii/tree/f4dc0f0295e5ffd569fb828e6b2e6559f5844874 作っていきましょう 突然ながらエンジニアのみなさま、ご自身の実力を市場にアピールできるような成果物をお持ちでしょうか? 会社が信用できなくなった時の備えとして、良いチャンスを掴むためのきっかけとして、外から見える成果というのは用意しておいて損はありません! 記事は、私がサーバーサイド処理を組み込んだポートフォ

    Vue.js + Firebaseでポートフォリオを作ろう! - Qiita
  • 標準出力もプログラムの動作を致命的に変えるという話 - Qiita

    正常に動作しないスクリプトやプログラムに標準出力処理(echoやSystem.out.print()など)を追加して、デバッグした経験は誰にでもあるのではないでしょうか。標準出力処理の追加は、簡単なプログラムの動作検証から制限などによりデバッガーを使用できない環境での調査まで、いろいろな場面で活用されていると思います。 しかし、1行の標準出力処理の追加でもプログラムの動作を致命的に変える可能性はあります。 過去に、echoが原因でバッチが停止した問題の対策のために、JavaのプログラムにSystem.out.println(・・・);の1行を追加した結果、アプリケーションが応答を返せなくなったことがありました。その時の記憶を、サンプルプログラムを交えながら説明したいと思います。 年次バッチが停止した! 10年ほど前のある日、あるシステムの保守を担当していた私のもとに「年次バッチが停止してし

    標準出力もプログラムの動作を致命的に変えるという話 - Qiita
  • Vue.js を vue-cli を使ってシンプルにはじめてみる - Qiita

    Vue.js を vue-cli でシンプルに過不足なくスタートする はじめに 可能なかぎり、この通りやればできるようにシンプルで過不足なくコマンドをまとめていきます。 (2019.02) Vue CLI 3対応するためにほぼサンプルコードを一新しました。 Vue-cli 2.x版が必要なかたはこちらにバックアップしておいたのでご参照ください。 vue-cli のインストール Vue.jsを使う環境を準備するためのコマンドラインインタフェースをインストールします。

    Vue.js を vue-cli を使ってシンプルにはじめてみる - Qiita
  • for式のforeach/flatMap(map)展開について - Qiita

    概要 for式が実際どのように展開されるのかわかった気になっていたけど、結局よくわかってなくて、ちゃんと調べたら理解できたので、自戒の念も込めて書いた記事です。 1 言語仕様 6.19 For Comprehensions and For Loopsに書かれていることは簡単で、 yieldのないfor式は、foreach展開 yieldがあるfor式は、flatMap/map展開 になります。これだけ。 つまり大雑把に言えば、 単純に値を処理したいだけの時は、yieldのないfor式 (foreach展開) 値をmap(型変換など)して返したい時は、yieldをつけたfor式 (flatMap/map展開) を使用すればよいです。 ちなみに、for式中のifはwithFilterに変換されます。

    for式のforeach/flatMap(map)展開について - Qiita
  • JavaのThreadLocalとスレッドセーフについて - Qiita

    はじめに Struts でシステムを開発していたときに、Actionで格納した値がJSPに反映されない問題が発生しました。この問題を調査した結果、Action#exceuteメソッドの引数をActionのインスタンス変数に格納して使用していたことが原因でした。このときに問題となったソースコードと解決方法を解説します。サンプルコードはこちらです。 マルチスレッドとスレッドセーフ スレッドセーフとはアプリケーションをマルチスレッドで動作(複数のスレッドが同時並行的に実行)しても問題がないことを指します。スレッドセーフでない場合は、あるスレッドで変更した共有データが、他のスレッドによって上書きされてしまう可能性があります。Webサーバーやデータベースなどのサーバー用ソフトウェアは、マルチスレッド(マルチプロセス)で動作しているので、サーバー向けアプリケーションを開発するときは、マルチスレッドで動

    JavaのThreadLocalとスレッドセーフについて - Qiita
  • [scala]なぜListではなくSeqを使うべきなのか - Qiita

    Listは使わずにSeqにしなさいとよく言われるけど、何故そうなのかはいまいちよくわかってなかったので、調べました。基的な内容です。 そもそもSeqとは Seq(scala.collection.Seq)は、Iterableのうち順序を持つものを指します。 全てのcollectionはIterableであるので、順序がある(要素にindexでアクセスできる)コレクションは全てSeqです。(SeqでないコレクションにはMapやSetがあります) Seqはscala.collection下にあるので、VectorだろうとMutableListだろうとSeqです。メソッドや関数の引数の型には、特別な理由がない限り、取りうる型の範囲を狭めてしまうListなどよりSeqを指定したほうが良さそうです。 scala> Seq res0: scala.collection.Seq.type = scal

    [scala]なぜListではなくSeqを使うべきなのか - Qiita
  • GASを使って運転日報のWEBシステムを作ってみた話

    GASでこんな事が出来るよ。という一例として書かせていただきます。 事の成り行き 事の始まりは、ある飲み会の時に自社の営業部門のマネージャ(M)から言われた一言。 M「あのさ。今、うちって社用車を使ったら紙に運転日報を記録して管理してるじゃん?それをやめようと思ってスプレッドシートで管理しようとしたんだけど、毎回スプレッドシートにアクセスして記入するのって億劫だしiPhoneからだと入力しにくくて。。。なんか良い感じに、アプリケーション作ってくれない?」 私「あ、なるほど。ならGsuite(google)だけで完結する、アプリケーション作りますよ。ちょうど明日から出張だったんで、行き帰りの新幹線の中ででも作っときますね。」 という事があり、運転日報をGASで運転日報を作りました。 まずは、完成して現在運用している画面を見てください。 後半で画面の全体と説明を行いたいと思いますが、このような

    GASを使って運転日報のWEBシステムを作ってみた話
    mapserver2007
    mapserver2007 2018/11/01
    これからやる仕事の参考になるかも
  • Scalaでアンダースコアの意味が分からなかったらここを見る - Qiita

    import scala._ // Wild card -- all of Scala is imported import scala.{ Predef => _, _ } // Exception, everything except Predef def f[M[_]] // Higher kinded type parameter def f(m: M[_]) // Existential type _ + _ // Anonymous function placeholder parameter m _ // Eta expansion of method into method value m(_) // Partial function application _ => 5 // Discarded parameter case _ => // Wild card patte

    Scalaでアンダースコアの意味が分からなかったらここを見る - Qiita