shiro-uaa adalah layanan akun pengguna ringan dan solusi otentikasi identitas (UAA) berdasarkan Shiro.
Saat pertama kali memulai sebuah proyek, saya yakin kesederhanaan Shiro akan menjadi pilihan pertama bagi sebagian besar kerangka izin pengembang. Namun, ketika proyek diperluas dari 1 ke n dan memerlukan otentikasi dan otorisasi terpadu, Shiro sendiri tidak mendukung otentikasi dan otorisasi terpadu. .
Server UAA Ringan
Shiro murni
Mudah dipelajari
Mudah untuk diperluas
Siap di luar kotak
1.server autentikasi
pakar
Titik akhir bawaan
Deskripsi alamat URI/uaa-auth/authenticationAlamat untuk meminta otorisasi akan diarahkan ke halaman login Anda/uaa-auth/authentication/apporveAuth Server setuju untuk mengotorisasi dan mendistribusikan kode alamat/uaa-auth/access-token untuk mendapatkan akses-dari alamat Token Server Auth/alamat uaa-auth/logout untuk keluar dari Server AuthAPI yang dapat diperluas
Deskripsi nama antarmuka Layanan aplikasi akses AccessClientService Layanan token akses AccessTokenService Layanan pengguna AccountService Layanan AuthCodeServicecode Layanan peran RoleServicelogin
Sesuaikan halaman Login dan verifikasi login, terapkan org.apache.shiro.authc.credential.CredentialsMatcher, terapkan logika verifikasi saat login, dan konfigurasikan shiro.loginUrl
kesalahan maju
Secara default, ketika OAuthProblem terjadi di Server, ia akan melompat ke alamat Sumber Daya (parameter redirect_uri) dengan informasi kesalahan. Jika forwardErrorUrl dikonfigurasi, itu tidak akan mengarahkan ulang dan menampilkan halaman kesalahan .uaa .server.forwardErrorUrl, tujuan konfigurasi ini adalah untuk mencegah lompatan abnormal menggunakan Server
Parameter konfigurasi yang diperluas
Deskripsi nama parameter shiro.uaa.server.codeExpiresUAA waktu kedaluwarsa Kode distribusi, satuannya adalah detik shiro.uaa.server.accessTokenExpiresUAA distribusi Waktu kedaluwarsa AccessToken, satuannya adalah detik shiro.uaa.server.refreshTokenExpiresUAA distribusi Waktu kedaluwarsa RefreshToken, satuannya adalah shiro detik. loginUrl alamat login yang disesuaikan shiro.uaa.server.clien ts[].nama akses nama aplikasi, valid saat menggunakan memori default AccessClientService shiro.uaa.server.clients[].clientId aplikasi akses clientId, valid saat menggunakan memori default AccessClientService shiro.uaa.server.clients[].clientSecret access Masukkan aplikasi clientSecret, yang valid bila menggunakan memori default AccessClientService shiro.uaa.ser ver.roles[].name nama peran, sesuai dengan Peran Shiro, valid saat menggunakan RoleService memori default shiro.uaa.server.roles[].permCodes[] izin peran, sesuai dengan Izin Shiro, valid saat menggunakan RoleService memori default shiro.uaa.server.roles[].clientId Aplikasi yang memiliki peran tersebut, valid saat menggunakan memori default RoleService shiro.uaa.server.accoun ts[].nama login akun nama pengguna, valid saat menggunakan memori default AccountService shiro.uaa.server.accounts[].password kata sandi akun, valid saat menggunakan memori default AccountService shiro.uaa.server.accounts[].roles[] Peran milik akun, valid saat menggunakan memori default AccountService shiro.uaa.server.forwardErrorUrl custom OAuthProblem Alamat kesalahan2.server sumber daya
pakar
filterChainDefinition
mengimplementasikan CustomFilterChainDefinition, menentukan jalur berbeda untuk melewati Filter berbeda, default /** melewati resourceServerFilter
keluar
Logout dari Resource Server terlebih dahulu, lalu logout dari UAA, konfigurasikan parameter shiro.logoutUrl untuk memuat LogoutEndpoint
anotasi
Sama seperti Shiro
Nama anotasi@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestParameter konfigurasi yang diperluas
Deskripsi nama parameter shiro.uaa.resource.serverSchemeshiro.uaa.resource.serverHostUAA alamat skemashiro.uaa.resource.serverPortUAA alamatPortshiro.uaa.resource.s erverContextPathUAA alamat ContextPathshiro.uaa.resource.clientIdUAA ditugaskan ClientIdshiro.uaa.resource.clientSecretUAA ditugaskan ClientSecretshiro.logoutUrlResource Alamat logout server3. pencatat bisnis
Rekam catatan bisnis pengguna
anotasi
Nama anotasi @BizLogger keterangan deskripsi metode anotasi, default: ""class_whether untuk mencatat nama kelas, default: truemethod apakah akan mencatat nama metode, default: truearguments perlu mencatat indeks parameter, default: {}return_whether untuk merekam nilai yang dikembalikan, default :falsesubjectApakah akan mencatat nama pengguna, default: trueBizLoggerEntityStringifier
mengimplementasikan BizLoggerEntityStringifier, menyesuaikan konten keluaran logger
jdk1.8+ dan booting pegas
Menyediakan layanan yang dapat diterapkan pada server autentikasi
Berikan metrik pengguna ke server autentikasi