2020-01-01から1年間の記事一覧

SpringFrameworkでOAuth2.0をサポートするにはどのプロジェクトを使うべきか?

SpringFrameworkでOAuth2.0をサポートするにはどんな依存関係が一番いいのか気になりまして、ざっと調べてみました。 結論 Client ... Spring Security 5.2+ Resource Server ... Spring Security 5.2+ Authorization Server ... Springでは新しく作らないほ…

SpringSecurityでCORSの設定を行ってみる

CORS CORS (Cross Origin Resource Sharing) はHTTPヘッダーを使用して異なるオリジン間でリソースを共有する仕組み。サーバーがクライアントのリクエストに対して以下のヘッダーを用いて応答し、どのオリジンに対して許可しているかを示す。 Access-Control…

thymeleaf extras spring security を使ってみた

ThymeleafにSpringSecurity用のライブラリがあるということで使ってみました。 https://github.com/thymeleaf/thymeleaf-extras-springsecurity このモジュールを追加するとThymeleafを使ってHTMLをレンダリングする際にSpringSecurityの Authentication に…

Spring Security でCSRFトークンを使ってみる

Spring Security を使ってCSRFトークンを使ってみたという話です。 CSRFとは Cross Site Request Forgery (CSRF) とは、ログインした状態のユーザが悪意のあるリンク等をクリックすることで、意図しない操作をアプリケーションに送信する攻撃のことです。受…

Spring Security を理解する

Spring Security を一度しっかり理解しておこうかと思って。 やってみたこと Springは色々と便利な機能がある反面、その設定だとか動き方だとかが良くも悪くもブラックボックス化されています。数あるSpring関連のプロジェクトの中でも特に複雑&理解が難し…

PythonのテンプレートエンジンJinja2を使ってみた

Jinja2はPythonのDjangoウェブフレームワークに強く影響を受けて開発された、テンプレートエンジンらしいです。テキストベースのファイルであればなんでも出力することができるのでHTMLに加え、CSVやXMLもレンダリングすることができますね。やろうと思えば…

Pythonのfilterとsort

Pythonでちょっとしたツールを作る事が増えたのですが、やはりコレクション操作は重要だなと実感しました。コレクションから特定の値を抜き出したりとか、特定の値になるまでループしたりとか、やはり何するにもこの辺りはつきまとってくるんですね。 filter…

Pythonでforkとexecvを試す

「Linux のしくみ」と言う本を読んでいて、Pythonで試してみようかなと思い。 https://gihyo.jp/book/2018/978-4-7741-9607-7 fork とか大学の授業でやったな、と懐かしい感じがします。大学生の時にC言語で作ってfork処理が無限ループするとかやらかしてま…

NFSv4でFirewall越しに接続する

この前NFSでUbuntuとMacをつなげたんですけど、Firwall越しに接続できていなかったので改善したいと思います。 やることはかんたん。クライアント側で接続するときにバージョンを4指定で接続するだけです。 NFSv4はポートが固定されるのでfirewalldでの設定…

UbuntuにNFSを設定してみる

UbuntuにNFSを設定してみようかなと。 参考にしたサイトはこちら。 Ubuntu Community Help Wiki - SettingUpNFSHowTo Ubuntu Server - Network File System (NFS) Red Hat Customer Portal - 18.2.3 マウントポイントを共有する Ubuntu Linux 18.04 LTSで、N…

LinuxのFirewallの設定をやってみた

自宅にあるLinuxのFirewallの設定をいじってなかったんでいじくろうかと。 環境 bookstore@bookstoreUbuntu:~$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.1 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.1 LTS" VERSION…

Vimのjumpについて調べてみた

vim

vimのhelp読んでてjumpとかあまり使ってないし理解できていないなと。 jumps jumpのヘルプは :help jump-motions で確認できる。 jumpってそもそもなんなのかと言うとコマンドを使用してカーソルを別の行に移動させることを指すみたい。vimにはいくつもjump …

Lessのmanページを眺めてみた

Lessのmanページを眺めていたら便利な設定を見つけたので気になったもの順で書き出してみた。manページ眺めるのは暇つぶしに最適なだけでなく、結構役に立つ情報を入手できる。こういう文章をきちんと追える人ってすごいなと思います。 --line-numbers で左…

Linuxシステム情報を収集&閲覧するsysstatを使ってみる

sysstatを使ってLinuxのシステム情報を収集してみようかと思います。 構成 sysstatをインストールするLinuxの構成です。 bookstore@bookstoreUbuntu:~$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.1 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PR…

Linuxにsshで接続する

自宅に使っていないPCがあったのでLinuxをインストールし色々と実験(遊び)できるようにしようかと。メインのPCは別のMacとしたいのでまずはSSHで接続できるように設定します。 構成 接続先のLinuxです。 bookstore@bookstoreUbuntu:~$ cat /etc/os-release…

