[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Google の API Client Library for Java | Google Developers を眺めながら maven で google-api-client 1.30.5 をぶち込み以下のソースコードを書いたらなんか上手くいかなかった。
/** Authorizes the installed application to access user's protected data. */
private static Credential authorize() throws Exception {
// load client secrets
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(CalendarSample.class.getResourceAsStream("/client_secrets.json")));
// set up authorization code flow
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets,
Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory)
.build();
// authorize
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}
AuthorizationCodeInstalledAppが未定義だと言われるのだ。実はこのクラス、google-oauth-client から 1.30.1 を最後に消されている、のか?(根拠:javadoc になんかそんな感じの事が書かれている)
しかし、こちら以下を pom.xml に明記したら解決された。
<dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-java6</artifactId> <version>1.30.5</version> </dependency>
こういう関連するライブラリについては Setup Instructions | OAuth Client Library for Java | Google Developers に色々書かれている。また、「java6 って書いてあるけど大丈夫なのかよ」と思うが Java 6 (and higher) extensions to the Google OAuth Client Library for Java (google-oauth-client-java6) support Java6+ applications. This module depends on google-oauth-client.
(Java 6 以降 向けの Google OAuth Client Library の拡張です。google-oauth-client に依存しています)らしいので大丈夫。
年明けに家電量販店の福袋で Nintendo Switch が安かったので買ってしまった。さらにひつじがフィットボクシングを買ってきてしまい、二人で延々とやっている。尊敬している作家さんも最近始めたらしいので勝手に親近感。
年明けてしばらくしてから継続しているが、自分はスーツのベルト切るべきか迷う程度の変化が出てきた。
ほかにも New スーパーマリオ U デラックスも買ったが緩めにプレイできるのでアクションゲー苦手なひよこ・ひつじでも割と楽しめる。良い。
以下のような発言が私の参加している Discord サーバに貼られていた。どうもコピペらしい。
【安全性問題についてのお知らせ】 先日ディスコにQRコードログイン機能が実装されましたが、 現在、大きな抜け穴が発見されており、それを利用し、他人のアカウントを乗っ取る事が出来ます。 もし誰かがQRコードを貼り、「ディスコアプリでスキャンすればディスコードNitroを無料で手に入れられるよ」等と主張する場合、絶対にスキャンしないでください。 各サーバー管理者も、それらしき物を発見した場合、すぐ削除してください 気を付けて下さい。
これだけだと何が何だかわからん気もするので簡単に解説する。結論としては「そこそこに危ない」。
スマートフォンの Discord アプリから Discord にログインしていれば ID・パスワードの入力無しに簡単に PC から Discord にログインできる機能。
Discord のログインページにアクセスするとこの記事を書いている時点では次のような画面が表示される。
※この画像内の QR コードは別の安全なページへのリンクに改編されている。
この QR コードをスマートフォンの Discord アプリ付属の QR コードリーダーで読み取る。スマートフォンの Discord アプリ付属の QR コードリーダーは設定より以下をタップすると起動できる。
なお、LINE の QR コードリーダー等別の QR コードリーダーから読み込んだ場合は Discord の QR コードリーダーが起動されるようになっているため、見つけられなければそういった別の QR コードリーダーから読み込むと良い。
読み込むと次のような画面がスマートフォン(タブレットかもしれないが)に表示される。
この "IT'S ME! LET ME IN." をタップする。
PC の方を見てみるとログインが完了している。この際はスマートフォンの Discord アプリでログインしていたユーザの名義でログインすることになる。
PC の方ではなくスマートフォンを操作することで PC のログインを操作できる。こうやってみるとなんとも不思議な機能であるが、こういうものである。
上述の操作で登場する人物と機器のやりとりをまとめると次のようになる。
この際、PC を操作して QR コードを生成した人と、スマートフォンを操作して QR コードを読み込んだ人が同じであることを確認してほしい。
ではPC を操作して QR コードを生成した人と、スマートフォンを操作して QR コードを読み込んだ人が違う場合はどうなるのか。結論は『攻撃者は自分が QR コードを他人に読ませることで他人の名義で Discord にログインできる』。
攻撃者(図左上)が生成した QR コードを別のユーザのスマートフォンで読み込んだ場合、攻撃者は別のユーザのスマートフォンでログインしていた Discord ユーザの名義でログインすることになる。別のユーザのスマートフォンでログインしていた Discord ユーザは十中八九スマートフォンの持ち主が持っている Discord ユーザであるため、攻撃者は他人の名義で Discord にログインすることができる。
そもそも "IT'S ME! LET ME IN." を叩く画面には You have unlocked the magic pass to login on your computer! Confirm that it's you on the PC
と出ている以上、この画面が出た時点で「なんかおかしいのでは??」と思いたいものである。半面、Discord の言語設定を日本語にしていても英語で表示されるのはあまりやさしいとは言い難い。また、この機能を使ってログインするとアカウントに二段階認証を設定していてもそれをスキップしてログインできるようだ。この面については流石にどうかな、とちょっと思う。
「これ危ないんじゃね?」という話は Major flaw with QR scan – Discord で議論されている。
割と肌の調子が安定していた子供たちの肌が乾燥している。時期的なものもあるだろうが、厳しさを感じる。色々と調べてみたところ、以下のようにしてみることにした。
大人についても似たような方向で行った方がよさそうだなぁ……
あと、入浴後保湿される長男がかわいい。
spacedesk を使って古いタブレットをデュアルディスプレイ用のモニターにした、という話。
色々あって私の自宅における PC 環境はデュアルディスプレイになっていない。辛いものがある。しかし、昔ひつじが使っていた古いタブレットをもらったのでこれを使ってデュアルディスプレイにしてみる。
探してみると色々な手段が見つかるが、大体が有料である。まぁ、それはそうだろう。そんな中、spacedesk は無料で導入ができた。
user-manual 記載の通り。
PC 側は Windows 7 以降が求められる。なお、PC 側は Windows しか対応していないようだ。Mac や Linux のサブディスプレイを作るためには利用できない。
Android、iPhone (iPad)、Windows をディスプレイにできる。Android なら OS が 4.1以降、 iOS なら 9.3 以降、Windows なら 7 以降が求められる。また、ブラウザをディスプレイにすることもできる。これを用いるなら大体のブラウザが対応している。
ブラウザをこれに使うこともできるため、古い Linux マシンをディスプレイにする、なんてこともできる。
サブディスプレイにするだけでなく、サブディスプレイとなった端末側から PC を操作することもできるので、リモートデスクトップ接続の代替として利用できるか。
サブディスプレイにする際は画面の拡大先として利用することの方が多いだろう。しかし、画面を複製する形で利用することもできる。そのため、 PC の画面を他の端末から閲覧することもできるので画面共有の用途として利用することができる。部屋にプロジェクタが無いがミーティングの出席者全員に画面を共有して説明したいとき等の代替手段に利用できるか。