TomcatでCookieのSameSite属性を無理やり付与する

最近のChromeやFirefoxでは、CookieにSameSiteという属性を指定することができます。 これは、CSRFから保護する強力な仕組みであるようです。 簡単に言うと、外部ページから内部ページへ直接リクエストを飛ばしても(※CSRFの動作原理)、Cookieヘッダを送信…

Memo: JenkinsのSlack Notifierを一括設定する

初めてJenkinsのスクリプトコンソールを使いましたが、慣れればラク…なのか? こちらを参考にしました。 http://gist.github.com/yuroyoro/337b72638578bafd50e5 jenkins.model.Jenkins.instance.items.each {job -> list = job.getPublishersList() list.re…

Memo: EclipseLinkが関連エンティティをUPDATE/DELETEする順序はID順

「同一オブジェクトの1-Nの関連先エンティティを同時更新した時、デッドロックは発生しないのか?」という点が急に気になったので調べたときのメモ。 EclipseLinkの場合、エンティティのUPDATE順序はデフォルトで「ID順」 で、その他に「オブジェクトの変更…

SSHで"No supported authentication methods available"→SELinuxが原因だった

本日、新しく鍵を作ってauthorized_keysに配置したのですが、なんかログインできないわけです。 “No supported authentication methods available” と言われてしまう。 /var/log/secureを見てみても、 May 18 14:19:21 foobar sshd[26582]: Received disconn…

MariaDBをメジャーダウングレードする

mariadb-java-client-2.0.1がリリースされたので試してみた所、よくわからないエラーでテストがコケるようになりました。 特定のSelect文を打つと、こんなエラーがでることがあります。 java.sql.SQLIntegrityConstraintViolationException: (conn:50) Colum…

HiDPI環境下のWindowsでSwingアプリケーションのメニューが壊れるのをどうにかする

タイトル通り。 本日、Parallelsで運用しているWindowsを「Retinaに最適」にしたところ、Swingアプリケーションのメニューが壊れました。 Parallelsの設定はこれ。 で、これで例えばVisualVMを起動するとこうなります。 本来、メニューが表示されるべき領域…

Struts2のリモートコード実行可能脆弱性(CVE-2017-5638)を分析した

またOGNL絡みの脆弱性が見つかりました。 アウトラインはid:Kango氏がまとめているこちらが参考になります。 http://d.hatena.ne.jp/Kango/20170307/1488907259 さて、この脆弱性の動作原理を調べてみました。 ファイルアップロード時のヘッダの処理方式に問…

MariaDB-10.2.4で、カスケード削除とクエリキャッシュ絡みのバグを発見

MariaDB-10.2.4がリリースされています。これは正式リリース候補版と言うことで、早速検証してみたところ、バグを発見。 僕がぶち当たった現象とは、以下のようなものです。 テーブルParentとChildには親子関係があり、Childが親を指す外部キーにはカスケー…

ジャスミンソフト贄さん&クオリティスタート湯本さんとランチしてきた

先週の話となりますが、湯本さん経由で贄さんに連絡してもらい、ランチしてきました。 場所は銀座の過門香です。 ところで、この店は仕事でめちゃくちゃ重宝してます。ロケーションは申し分ないし、店のレベルも高い。 ぜひ皆様ご活用下さいませ。 ただし上…

MariaDB-10.1.21が起動しない→SELinuxの問題

つい先程、MariaDB-10.1.21にアップデートしたらmysqlが起動しなくなりました。以下のようなエラーになります。 # service mysql start Starting MySQL.170120 15:39:55 170120 15:39:55 mysqld_safe Logging to '/var/log/mysqld.log'. 170120 15:39:55 mys…

dracutが古いカーネルのinitramfsを勝手に作る

いつからかそうなったのかは覚えていないのですが… 新しいバージョンのカーネルをインストールすると、なぜか古いカーネルバージョン(しかもアンインストール済み)のinitramfsも作ろうとするようになっていました。 で、そのうち/bootに壊れたinitramfsフ…

EclEmma-3.0.0に更新したらエラー発生

本日、EclEmmaのアップデートが来ていたので更新してEclipseを再起動すると、意味不明なエラーが出てEclEmmaを使用できなくなりました。 次のようなエラーが発生します。 !MESSAGE Invalid input url:platform:/plugin/com.mountainminds.eclemma.ui/icons/f…

Tomcat-8.5.8以降ではHTTPパイプラインが動作しない

弊社はSeleniumを用いたガチなE2Eテストを全ての受託案件で実施しており、 CI環境では24H365Dで膨大なSeleniumスクリプトが動いています。 つい先日、CI環境のTomcatのバージョンを8.5.8に上げた所、意味不明なエラーが出てテストが失敗するようになりました…

自分の精神をコピーしたら何が起きるのか

こんな増田が話題になってます。 anond.hatelabo.jp 僕も先月に「ディアスポラ」を読み終わったところだったのでちょうどよいネタ。 ディアスポラ (ハヤカワ文庫 SF)作者: グレッグ・イーガン,山岸真出版社/メーカー: 早川書房発売日: 2005/09/22メディア: …

struts-2.5.5でI18nInterceptorの初期化失敗を無理やり回避する

