メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

GmailがロックされてElastic IPでないEC2からメール送信できなくなった芸

芸じゃないけど

テスト環境でElastic IPでないEC2を開始/停止/再起動を繰り返しているような状況下で
(こういうシチュエーションだとパブリックDNS/パブリックIPが変わります)
インスタンスの中のアプリケーションサーバーからテストのためにメールを送っているとGmailがロックされてしまいました((((;゚Д゚))))

こんなメールが 

f:id:ryoichi0102:20161108123407j:plain

今すぐ端末を確認するリンク(ボタン)を踏んだ所で、
確認できるのは見に覚えのあるアクセスのみ。
しかも、そのアクセス(端末)を今後許可するといったような機能やリンクはありません。

こうなるともうこのアカウントでのメールが送れなくなります。
複数のIPアドレスから断続的にアクセスがあれば、そりゃあ止まります^^
ありがとう!セキュリティ!! ありがとう!Google!!

いやいやこれはだいぶツラいです。
解決方法は新しいメアドを取って差し替えるとか、そんな感じになると思いますがやはりElasticなIPでないと…ね。

メールの送信テストなどを行う場合などは気をつけましょう〜

EclipseLinkで取得した値のスペースがトリムされてしまう

環境

  • Oracle 12c
  • EclipseLink 2.5.2
  • JPA (Native Query)

現象

EclipseLink(JPA)において、CHAR型の主キー(PK)の値を取得すると
末尾のスペースが取得できない。(rtrimされたような状態で取得される)

こういうフィールドはVARCHARで設計すべきという一般論もありますが
今回はこのCHAR型のスペースがrtimされてしまう現象についてです。

Entityコード

@Entity
public class HogeEntity implements Serializable {
@Id
@Column @Getter @Setter
private String element;

@Column @Getter @Setter
private String // 略
// 略
}

対応方針の検討

stackoverflow.com

stackoverflow.com

これらを参照する所によると、取得後のfillSpaceで対応したり、@PostLoadアノテーションでカバーしたりするのは良くなさそうです。

VARCHARにしたり、SessionCustomizerをextendsするのが良さそうです。

ssh sudo dockerコマンドでパスワードを聞かれないようにする苦し紛れの方法

コマンドラインだと

$ ssh -t -i /mnt/c/Users/ryoichi0102/.ssh/id_rsa command docker-user@192.168.10.123 command sudo docker ps -a

とかdocker start/stopはsudoのパスワードを求められても入れればいいのですが
Jenkinsからdocker stop/start させるときにsudoパスワードを求められると
ビルドが止まっちゃう。。

sudoパスワード聞かれない方法に

$ sudo visudo

で最後の方に

docker-user-name ALL=NOPASSWD: ALL

を追記します。

後に定義したほうが有効になるので、最後の方に書きます。

 

superuser.com

 

イントラ専用。
多分セキュリティ的にあまり良くない。

ちなみにUbuntu on Vagrant on  Macには

%vagrant ALL=NOPASSWD: ALL

が既に設定してありました。