AWS ALBで特定のパスもしくはパスが存在しない場合のみリクエストを許可したい場合

https://example.com/app もしくは https://example.com ではアクセスを許可したいが、それ以外についてはアクセスを許可したくない(404を返したい)場合は以下のように設定する。 パスが/app または /app/* または / の場合は許可する。 パスが /* の場合は…

Javaのメソッド呼び出し階層を表示する

Threadオブジェクトからスタックトレースを取得できるのでそれを使用する。 System.out.println(java.util.Arrays.stream(Thread.currentThread().getStackTrace()) .skip(1).limit(4).map(t -> t.getClassName() + "." + t.getMethodName()).collect(java.u…

JavaからActive Directory(LDAPS)接続(自己署名証明書の検証スルーコード付き)

自分向けの備忘録として。 基本はこちら。 kazuhira-r.hatenablog.com こちらの記事だと自己証明書のスルーに使用しているのが X509TrustManager だが、新しいTLSに対応するためには代わりに X509ExtendedTrustManager を実装してあげる必要がある。 よって…

JavaMailでメールアドレスに名前を付ける

JavaMailで送信したメールに宛先や送信元に名前を表示したい場合がある。 以下のような感じですね。 ゆとり<megascus@megascus.dev> InternetAddressクラスの3つの引数があるバージョンを使えば対応できる。 docs.oracle.com 日本語を扱う場合、charsetとして"iso-2022-jp"を使用し</megascus@megascus.dev>…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

ネットワークドライブの割り当てを行ったNASに保管されているExcelファイルの元の場所のURLを取得する

\XXXnas\share\hoge.xlsx みたいなでアクセスするのを嫌がって、 \XXXnas\share\ をZドライブに割り当てみたいなことをした場合に、他の人に共有する場合はZドライブではなく元のネットワークドライブ上のパスで指定したい場合があります。 その場合、リボン…

aws-sdk-java-v2を使用してs3からオブジェクトを取得する。

aws-sdk-javaのバージョン2が出ていたので試してみました。 v1と比べて、パッケージ名が変更されていたり、APIがビルダー形式(いわゆる流れるようなインターフェース)になっていたりと微妙に差はありますが、大きく差があるわけではないというのが印象です。…

「みんなのJava」は最近5年間のJavaの動向概要を復習するための本 #minjava

「みんなのJava」を著者の方から頂いたので読みました。 ありがとうございます。*1 みんなのJava OpenJDKから始まる大変革期!作者:きしだ なおき,吉田 真也,山田 貴裕,蓮沼 賢志,阪田 浩一,前多 賢太郎発売日: 2020/03/13メディア: 単行本(ソフトカバー) …

Tomcat 10でJakarta EE 9のServlet APIを試す。

Tomcat 10のマイルストーンリリースが出ました。こちらはJakarta EE 9(旧Java EE 9)対応のリリースとなります。 tomcat.apache.org 現時点ではパッケージ名称が変わったぐらいで大きい変更はなく、結果だけ言えばうごいたねーぐらい。 mavenの依存性には以下…

去年と今年と

もう年が明けて5日になってしまいましたが、去年の総括と今年についてつらつらと。 12月末日で今の会社に入ってからちょうど5年が経ちました。 社会人生活に入ってからここまで長く勤めた会社ってのは初めてなので、 まあ、今までで一番合っている会社なんだ…

Oracle DBがWindowsの再起動時に自動で立ち上がらなくなった場合

Oracle DBをサービスとして登録してあり自動で起動するように設定されていて、TNSリスナーは自動で立ち上がるのにOracle DBに接続できない場合があります。 データベースを再作成した時にそうなることがあるのですが、そちらについての確認方法と対処方法を…

特定の文字がWindows-31J(Shift_JIS)で扱えるかどうかをJavaで確認する。

現時点では、以下のコードが一番よさそう。 private static final Charset windows31J = Charset.forName("Windows-31J"); public boolean canEncodeWithWindows31J(CharSequence str) { CharsetEncoder encoder = windows31J.newEncoder(); return encoder.…

Hitachi Cosminexusの新規採用は止めましょう。

Java EE(Jakarta EE)の仕様検討ワーキンググループへの参加を止めてしまい、最新仕様への追従も数年前から止めてしまっているようなので、導入するのは止めましょう。 仮に導入しても、レガシーAPIしか使用できず、生産性の向上は望めません。 Java EE(Jakar…

WindowsでOracle 18c XEのインストール時に管理者権限があるのに管理者権限がないと怒られて失敗する場合

ドメインに参加しているWindowsでドメインユーザーを使用してOracle 18c XEをインストールしようとすると、管理者権限がついていたとしても管理者権限がないといわれて怒られる。 その場合、同名のローカルユーザーを作って管理者権限を付けてあげると、ドメ…

Servlet APIとJPA APIの日本語翻訳を独自ドメインに移動させました。

タイトルのとおり。 古いページにアクセスしても自動でリダイレクトされるはずですが、ご連絡として。 中身はgithub pagesのままで何も変わってないです。 https://github.megascus.dev/ よくある質問と答え なんでドメインを移動させたんですか? github pa…

Oracle DBのPL/SQLからOffice365(starttls)を利用してメールを送信する

君がこれを読んでいるということは非常につらい状態に置かれているということだろう。 公式ドキュメント通りにやっても動かないという人向けに記す。 以下についてはきちんと読みましょう。 docs.microsoft.com https://support.microsoft.com/ja-jp/help/44…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

正規表現で空白をマッチさせるときは\sじゃなくて\hのほうが良いのかもしれない。

正規表現で空白文字とマッチさせるときは\sを使用することが多いと思いますが、本当に求めているものは\hなのかもしれません。 \s 空白文字: [\t\n\x0B\f\r] \h 水平方向の空白文字: [ \t\xA0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000] \sはasciiで定義…

SQLExceptionをハンドリングしなくてもよくなるJDBCドライバ

DB障害時にもJDBCから例外返すなと言われるとねぇ— いとうちひろ(Chihiro Ito) (@chiroito) February 7, 2019 そういえば、log4jdbcみたいにラップしてあげれば実装できるよねーということに気が付いたので、実装してみました。 github.com なんと!SQLExcep…

Tomcatのログの保持日数がTomcat 9から90日になっていた。

題名のとおり。 ついでに、Tomcat-9.0.13からはログの出力文字がUTF-8に変更されました。 よって、現状は以下のような感じになっています。 ※conf/logging.propertiesから抜粋 ※下2行が増えた。 1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1c…

Oracle DBのjdbcドライバをmavenから利用する。

日本語情報だと、どこからか取ってきたjdbcドライバを自前でローカルリポジトリにインストールしろという記事しか見つからなかったので。 Oracle社はOracle DB用のjdbcドライバを自前のmavenリポジトリでリリースしており、そちらから取得する設定を行うこと…

JavaのAPIを使用して証明書にアクセスする(keytoolは使用せずに)

証明書の期限切れが世の中をにぎわせている今、プログラムから証明書の期限を取得してAPIとして期限切れかどうかをチェックできるものがあるといいよなぁと思い、Javaから証明書にアクセスする方法を調べてみました。 証明書の自動更新とかの実装例を見てる…

AWS RDSでOracle DB 12cに当たってるパッチセットを確認する。

twitterで @ktz_alias さんに教えてもらったとおりですが。 www.dba-oracle.com DBMS_QOPATCH 以下でパッチセットが取れます。 select dbms_qopatch.GET_OPATCH_LIST from dual; 以下でパッチの当たったバグの一覧が取れます。(上にも含まれている情報です) …

Tomcatのリモートデプロイが2017年からずっと失敗している件

いまだにAntでTomcatのリモートデプロイをしているのですが、ここ最近のバージョンだとずっと動いていなかったようです。 Antの中身で呼ばれているクラスを実行するとエラーになります。 DeployTask deployer = new DeployTask(); deployer.setUpdate(true);…

IPAの非機能要求グレードを使ってみた。

2018年4月25日に更新されて、話題になっていたので。 実は、この非機能要求グレードという資料については私は最近まで全く知りませんでした。https://www.ipa.go.jp/sec/softwareengineering/reports/20100416.html 非機能要求とは そもそも頭に"非"が付いて…

Microsoftのドキュメントの誤訳を報告したら炎上した件について(当事者目線での話)

この件について改善がなされるとの発表がMicrosoft DOCS International Teamからありました。 少なくとも、誤訳の報告についてはやりやすくなるそうです。 ご担当者様及びに尽力してくださった方々には感謝いたします。 https://github.com/dotnet/docs.ja-j…

Eclipse Photonからテストフォルダを分離できるようになりました。

ということで試してみました。以下のようにテストフォルダはグレーアウトされて表示されます。 テストフォルダであるかどうかは「Java Build Path」の「Contains test sources」の値をtrueにすることで指定できます。 mavenの場合はtest配下のフォルダは自動…

Javaのスレッドで発生したキャッチされてない例外をログに出力する

概要 Thread#setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler) を呼び出すことでアプリケーション全体のログ設定を変更することができる。 上の設定をThreadGroupで上書きすることができる。ただし、ThreadGroup自体がUncaughtExceptio…

JPA 2.2のJavaDocを日本語に翻訳した

ガクッhttps://megascus.github.io/jpa-spec/docs/apidocs/

Oracleにjdbcで接続したときのタイムゾーンの設定

以下のような感じらしい。デフォルトではクライアントのユーザーが使用しているタイムゾーンが使用される。=システム環境変数(user.timezone)の値 システム環境変数で指定されているため、実行時のオプションで上書きすることが出来る java -jar XXXX.jar -…