2017-07-13追記 struts-2.5.12で解消された模様です。 対応するJiraのチケット struts-2.5.5がリリースされました。 このリリースはかなり大きなインパクトのある変更がいくつか入っています。 最大のインパクトは、ActionContext#getParameters()の戻り値が…

Googleからスカウトされました

数日前、いきなりGoogleのリクルーターからメールが来ました。 メールの全文掲載はマズいと思うので要点だけ書くと、 ブログ(このブログのこと)とGithubを見て、特にJavaに関するプログラミングの能力が高いとお見受けした Site Reliablity Engineers(SRE)…

"永続記憶装置からセッションをロード中の例外です"がウザったいのでセッション永続化をOFFにする

Tomcatを停止して再起動すると、こんな例外が発生することがあります。 java.lang.ClassCastException: java.lang.StackTraceElement cannot be cast to java.lang.String at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1421) at jav…

Firefox48以降でSelenium-RCが動作しない問題を解消する

昨日やっとトレーナーレベル22になりました。わーい。 御存知の通り上野公園は毎週末ヤバイことになってますが、コイキングだらけのおかげでギャラドスを取れました。 さて、ウチは非プログラマもテスターとして戦力化しているので、Selenium IDEベースの環…

Jenkins2にアップグレードしたら問題なく動いた

昨晩おもむろにyum upgradeしたらLTSのバージョンもとうとうJenkins2系へ移っていた(1.651.3 → 2.7.1)ので、思い切ってアップグレードしてみました。 …とは言え、仮想マシンのスナップショットは取ってあるのでいつでも戻せますけどね。 Jenkinsサーバに万一…

Eclipse4.6 "Neon"の新機能一覧

毎年恒例の新バージョンリリースです。ネオン(Neon)ということで、なんだか派手になりました。 ティザーサイトによると、6/22にリリースされるとのこと。 http://www.eclipse.org/neon/ ひとつ前のリリース、4.5 "Mars"の解説はこちら。 http://takahashikzn…

TldScannerでNullPointerExceptionが出て起動しない

僕は普段、開発用としてTomcat-9.0.0系を使っています。 先ほどTomcat-9.0.0-M6に更新したら、このようなエラーが出て起動しなくなりました。 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component…

Eclipse 4.6 "Neon" M7リリース

そろそろ毎年恒例のイベントがやってきます。 今回のコードネームはNeonですが、惑星シリーズのネーミングは止めたようですね。 毎年のリリースペースならばマイルストーンビルドはこれで打ち止めです。次からはRC(Release Candidate)扱いになるでしょう。 (…

Struts2のS2-032の要点

またOGNL絡みで脆弱性が出ました。ホントにこの機構は問題児ですね… とはいえOGNLはStruts2の根幹に関わる機能なので、OFFにすることは難しい。 「1アクション=1アクションクラス」派でない方にとっては、DMIを使えないのは死活問題になりかねません。 ち…

Thanks to @Annotations, @Progress is @Unstoppable! (@Annotationが進化を促進する!)

面白いサイトを見つけたので訳してみました。 http://www.annotatiomania.com/ 2000年に書いたコード private Collection employees; 2004年に書いたコード private Collection<Employee> employees; 2005年に書いたコード // 糞コンパイラが文句を言うため。後で修正</employee>…

Tomcat-8.5.0を試す

Tomcat-8.5.0-betaがリリースされています。 リリースノートによると、 The Apache Tomcat Project is proud to announce the release of version 8.5.0 of Apache Tomcat. Apache Tomcat 8.5.0 is intended to replace 8.0.x and includes new features pul…

Tomcat-8.0.32上でRhinoの初期化に失敗する問題を強引に解消する

Tomcat-8.0.32がリリースされています。 いつも通り、早速アップデートして試してみたのですがそもそもアプリが起動しなくなりました。 こんなエラーを吐きます。 Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at j…

Chrome49でShadow DOMの属性セレクタが効かなくなった

CSS

だいぶ前に、日付入力フォームの"年"、"月"、"日"をShadow DOMを用いて消す方法を紹介しました。 http://takahashikzn.root42.jp/entry/20130715/1373865102 要するにこのように指定すればOKです。(※Lessです) ::-webkit-datetime-edit-year-field, ::-webki…

rawgit.comに接続できなくなった→githack.comに乗り換えた

githubで管理しているJSやCSSをそのままCDN的に使いたい場合、rawgit.comが便利です。 僕も個人用JenkinsのカスタムCSSをrawgit経由でホストしています。 しかしどうやら本日から、Chromeがrawgit.comを拒否するようになりました。こんな感じになります。 証…

jQuery-2.2.0をEnv.js上で動かすためにパッチを当てる

jQuery-2.2.0がリリースされています。 「まだjQueryで消耗してるの?」と言われそうですが、細かいDOM操作をするならjQueryは依然として非常に優れた選択肢です。 ウチはクローラーをJavaで書いたりしている都合上、jQueryをEnv.js上で動かしているのですが…

JSONにコメントを付けるなら空文字キーがオススメ

JSONを設定ファイルとして使うとき、コメントを付けたくなりますよね。 または、お決まりのコピーライトヘッダを入れるとか。 「JSON コメント」でググったところ、わざと同じキー名の値を宣言するというテクが使えるとありますが、実装依存なのであまり良く…