ハマログ

株式会社イーツー・インフォの社員ブログ

Javaのプログラム内でBasic認証を設定する

目次
1.サーバ側(Apacheとか)でかける
2.ウェブアプリケーションサーバ(Tomcatとか)でかける
3.プログラム側で制御する

サーバ側(ApacheとかNginxとか)でかける。

ウェブのリクエストを最初にうけとるサーバでの設定です。
ユーザアクセスがウェブアプリケーション側に渡る前に制限するので、負荷・セキュリティ的にはこれが一番ベストです。

AuthUserfile /etc/httpd/.htpasswd
AuthGroupfile /dev/null
AuthName "Secure Zone"
AuthType Basic
require valid-user

ウェブアプリケーションサーバ(Tomcatとか)でかけることもできる

web.xml

<web-app>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>html</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>tomcat</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>UserDatabaseRealm</realm-name>
    </login-config>
    <security-role>
        <role-name>tomcat</role-name>
    </security-role>     
</web-app>

Javaプログラムで制御

データベースからID/パスワード情報を読み込んで、認証を設定する。一番柔軟。
一画面だけかけたいとか、ユーザー名/パスワードをDBから取得して細かく制御をおこないたいとか。そんなときに使えます。
※java.util.Base64を利用

String user = "";
String pass = "";
// 省略
HttpURLConnection con = (HttpURLConnection) url.openConnection();
final String userPassword = user + ":" + pass;
String encodeAuthorization = Base64.getEncoder().encodeToString(userPassword.getBytes());
con.setRequestProperty("Authorization", "Basic " + encodeAuthorization);
con.connect();

以上、メモでした。

Base64Basic認証JavaTomcatアクセス制限認証

  kaneko tomo   2017年3月23日


関連記事

スタンディングワークを始めてみた

同僚や私自身含め、腰痛に悩まされている方は多いと思います 季節の変わり目などは発…

GitHub-Guessr

GeoGuessr 「GeoGuessr」というゲームがある。 GoogleMa…

プログラマーの夢

初めてプログラムを書いてから26年たちました、 いくらコードを書いても、10、2…


← 前の投稿

次の投稿 →