SpringBootアプリケーションのDockerイメージを作る!

SpringBootはおしごとで使うのにDockerイメージ作ったことないなと思って、やっておこうかと。 Google先生に聞いたらSpring 公式ブログがDockerイメージの作り方について書いてました。2つほど見つけましたが、下の記事のほうが詳しく書かれています。このあ…

Elasticsearch で Custom Analyzer 使ってみる!

Elasticsearch の Analyzer のカスタマイズ方法を調べてみようと思います。 Custom Analyzer を作る 基本はここに書いてありますね。 Create a custom analyzer | elastic docs 前回の記事でも載せましたが、Analyzer には3つの要素があり、カスタムで作る…

Elasticsearch のテキスト解析について調べてみた!

前回の記事でマッピングについて調べてみたことを書きましたが、調べていく中でテキスト解析の単語がちらほらと出てきていたので理解しておこうかなと。 テキスト解析とは 公式サイトのドキュメントにて、テキスト解析は以下のように説明されています。日本…

Elasticsearch のマッピングについて調べてみた!

ドキュメントの保存と検索はざっくりとわかったので、マッピングについて調べました。 マッピングとは ドキュメントがどのように保存され、どのようにインデックスが作成されるかを定義するのがマッピングらしいです。RDBで言うスキーマかなと最初思ったので…

Elasticsearch の検索(Query DSL)について調べてみた!

前回に引き続き Elasticsearch についてです。今回は検索の Query DSL について調べてみようかと。 チートシート発見したので、ドキュメント詳しく読むのがめんどくさいときは参考にしようと思います。 https://elasticsearch-cheatsheet.jolicode.com/ Quer…

Elasticsearch を使ってみた!

お仕事で Elasticsearch という単語を何度も聞くようになったのでとりあえずどんなものか知っておこうかと。 Elasticsearch とは What is Elasticsearch? | 公式ドキュメント 公式サイトでは次の一文で Elasticsearch とは何かを説明しています。 Elasticsea…

Dockerで経路制御によりブリッジネットワーク間で通信してみる!

Dockerのブリッジネットワークを使えばコンテナ同士をネットワーク経由で接続させる事ができます。ブリッジネットワークはユーザーが任意に作成することができ、異なるブリッジネットワークに接続しているコンテナは通信できない仕組みになっています。が、…

DockerでARPテーブルを確認してみる!

仕事の都合上Linuxやネットワークの勉強をしています。深く関わったことがない領域ですし、字を追っただけでは理解に限界があるなーと思いまして、実際に触って、見て理解しようかと思いました。というわけでこの記事はその記録というわけです。タイトル通り…

GoでJSONを扱う方法を調べてみた

ポイント encoding/json パッケージに大体の機能がある Encoding Decoding タグを使ったカスタマイズ Streaming で Encode と Decode 終わりに 参考 GW何をしようかと考えた末に、久しぶりにGoを触ってみようかなと思いまして、JSONの使い方を調べてみました…

MySQLの一貫性読み取りについて調べてみました

ロックあたりを調べていたら気になったので、ついでに調べました。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.2.4 一貫性非ロック読み取り ポイント ある時点でのデータベースのスナップショットをクエリーに提供 トランザクション分離レベルが REPE…

MySQLのインデックスについて調べてみました

業務ではクエリパフォーマンスの最適化とかやらないのですが、知っておいたほうが絶対にいいので調べてみました。 ポイント インデックス Bツリー構造 SHOW INDEX CREATE INDEX EXPLAIN インデックスとは インデックスは特定のカラム値のある行を見つけるた…

InnoDB(MySQL)のロックについて調べてみました

MySQLのロックについて調べてみました。MySQLのドキュメントは製品特有のことだけではなく、RDBに関する知識も豊富なので勉強しがいがあります。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.2.3 InnoDB のロックモード ポイント 共有ロック(S) 排他…

graphql-java-toolsのResolverを使ってネストされたPOJOをクライアントに返してみる!

graphql-java-tools のResolverを使ってネストされたPOJOをクライアントに返却してみました。 Resolverについて ネストされたPOJOとは? Resolverの実装 エンドポイントを叩いてみる Resolverについて graphql-java-tools においてResolverとはGraphQLスキー…

graphql-java-toolsを使ってGraphQLサーバーを作ってみる!

GraphQLサーバを作る際には graphql-java-tools を使うと便利らしいので使ってみました。 graphql-java-tools について queryの実装 mutationの実装 エンドポイントを叩いてみる 補足 graphql-java-tools について GitHub - graphql-java-kickstart/graphql-…

GraphQLで独自のScalarTypeを作ってみる!

GraphQLはSchemaに型を記述します。その型には2種類あります。 Object Type ... 取得できるデータの種類とそのフィールドを定義する型 Scalar Type ... Object Type のフィールドが最終的に変換される、それ以上分割できない型 イメージとしては Scalar Typ…