devise-securityのsession_limitableを使ってみる

こんにちは!kossyです! さて、今回は認証機能を提供するGem「devise」のextensionで、エンタープライズな認証機能を実現するdevise-securityのsession_limitableを使ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.…

ruby-samlで「Invalid Signature on SAML Response」が返ってきた場合の調査方法

こんにちは!kossyです! 今回はSSOを実現するGem「ruby-saml」で「Invalid Signature on SAML Response」が返ってきた場合の調査方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur ruby-saml 1.13.0 …

ruby-samlで「Invalid settings, idp_sso_service_url is not set!」が発生した場合の対処法

こんにちは!kossyです! 今回はSSOを実現するGem「ruby-saml」で「Invalid settings, idp_sso_service_url is not set!」が発生した場合の対処法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur ruby-sa…

devise_saml_authenticatableのSamlAuthenticatable::SamlResponseのソースコードを追ってみる

こんにちは!kossyです! 今回は、前回のブログで追いきれなかった、SamlAuthenticatable::SamlResponseのソースコードを追ってみようと思います。前回のブログkossy-web-engineer.hatenablog.com 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur devise_saml_aut…

DeviseベースでSAML SSOを実現する 「devise_saml_authenticatable」のソースコードを追ってみた

こんにちは!kossyです! 今回は、DeviseベースでSAML SSOを実現する 「devise_saml_authenticatable」のソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur devise 4.8.0 devise_saml_…

Rack::MockRequestとRack::Requestを使ってRack::Requestのbodyのrack.inputをいじっていて気づいたこと

こんにちは!kossyです! 今回はRack::MockRequestのenv_forメソッドとRack::Requestクラスを使って、Rack::Requestのbodyのrack.inputをいじっていて気づいたことがあったので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4…

graphql-rubyでCustom Scalarsを定義してみる

こんにちは!kossyです! 今回はgraphql-rubyでCustom Scalarsを定義する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur graphql-ruby 1.12.19 CustomScalarsとは graphqlにはデフォルトで組み込ま…

punditのpolicy_classで別モデルのPolicyを実行する

こんにちは!kossyです! 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur pundit 2.1.1 なお、Userモデル、Postモデル、Commentモデルが存在するものとします。 policy_classの使い方 例えば、CommentクラスのインスタンスにPostモデルのPolicyを実行したいケー…

SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみる(Metadata編)

こんにちは!kossyです! 今回は、SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみた(SamlResponseだけ)ので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina なお、IdPにはLINE WORKSを用い…

RailsのActiveRecordにおいて保存していない親レコードに紐づく子レコードへのpluckは空配列が返る件

こんにちは!kossyです! 今回は保存していない親レコードに紐づく子レコードにpluckメソッドを使って、意図通り動作しない事象に遭遇したため、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur pluckメソッド Rail…

SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみる(SamlResponse編)

こんにちは!kossyです! 今回は、SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみた(SamlResponseだけ)ので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina なお、IdPにはLINE WORKSを用い…

SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみる(SamlRequest編)

こんにちは!kossyです! 今回は、SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみた(SamlRequestだけ)ので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina なお、IdPにはLINE WORKSを用い…

ruby-saml を使ったSSOを本番環境で試してみる

こんにちは!kossyです!さて、今回はSAML認証のクライアント側を実装できるGem「ruby-saml」でLINE WORKSのSAML2.0でSSOをHerokuにデプロイした環境で試してみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS C…

ruby-saml を使ってSSOを試してみる with LINE WORKS

こんにちは!kossyです!さて、今回はSAML認証のクライアント側を実装できるGem「ruby-saml」でLINE WORKSのSAML2.0でSSOを試してみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina saml-spレポジトリ…

過去に使用されたパスワードの再設定を制限するdevise-securityの「PasswordArchivable」のソースコードを追ってみる

こんにちは!kossyです! 今回は、過去に使用されたパスワードの再設定を制限するdevise-securityの「PasswordArchivable」のソースコードを追う機会があったので、ブログに残してみたいと思います。 偉大なる本家レポジトリ 環境 Ruby 2.6.8 Rails 6.0.4.1 …

railsで開発途中からdocker環境を構築する場合の注意点

こんにちは!kossyです! 今回はアプリ開発環境に開発途中でdockerを用いた環境構築を行った際に軽くハマったことをブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 Docker-Compose 1.27.0 docker-compose build が通らない 以下のようなdo…

環境変数を管理できるGem「figaro」を使ってみる

