php 小编柚子为您用绍Java JAAS中实现现于于资源的访问控方法. Berkomunikasi JAAS (Java Authentication and Authorization Service), kakitangan terbuka boleh mengakses sumber keselamatan, menjamin keselamatan sistem. Terokai butiran teks dan pelajari cara menggunakan keupayaan JAAS, sumber sebenar, pengurusan sumber dan teknologi keselamatan penting yang lain.
JAAS terdiri daripada dua komponen: modul log masuk dan modul dasar. Modul log masuk bertanggungjawab untuk mengesahkan pengguna, dan modul dasar menentukan sumber yang boleh diakses oleh pengguna.
Kawalan capaian berasaskan sumber ialah kaedah mengawal capaian dengan menyatakan sumber yang dibenarkan untuk diakses. Untuk melaksanakan kawalan akses berasaskan sumber, anda mesti mengenal pasti sumber yang ingin anda lindungi terlebih dahulu. Sumber yang dilindungi ialah sebarang sumber yang anda ingin hadkan akses, seperti fail, direktori atau pangkalan data.
Modul log masuk dan modul dasar boleh dibuat menggunakan api JAAS. Modul log masuk mesti melaksanakan antara muka LoginModule
インターフェイスを実装する必要があります。ポリシーモジュールは、Policy
.
JAAS menerangkan tetapan untuk modul log masuk dan modul dasar. jaas.conf
という名前で、アプリケーションのクラスパスに配置する必要があります。jaas.conf
. Kod ini menentukan lokasi fail konfigurasi JAAS. System.setProperty("java.security.auth.login.config", "jaas.conf")
// LoginModuleを実装したクラス public class MyLoginModule implements LoginModule { // 認証を行うメソッド @Override public boolean login() { // 認証ロジックを記述 return true; } // 認可を行うメソッド @Override public boolean commit() { // 認可ロジックを記述 return true; } // ログインモジュールを破棄するメソッド @Override public boolean abort() { return true; } // ログインモジュールを初期化するメソッド @Override public boolean initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState, Map<String, ?> options) { return true; } // ログインモジュールを破棄する前に呼ばれるメソッド @Override public void loGout() { } } // Policyを実装したクラス public class MyPolicy implements Policy { // 認可を行うメソッド @Override public boolean implies(Subject subject, PermissionCollection permissionCollection) { // 認可ロジックを記述 return true; } // ポリシーを破棄するメソッド @Override public void refresh() { } } // JAASの設定ファイル(jaas.conf) MyLoginModule { username="user1"; passWord="password1"; }; MyPolicy { codeBase="file:/tmp/MyApp.jar"; permission java.io.FilePermission "/tmp/*", "read"; }; // アプリケーションのコード public class MyApplication { public static void main(String[] args) { // JAASの設定を行う System.setProperty("java.security.auth.login.config", "jaas.conf"); // ログインを行う LoginContext lc = new LoginContext("MyLoginModule"); lc.login(); // 認可を行う Policy policy = Policy.getPolicy("MyPolicy"); PermissionCollection permissionCollection = new PermissionCollection(); permissionCollection.add(new FilePermission("/tmp/*", "read")); boolean implies = policy.implies(lc.getSubject(), permissionCollection); // アクセスを許可するかどうかの判断 if (implies) { // アクセスを許可する } else { // アクセスを拒否する } } }
Dalam artikel ini, kami menerangkan langkah dan kod demo untuk melaksanakan kawalan akses berasaskan sumber dengan JAAS.
>Lihatlah pengajian/teknik peringkat tinggi untuk tahun lepas/2018/2019 target="_blank">Jangkakan kos >>>
Atas ialah kandungan terperinci Cara melaksanakan kawalan akses berasaskan sumber dengan Java JAAS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!