こんにちは!kossyです! 今回は環境変数を管理できるGem「figaro」を個人開発アプリに導入してみたので、備忘録としてブログに残してみたいと思います。 偉大なる本家レポジトリgithub.com 環境 Ruby 2.6.8 Rails 6.0.4.1 docker-compose 1.27.0 導入 まず…

RailsのActionDispatch::Http::URLのsubdomainメソッドのソースコードを覗いてみる

こんにちは!kossyです! 今回は、ActionDispatch::Http::URLのsubdomainメソッドのソースコードを読む機会があったので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.1.0 MacOS BigSur subdomainメソッド ソースコードの位置は…

ログイン周りの情報の追跡を実現する、deviseの「trackable」のソースコードを追ってみる

こんにちは!kossyです! 今回は、ログイン周りの追跡を実現する、deviseの「trackable」のソースコードを追ってみたので、ブログに残してみたいと思います。 環境 Ruby 2.6系 Rails 6.0.4 devise 4.8.0 github.com trackableモジュールとは ソースコード内…

PostgreSQLのdate_truncの使い方とユースケース

こんにちは!kossyです! 今回はRailsでPostgreSQLを使ってSQLをベタ書きする際に使えるdate_truncのユースケースについてブログに残してみたいと思います。 環境 PostgreSQL 12系 公式ドキュメントを読む まずは公式Docを読んでみます。www.postgresql.jp d…

Railsで一ヶ月間の日付の配列を作る

こんにちは!kossyです! ここ最近土日に時間が作れずブログの更新が滞ってしまいました、、、(現在も時間作りにくい状況が続いています) 暇を見つけてTIPS的なことを細々とブログに残そうかと思います。今回は、Railsで一ヶ月間の日付の配列を作ってみたの…

trace_location gem を使ってみる

こんにちは!kossyです! さて、今回はOSSのソースコードを読む際に役に立つtrace_locationを使ってみたので、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.7 MacOS Catalina 偉大なる本家リポジトリはこちら。GitHub - yhirano55/trace_l…

Rails APIモードでomniauth導入時に「OmniAuth::NoSessionError (You must provide a session to use OmniAuth.)」が出る場合の対処

こんにちは!kossyです! さて、今回はRails APIモードでomniauth導入時に「OmniAuth::NoSessionError (You must provide a session to use OmniAuth.)」が出る場合の対処法をブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 devise_token_au…

TypeScriptの外部ライブラリの型チェックが通らない場合の対処法

こんにちは!kossyです! さて、今回はTypeScriptの外部ライブラリの型チェックが通らない場合の対処法についてブログに残してみたいと思います。 環境 Vue.js 3系 TypeScript 3.9.7 skiplibcheckをtrueにする TypeScriptの対応が甘い外部ライブラリを導入し…

アカウントロック機能を実現する、deviseのlockableのソースコードを追ってみる

こんにちは!kossyです! 今回は、アカウントロック機能を実現する、deviseのlockableのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 devise 4.8.0 なお、コードの説明の前提として、既にdevis…

ActiveRecordのpluckメソッドでjoinsした先のカラムの値を取得したい

こんにちは!kossyです! さて、今回はActiveRecordのpluckメソッドでjoinsした先のカラムの値を取得する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS catalina 前提 以下のテーブル構成があるとします。 class Creat…

devise_token_authのregistrations_controllerのcreateアクションのソースコードを追ってみる

こんにちは!kossyです! さて、今回はOSSソースコードリーディング回ということで、devise_token_authのregistrations_controllerのcreateアクションのソースコードを読んでみたので、ブログに残してみたいと思います。 コードリーディング registrations_c…

特定のレコードの前後のレコードを取得する LAGとLEAD関数を試す

こんにちは!kossyです! 今回は、特定のレコードの前後のレコードを取得する LAGとLEAD関数を試してみたので、 備忘録としてブログに残してみたいと思います。 環境 MySQL 8系 LAG・LEAD関数とは? まずはドキュメントを見てみましょう。www.postgresql.jp …

SQLのWITH RECURSIVEの使い方とユースケース

こんにちは!kossyです! 今回はSQLのWITH RECURSIVEの使い方とユースケースを考えてみたので、備忘録としてブログに残してみたいと思います。 環境 PostgreSQL 12系 使い方 公式のドキュメントを見てみましょう。www.postgresql.jp オプションのRECURSIVE修…

Rails APIモードで kaminari を使ってみる

こんにちは!kossyです! さて、今回はRails APIモードでの kaminari の使い方を備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BIgSur kaminari 1.2.1 実装 前提としてjbuilder gem が導入されているものとします。まず…